[
  {
    "path": ".gitignore",
    "content": "/server/pkg\n/server/bin/log\n/server/bin/*.exe\n/server/*.exe\n/server/bin/c.json\n/server/src/Server/battle/*.test\n"
  },
  {
    "path": "ChessCardHall/.gitignore",
    "content": "#/////////////////////////////////////////////////////////////////////////////\n# Fireball Projects\n#/////////////////////////////////////////////////////////////////////////////\n\nlibrary/\ntemp/\nlocal/\nbuild/\n\n#/////////////////////////////////////////////////////////////////////////////\n# Logs and databases\n#/////////////////////////////////////////////////////////////////////////////\n\n*.log\n*.sql\n*.sqlite\n\n#/////////////////////////////////////////////////////////////////////////////\n# files for debugger\n#/////////////////////////////////////////////////////////////////////////////\n\n*.sln\n*.csproj\n*.pidb\n*.unityproj\n*.suo\n\n#/////////////////////////////////////////////////////////////////////////////\n# OS generated files\n#/////////////////////////////////////////////////////////////////////////////\n\n.DS_Store\nehthumbs.db\nThumbs.db\n\n#/////////////////////////////////////////////////////////////////////////////\n# exvim files\n#/////////////////////////////////////////////////////////////////////////////\n\n*UnityVS.meta\n*.err\n*.err.meta\n*.exvim\n*.exvim.meta\n*.vimentry\n*.vimentry.meta\n*.vimproject\n*.vimproject.meta\n.vimfiles.*/\n.exvim.*/\nquick_gen_project_*_autogen.bat\nquick_gen_project_*_autogen.bat.meta\nquick_gen_project_*_autogen.sh\nquick_gen_project_*_autogen.sh.meta\n.exvim.app\n\n#/////////////////////////////////////////////////////////////////////////////\n# webstorm files\n#/////////////////////////////////////////////////////////////////////////////\n\n.idea/\n\n#//////////////////////////\n# VS Code\n#//////////////////////////\n\n.vscode/"
  },
  {
    "path": "ChessCardHall/README.md",
    "content": "# hello-world\nHello world new project template.\n"
  },
  {
    "path": "ChessCardHall/assets/Font/main.ttf.meta",
    "content": "{\n  \"ver\": \"1.1.0\",\n  \"uuid\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Font.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"744ed7f8-a8f9-4bff-aeeb-e3927cb26139\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Libs/encoding.js",
    "content": "// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\n// If we're in node require encoding-indexes and attach it to the global.\n/**\n * @fileoverview Global |this| required for resolving indexes in node.\n * @suppress {globalThis}\n */\nif (typeof module !== \"undefined\" && module.exports) {\n  this[\"encoding-indexes\"] =\n    require(\"./encoding-indexes.js\")[\"encoding-indexes\"];\n}\n\n(function(global) {\n  'use strict';\n\n  //\n  // Utilities\n  //\n\n  /**\n   * @param {number} a The number to test.\n   * @param {number} min The minimum value in the range, inclusive.\n   * @param {number} max The maximum value in the range, inclusive.\n   * @return {boolean} True if a >= min and a <= max.\n   */\n  function inRange(a, min, max) {\n    return min <= a && a <= max;\n  }\n\n  /**\n   * @param {number} n The numerator.\n   * @param {number} d The denominator.\n   * @return {number} The result of the integer division of n by d.\n   */\n  function div(n, d) {\n    return Math.floor(n / d);\n  }\n\n  /**\n   * @param {*} o\n   * @return {Object}\n   */\n  function ToDictionary(o) {\n    if (o === undefined) return {};\n    if (o === Object(o)) return o;\n    throw TypeError('Could not convert argument to dictionary');\n  }\n\n  /**\n   * @param {string} string Input string of UTF-16 code units.\n   * @return {!Array.<number>} Code points.\n   */\n  function stringToCodePoints(string) {\n    // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n    // 1. Let S be the DOMString value.\n    var s = String(string);\n\n    // 2. Let n be the length of S.\n    var n = s.length;\n\n    // 3. Initialize i to 0.\n    var i = 0;\n\n    // 4. Initialize U to be an empty sequence of Unicode characters.\n    var u = [];\n\n    // 5. While i < n:\n    while (i < n) {\n\n      // 1. Let c be the code unit in S at index i.\n      var c = s.charCodeAt(i);\n\n      // 2. Depending on the value of c:\n\n      // c < 0xD800 or c > 0xDFFF\n      if (c < 0xD800 || c > 0xDFFF) {\n        // Append to U the Unicode character with code point c.\n        u.push(c);\n      }\n\n      // 0xDC00 ≤ c ≤ 0xDFFF\n      else if (0xDC00 <= c && c <= 0xDFFF) {\n        // Append to U a U+FFFD REPLACEMENT CHARACTER.\n        u.push(0xFFFD);\n      }\n\n      // 0xD800 ≤ c ≤ 0xDBFF\n      else if (0xD800 <= c && c <= 0xDBFF) {\n        // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n        // CHARACTER.\n        if (i === n - 1) {\n          u.push(0xFFFD);\n        }\n        // 2. Otherwise, i < n−1:\n        else {\n          // 1. Let d be the code unit in S at index i+1.\n          var d = string.charCodeAt(i + 1);\n\n          // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n          if (0xDC00 <= d && d <= 0xDFFF) {\n            // 1. Let a be c & 0x3FF.\n            var a = c & 0x3FF;\n\n            // 2. Let b be d & 0x3FF.\n            var b = d & 0x3FF;\n\n            // 3. Append to U the Unicode character with code point\n            // 2^16+2^10*a+b.\n            u.push(0x10000 + (a << 10) + b);\n\n            // 4. Set i to i+1.\n            i += 1;\n          }\n\n          // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n          // U+FFFD REPLACEMENT CHARACTER.\n          else  {\n            u.push(0xFFFD);\n          }\n        }\n      }\n\n      // 3. Set i to i+1.\n      i += 1;\n    }\n\n    // 6. Return U.\n    return u;\n  }\n\n  /**\n   * @param {!Array.<number>} code_points Array of code points.\n   * @return {string} string String of UTF-16 code units.\n   */\n  function codePointsToString(code_points) {\n    var s = '';\n    for (var i = 0; i < code_points.length; ++i) {\n      var cp = code_points[i];\n      if (cp <= 0xFFFF) {\n        s += String.fromCharCode(cp);\n      } else {\n        cp -= 0x10000;\n        s += String.fromCharCode((cp >> 10) + 0xD800,\n                                 (cp & 0x3FF) + 0xDC00);\n      }\n    }\n    return s;\n  }\n\n\n  //\n  // Implementation of Encoding specification\n  // https://encoding.spec.whatwg.org/\n  //\n\n  //\n  // 3. Terminology\n  //\n\n  /**\n   * End-of-stream is a special token that signifies no more tokens\n   * are in the stream.\n   * @const\n   */ var end_of_stream = -1;\n\n  /**\n   * A stream represents an ordered sequence of tokens.\n   *\n   * @constructor\n   * @param {!(Array.<number>|Uint8Array)} tokens Array of tokens that provide the\n   * stream.\n   */\n  function Stream(tokens) {\n    /** @type {!Array.<number>} */\n    this.tokens = [].slice.call(tokens);\n  }\n\n  Stream.prototype = {\n    /**\n     * @return {boolean} True if end-of-stream has been hit.\n     */\n    endOfStream: function() {\n      return !this.tokens.length;\n    },\n\n    /**\n     * When a token is read from a stream, the first token in the\n     * stream must be returned and subsequently removed, and\n     * end-of-stream must be returned otherwise.\n     *\n     * @return {number} Get the next token from the stream, or\n     * end_of_stream.\n     */\n     read: function() {\n      if (!this.tokens.length)\n        return end_of_stream;\n       return this.tokens.shift();\n     },\n\n    /**\n     * When one or more tokens are prepended to a stream, those tokens\n     * must be inserted, in given order, before the first token in the\n     * stream.\n     *\n     * @param {(number|!Array.<number>)} token The token(s) to prepend to the stream.\n     */\n    prepend: function(token) {\n      if (Array.isArray(token)) {\n        var tokens = /**@type {!Array.<number>}*/(token);\n        while (tokens.length)\n          this.tokens.unshift(tokens.pop());\n      } else {\n        this.tokens.unshift(token);\n      }\n    },\n\n    /**\n     * When one or more tokens are pushed to a stream, those tokens\n     * must be inserted, in given order, after the last token in the\n     * stream.\n     *\n     * @param {(number|!Array.<number>)} token The tokens(s) to prepend to the stream.\n     */\n    push: function(token) {\n      if (Array.isArray(token)) {\n        var tokens = /**@type {!Array.<number>}*/(token);\n        while (tokens.length)\n          this.tokens.push(tokens.shift());\n      } else {\n        this.tokens.push(token);\n      }\n    }\n  };\n\n  //\n  // 4. Encodings\n  //\n\n  // 4.1 Encoders and decoders\n\n  /** @const */\n  var finished = -1;\n\n  /**\n   * @param {boolean} fatal If true, decoding errors raise an exception.\n   * @param {number=} opt_code_point Override the standard fallback code point.\n   * @return {number} The code point to insert on a decoding error.\n   */\n  function decoderError(fatal, opt_code_point) {\n    if (fatal)\n      throw TypeError('Decoder error');\n    return opt_code_point || 0xFFFD;\n  }\n\n  /**\n   * @param {number} code_point The code point that could not be encoded.\n   * @return {number} Always throws, no value is actually returned.\n   */\n  function encoderError(code_point) {\n    throw TypeError('The code point ' + code_point + ' could not be encoded.');\n  }\n\n  /** @interface */\n  function Decoder() {}\n  Decoder.prototype = {\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point, or |finished|.\n     */\n    handler: function(stream, bite) {}\n  };\n\n  /** @interface */\n  function Encoder() {}\n  Encoder.prototype = {\n    /**\n     * @param {Stream} stream The stream of code points being encoded.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit, or |finished|.\n     */\n    handler: function(stream, code_point) {}\n  };\n\n  // 4.2 Names and labels\n\n  // TODO: Define @typedef for Encoding: {name:string,labels:Array.<string>}\n  // https://github.com/google/closure-compiler/issues/247\n\n  /**\n   * @param {string} label The encoding label.\n   * @return {?{name:string,labels:Array.<string>}}\n   */\n  function getEncoding(label) {\n    // 1. Remove any leading and trailing ASCII whitespace from label.\n    label = String(label).trim().toLowerCase();\n\n    // 2. If label is an ASCII case-insensitive match for any of the\n    // labels listed in the table below, return the corresponding\n    // encoding, and failure otherwise.\n    if (Object.prototype.hasOwnProperty.call(label_to_encoding, label)) {\n      return label_to_encoding[label];\n    }\n    return null;\n  }\n\n  /**\n   * Encodings table: https://encoding.spec.whatwg.org/encodings.json\n   * @const\n   * @type {!Array.<{\n   *          heading: string,\n   *          encodings: Array.<{name:string,labels:Array.<string>}>\n   *        }>}\n   */\n  var encodings = [\n  {\n    \"encodings\": [\n      {\n        \"labels\": [\n          \"unicode-1-1-utf-8\",\n          \"utf-8\",\n          \"utf8\"\n        ],\n        \"name\": \"utf-8\"\n      }\n    ],\n    \"heading\": \"The Encoding\"\n  },\n  {\n    \"encodings\": [\n      {\n        \"labels\": [\n          \"866\",\n          \"cp866\",\n          \"csibm866\",\n          \"ibm866\"\n        ],\n        \"name\": \"ibm866\"\n      },\n      {\n        \"labels\": [\n          \"csisolatin2\",\n          \"iso-8859-2\",\n          \"iso-ir-101\",\n          \"iso8859-2\",\n          \"iso88592\",\n          \"iso_8859-2\",\n          \"iso_8859-2:1987\",\n          \"l2\",\n          \"latin2\"\n        ],\n        \"name\": \"iso-8859-2\"\n      },\n      {\n        \"labels\": [\n          \"csisolatin3\",\n          \"iso-8859-3\",\n          \"iso-ir-109\",\n          \"iso8859-3\",\n          \"iso88593\",\n          \"iso_8859-3\",\n          \"iso_8859-3:1988\",\n          \"l3\",\n          \"latin3\"\n        ],\n        \"name\": \"iso-8859-3\"\n      },\n      {\n        \"labels\": [\n          \"csisolatin4\",\n          \"iso-8859-4\",\n          \"iso-ir-110\",\n          \"iso8859-4\",\n          \"iso88594\",\n          \"iso_8859-4\",\n          \"iso_8859-4:1988\",\n          \"l4\",\n          \"latin4\"\n        ],\n        \"name\": \"iso-8859-4\"\n      },\n      {\n        \"labels\": [\n          \"csisolatincyrillic\",\n          \"cyrillic\",\n          \"iso-8859-5\",\n          \"iso-ir-144\",\n          \"iso8859-5\",\n          \"iso88595\",\n          \"iso_8859-5\",\n          \"iso_8859-5:1988\"\n        ],\n        \"name\": \"iso-8859-5\"\n      },\n      {\n        \"labels\": [\n          \"arabic\",\n          \"asmo-708\",\n          \"csiso88596e\",\n          \"csiso88596i\",\n          \"csisolatinarabic\",\n          \"ecma-114\",\n          \"iso-8859-6\",\n          \"iso-8859-6-e\",\n          \"iso-8859-6-i\",\n          \"iso-ir-127\",\n          \"iso8859-6\",\n          \"iso88596\",\n          \"iso_8859-6\",\n          \"iso_8859-6:1987\"\n        ],\n        \"name\": \"iso-8859-6\"\n      },\n      {\n        \"labels\": [\n          \"csisolatingreek\",\n          \"ecma-118\",\n          \"elot_928\",\n          \"greek\",\n          \"greek8\",\n          \"iso-8859-7\",\n          \"iso-ir-126\",\n          \"iso8859-7\",\n          \"iso88597\",\n          \"iso_8859-7\",\n          \"iso_8859-7:1987\",\n          \"sun_eu_greek\"\n        ],\n        \"name\": \"iso-8859-7\"\n      },\n      {\n        \"labels\": [\n          \"csiso88598e\",\n          \"csisolatinhebrew\",\n          \"hebrew\",\n          \"iso-8859-8\",\n          \"iso-8859-8-e\",\n          \"iso-ir-138\",\n          \"iso8859-8\",\n          \"iso88598\",\n          \"iso_8859-8\",\n          \"iso_8859-8:1988\",\n          \"visual\"\n        ],\n        \"name\": \"iso-8859-8\"\n      },\n      {\n        \"labels\": [\n          \"csiso88598i\",\n          \"iso-8859-8-i\",\n          \"logical\"\n        ],\n        \"name\": \"iso-8859-8-i\"\n      },\n      {\n        \"labels\": [\n          \"csisolatin6\",\n          \"iso-8859-10\",\n          \"iso-ir-157\",\n          \"iso8859-10\",\n          \"iso885910\",\n          \"l6\",\n          \"latin6\"\n        ],\n        \"name\": \"iso-8859-10\"\n      },\n      {\n        \"labels\": [\n          \"iso-8859-13\",\n          \"iso8859-13\",\n          \"iso885913\"\n        ],\n        \"name\": \"iso-8859-13\"\n      },\n      {\n        \"labels\": [\n          \"iso-8859-14\",\n          \"iso8859-14\",\n          \"iso885914\"\n        ],\n        \"name\": \"iso-8859-14\"\n      },\n      {\n        \"labels\": [\n          \"csisolatin9\",\n          \"iso-8859-15\",\n          \"iso8859-15\",\n          \"iso885915\",\n          \"iso_8859-15\",\n          \"l9\"\n        ],\n        \"name\": \"iso-8859-15\"\n      },\n      {\n        \"labels\": [\n          \"iso-8859-16\"\n        ],\n        \"name\": \"iso-8859-16\"\n      },\n      {\n        \"labels\": [\n          \"cskoi8r\",\n          \"koi\",\n          \"koi8\",\n          \"koi8-r\",\n          \"koi8_r\"\n        ],\n        \"name\": \"koi8-r\"\n      },\n      {\n        \"labels\": [\n          \"koi8-ru\",\n          \"koi8-u\"\n        ],\n        \"name\": \"koi8-u\"\n      },\n      {\n        \"labels\": [\n          \"csmacintosh\",\n          \"mac\",\n          \"macintosh\",\n          \"x-mac-roman\"\n        ],\n        \"name\": \"macintosh\"\n      },\n      {\n        \"labels\": [\n          \"dos-874\",\n          \"iso-8859-11\",\n          \"iso8859-11\",\n          \"iso885911\",\n          \"tis-620\",\n          \"windows-874\"\n        ],\n        \"name\": \"windows-874\"\n      },\n      {\n        \"labels\": [\n          \"cp1250\",\n          \"windows-1250\",\n          \"x-cp1250\"\n        ],\n        \"name\": \"windows-1250\"\n      },\n      {\n        \"labels\": [\n          \"cp1251\",\n          \"windows-1251\",\n          \"x-cp1251\"\n        ],\n        \"name\": \"windows-1251\"\n      },\n      {\n        \"labels\": [\n          \"ansi_x3.4-1968\",\n          \"ascii\",\n          \"cp1252\",\n          \"cp819\",\n          \"csisolatin1\",\n          \"ibm819\",\n          \"iso-8859-1\",\n          \"iso-ir-100\",\n          \"iso8859-1\",\n          \"iso88591\",\n          \"iso_8859-1\",\n          \"iso_8859-1:1987\",\n          \"l1\",\n          \"latin1\",\n          \"us-ascii\",\n          \"windows-1252\",\n          \"x-cp1252\"\n        ],\n        \"name\": \"windows-1252\"\n      },\n      {\n        \"labels\": [\n          \"cp1253\",\n          \"windows-1253\",\n          \"x-cp1253\"\n        ],\n        \"name\": \"windows-1253\"\n      },\n      {\n        \"labels\": [\n          \"cp1254\",\n          \"csisolatin5\",\n          \"iso-8859-9\",\n          \"iso-ir-148\",\n          \"iso8859-9\",\n          \"iso88599\",\n          \"iso_8859-9\",\n          \"iso_8859-9:1989\",\n          \"l5\",\n          \"latin5\",\n          \"windows-1254\",\n          \"x-cp1254\"\n        ],\n        \"name\": \"windows-1254\"\n      },\n      {\n        \"labels\": [\n          \"cp1255\",\n          \"windows-1255\",\n          \"x-cp1255\"\n        ],\n        \"name\": \"windows-1255\"\n      },\n      {\n        \"labels\": [\n          \"cp1256\",\n          \"windows-1256\",\n          \"x-cp1256\"\n        ],\n        \"name\": \"windows-1256\"\n      },\n      {\n        \"labels\": [\n          \"cp1257\",\n          \"windows-1257\",\n          \"x-cp1257\"\n        ],\n        \"name\": \"windows-1257\"\n      },\n      {\n        \"labels\": [\n          \"cp1258\",\n          \"windows-1258\",\n          \"x-cp1258\"\n        ],\n        \"name\": \"windows-1258\"\n      },\n      {\n        \"labels\": [\n          \"x-mac-cyrillic\",\n          \"x-mac-ukrainian\"\n        ],\n        \"name\": \"x-mac-cyrillic\"\n      }\n    ],\n    \"heading\": \"Legacy single-byte encodings\"\n  },\n  {\n    \"encodings\": [\n      {\n        \"labels\": [\n          \"chinese\",\n          \"csgb2312\",\n          \"csiso58gb231280\",\n          \"gb2312\",\n          \"gb_2312\",\n          \"gb_2312-80\",\n          \"gbk\",\n          \"iso-ir-58\",\n          \"x-gbk\"\n        ],\n        \"name\": \"gbk\"\n      },\n      {\n        \"labels\": [\n          \"gb18030\"\n        ],\n        \"name\": \"gb18030\"\n      }\n    ],\n    \"heading\": \"Legacy multi-byte Chinese (simplified) encodings\"\n  },\n  {\n    \"encodings\": [\n      {\n        \"labels\": [\n          \"big5\",\n          \"big5-hkscs\",\n          \"cn-big5\",\n          \"csbig5\",\n          \"x-x-big5\"\n        ],\n        \"name\": \"big5\"\n      }\n    ],\n    \"heading\": \"Legacy multi-byte Chinese (traditional) encodings\"\n  },\n  {\n    \"encodings\": [\n      {\n        \"labels\": [\n          \"cseucpkdfmtjapanese\",\n          \"euc-jp\",\n          \"x-euc-jp\"\n        ],\n        \"name\": \"euc-jp\"\n      },\n      {\n        \"labels\": [\n          \"csiso2022jp\",\n          \"iso-2022-jp\"\n        ],\n        \"name\": \"iso-2022-jp\"\n      },\n      {\n        \"labels\": [\n          \"csshiftjis\",\n          \"ms932\",\n          \"ms_kanji\",\n          \"shift-jis\",\n          \"shift_jis\",\n          \"sjis\",\n          \"windows-31j\",\n          \"x-sjis\"\n        ],\n        \"name\": \"shift_jis\"\n      }\n    ],\n    \"heading\": \"Legacy multi-byte Japanese encodings\"\n  },\n  {\n    \"encodings\": [\n      {\n        \"labels\": [\n          \"cseuckr\",\n          \"csksc56011987\",\n          \"euc-kr\",\n          \"iso-ir-149\",\n          \"korean\",\n          \"ks_c_5601-1987\",\n          \"ks_c_5601-1989\",\n          \"ksc5601\",\n          \"ksc_5601\",\n          \"windows-949\"\n        ],\n        \"name\": \"euc-kr\"\n      }\n    ],\n    \"heading\": \"Legacy multi-byte Korean encodings\"\n  },\n  {\n    \"encodings\": [\n      {\n        \"labels\": [\n          \"csiso2022kr\",\n          \"hz-gb-2312\",\n          \"iso-2022-cn\",\n          \"iso-2022-cn-ext\",\n          \"iso-2022-kr\"\n        ],\n        \"name\": \"replacement\"\n      },\n      {\n        \"labels\": [\n          \"utf-16be\"\n        ],\n        \"name\": \"utf-16be\"\n      },\n      {\n        \"labels\": [\n          \"utf-16\",\n          \"utf-16le\"\n        ],\n        \"name\": \"utf-16le\"\n      },\n      {\n        \"labels\": [\n          \"x-user-defined\"\n        ],\n        \"name\": \"x-user-defined\"\n      }\n    ],\n    \"heading\": \"Legacy miscellaneous encodings\"\n  }\n  ];\n\n  // Label to encoding registry.\n  /** @type {Object.<string,{name:string,labels:Array.<string>}>} */\n  var label_to_encoding = {};\n  encodings.forEach(function(category) {\n    category.encodings.forEach(function(encoding) {\n      encoding.labels.forEach(function(label) {\n        label_to_encoding[label] = encoding;\n      });\n    });\n  });\n\n  // Registry of of encoder/decoder factories, by encoding name.\n  /** @type {Object.<string, function({fatal:boolean}): Encoder>} */\n  var encoders = {};\n  /** @type {Object.<string, function({fatal:boolean}): Decoder>} */\n  var decoders = {};\n\n  //\n  // 5. Indexes\n  //\n\n  /**\n   * @param {number} pointer The |pointer| to search for.\n   * @param {(!Array.<?number>|undefined)} index The |index| to search within.\n   * @return {?number} The code point corresponding to |pointer| in |index|,\n   *     or null if |code point| is not in |index|.\n   */\n  function indexCodePointFor(pointer, index) {\n    if (!index) return null;\n    return index[pointer] || null;\n  }\n\n  /**\n   * @param {number} code_point The |code point| to search for.\n   * @param {!Array.<?number>} index The |index| to search within.\n   * @return {?number} The first pointer corresponding to |code point| in\n   *     |index|, or null if |code point| is not in |index|.\n   */\n  function indexPointerFor(code_point, index) {\n    var pointer = index.indexOf(code_point);\n    return pointer === -1 ? null : pointer;\n  }\n\n  /**\n   * @param {string} name Name of the index.\n   * @return {(!Array.<number>|!Array.<Array.<number>>)}\n   *  */\n  function index(name) {\n    if (!('encoding-indexes' in global)) {\n      throw Error(\"Indexes missing.\" +\n                  \" Did you forget to include encoding-indexes.js?\");\n    }\n    return global['encoding-indexes'][name];\n  }\n\n  /**\n   * @param {number} pointer The |pointer| to search for in the gb18030 index.\n   * @return {?number} The code point corresponding to |pointer| in |index|,\n   *     or null if |code point| is not in the gb18030 index.\n   */\n  function indexGB18030RangesCodePointFor(pointer) {\n    // 1. If pointer is greater than 39419 and less than 189000, or\n    // pointer is greater than 1237575, return null.\n    if ((pointer > 39419 && pointer < 189000) || (pointer > 1237575))\n      return null;\n\n    // 2. Let offset be the last pointer in index gb18030 ranges that\n    // is equal to or less than pointer and let code point offset be\n    // its corresponding code point.\n    var offset = 0;\n    var code_point_offset = 0;\n    var idx = index('gb18030');\n    var i;\n    for (i = 0; i < idx.length; ++i) {\n      /** @type {!Array.<number>} */\n      var entry = idx[i];\n      if (entry[0] <= pointer) {\n        offset = entry[0];\n        code_point_offset = entry[1];\n      } else {\n        break;\n      }\n    }\n\n    // 3. Return a code point whose value is code point offset +\n    // pointer − offset.\n    return code_point_offset + pointer - offset;\n  }\n\n  /**\n   * @param {number} code_point The |code point| to locate in the gb18030 index.\n   * @return {number} The first pointer corresponding to |code point| in the\n   *     gb18030 index.\n   */\n  function indexGB18030RangesPointerFor(code_point) {\n    // 1. Let offset be the last code point in index gb18030 ranges\n    // that is equal to or less than code point and let pointer offset\n    // be its corresponding pointer.\n    var offset = 0;\n    var pointer_offset = 0;\n    var idx = index('gb18030');\n    var i;\n    for (i = 0; i < idx.length; ++i) {\n      /** @type {!Array.<number>} */\n      var entry = idx[i];\n      if (entry[1] <= code_point) {\n        offset = entry[1];\n        pointer_offset = entry[0];\n      } else {\n        break;\n      }\n    }\n\n    // 2. Return a pointer whose value is pointer offset + code point\n    // − offset.\n    return pointer_offset + code_point - offset;\n  }\n\n  /**\n   * @param {number} code_point The |code_point| to search for in the shift_jis index.\n   * @return {?number} The code point corresponding to |pointer| in |index|,\n   *     or null if |code point| is not in the shift_jis index.\n   */\n  function indexShiftJISPointerFor(code_point) {\n    // 1. Let index be index jis0208 excluding all pointers in the\n    // range 8272 to 8835.\n    var pointer = indexPointerFor(code_point, index('jis0208'));\n    if (pointer === null || inRange(pointer, 8272, 8835))\n      return null;\n\n    // 2. Return the index pointer for code point in index.\n    return pointer;\n  }\n\n  /**\n   * @param {number} code_point The |code_point| to search for in the big5 index.\n   * @return {?number} The code point corresponding to |pointer| in |index|,\n   *     or null if |code point| is not in the big5 index.\n   */\n  function indexBig5PointerFor(code_point) {\n\n    // 1. Let index be index big5.\n    var index_ = index('big5');\n\n    // 2. If code point is U+2550, U+255E, U+2561, U+256A, U+5341, or\n    // U+5345, return the last pointer corresponding to code point in\n    // index.\n    if (code_point === 0x2550 || code_point === 0x255E ||\n        code_point === 0x2561 || code_point === 0x256A ||\n        code_point === 0x5341 || code_point === 0x5345) {\n      return index.lastIndexOf(code_point);\n    }\n\n    // 3. Return the index pointer for code point in index.\n    return indexPointerFor(code_point, index_);\n  }\n\n  //\n  // 7. API\n  //\n\n  /** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n  // 7.1 Interface TextDecoder\n\n  /**\n   * @constructor\n   * @param {string=} encoding The label of the encoding;\n   *     defaults to 'utf-8'.\n   * @param {Object=} options\n   */\n  function TextDecoder(encoding, options) {\n    if (!(this instanceof TextDecoder)) {\n      return new TextDecoder(encoding, options);\n    }\n    encoding = encoding !== undefined ? String(encoding) : DEFAULT_ENCODING;\n    options = ToDictionary(options);\n    /** @private */\n    this._encoding = getEncoding(encoding);\n    if (this._encoding === null || this._encoding.name === 'replacement')\n      throw RangeError('Unknown encoding: ' + encoding);\n\n    if (!decoders[this._encoding.name]) {\n      throw Error('Decoder not present.' +\n                  ' Did you forget to include encoding-indexes.js?');\n    }\n\n    /** @private @type {boolean} */\n    this._streaming = false;\n    /** @private @type {boolean} */\n    this._BOMseen = false;\n    /** @private @type {?Decoder} */\n    this._decoder = null;\n    /** @private @type {boolean} */\n    this._fatal = Boolean(options['fatal']);\n    /** @private @type {boolean} */\n    this._ignoreBOM = Boolean(options['ignoreBOM']);\n\n    if (Object.defineProperty) {\n      Object.defineProperty(this, 'encoding', {value: this._encoding.name});\n      Object.defineProperty(this, 'fatal', {value: this._fatal});\n      Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM});\n    } else {\n      this.encoding = this._encoding.name;\n      this.fatal = this._fatal;\n      this.ignoreBOM = this._ignoreBOM;\n    }\n\n    return this;\n  }\n\n  TextDecoder.prototype = {\n    /**\n     * @param {ArrayBufferView=} input The buffer of bytes to decode.\n     * @param {Object=} options\n     * @return {string} The decoded string.\n     */\n    decode: function decode(input, options) {\n      var bytes;\n      if (typeof input === 'object' && input instanceof ArrayBuffer) {\n        bytes = new Uint8Array(input);\n      } else if (typeof input === 'object' && 'buffer' in input &&\n                 input.buffer instanceof ArrayBuffer) {\n        bytes = new Uint8Array(input.buffer,\n                               input.byteOffset,\n                               input.byteLength);\n      } else {\n        bytes = new Uint8Array(0);\n      }\n\n      options = ToDictionary(options);\n\n      if (!this._streaming) {\n        this._decoder = decoders[this._encoding.name]({fatal: this._fatal});\n        this._BOMseen = false;\n      }\n      this._streaming = Boolean(options['stream']);\n\n      var input_stream = new Stream(bytes);\n\n      var code_points = [];\n\n      /** @type {?(number|!Array.<number>)} */\n      var result;\n\n      while (!input_stream.endOfStream()) {\n        result = this._decoder.handler(input_stream, input_stream.read());\n        if (result === finished)\n          break;\n        if (result === null)\n          continue;\n        if (Array.isArray(result))\n          code_points.push.apply(code_points, /**@type {!Array.<number>}*/(result));\n        else\n          code_points.push(result);\n      }\n      if (!this._streaming) {\n        do {\n          result = this._decoder.handler(input_stream, input_stream.read());\n          if (result === finished)\n            break;\n          if (result === null)\n            continue;\n          if (Array.isArray(result))\n            code_points.push.apply(code_points, /**@type {!Array.<number>}*/(result));\n          else\n            code_points.push(result);\n        } while (!input_stream.endOfStream());\n        this._decoder = null;\n      }\n\n      if (code_points.length) {\n        // If encoding is one of utf-8, utf-16be, and utf-16le, and\n        // ignore BOM flag and BOM seen flag are unset, run these\n        // subsubsteps:\n        if (['utf-8', 'utf-16le', 'utf-16be'].indexOf(this.encoding) !== -1 &&\n            !this._ignoreBOM && !this._BOMseen) {\n          // If token is U+FEFF, set BOM seen flag.\n          if (code_points[0] === 0xFEFF) {\n            this._BOMseen = true;\n            code_points.shift();\n          } else {\n            // Otherwise, if token is not end-of-stream, set BOM seen\n            // flag and append token to output.\n            this._BOMseen = true;\n          }\n        }\n      }\n\n      return codePointsToString(code_points);\n    }\n  };\n\n  // 7.2 Interface TextEncoder\n\n  /**\n   * @constructor\n   * @param {string=} encoding The label of the encoding;\n   *     defaults to 'utf-8'.\n   * @param {Object=} options\n   */\n  function TextEncoder(encoding, options) {\n    if (!(this instanceof TextEncoder))\n      return new TextEncoder(encoding, options);\n    encoding = encoding !== undefined ? String(encoding) : DEFAULT_ENCODING;\n    options = ToDictionary(options);\n    /** @private */\n    this._encoding = getEncoding(encoding);\n    if (this._encoding === null || this._encoding.name === 'replacement')\n      throw RangeError('Unknown encoding: ' + encoding);\n\n    var allowLegacyEncoding =\n          Boolean(options['NONSTANDARD_allowLegacyEncoding']);\n    var isLegacyEncoding = (this._encoding.name !== 'utf-8' &&\n                            this._encoding.name !== 'utf-16le' &&\n                            this._encoding.name !== 'utf-16be');\n    if (this._encoding === null || (isLegacyEncoding && !allowLegacyEncoding))\n      throw RangeError('Unknown encoding: ' + encoding);\n\n    if (!encoders[this._encoding.name]) {\n      throw Error('Encoder not present.' +\n                  ' Did you forget to include encoding-indexes.js?');\n    }\n\n    /** @private @type {boolean} */\n    this._streaming = false;\n    /** @private @type {?Encoder} */\n    this._encoder = null;\n    /** @private @type {{fatal: boolean}} */\n    this._options = {fatal: Boolean(options['fatal'])};\n\n    if (Object.defineProperty)\n      Object.defineProperty(this, 'encoding', {value: this._encoding.name});\n    else\n      this.encoding = this._encoding.name;\n\n    return this;\n  }\n\n  TextEncoder.prototype = {\n    /**\n     * @param {string=} opt_string The string to encode.\n     * @param {Object=} options\n     * @return {Uint8Array} Encoded bytes, as a Uint8Array.\n     */\n    encode: function encode(opt_string, options) {\n      opt_string = opt_string ? String(opt_string) : '';\n      options = ToDictionary(options);\n\n      // NOTE: This option is nonstandard. None of the encodings\n      // permitted for encoding (i.e. UTF-8, UTF-16) are stateful,\n      // so streaming is not necessary.\n      if (!this._streaming)\n        this._encoder = encoders[this._encoding.name](this._options);\n      this._streaming = Boolean(options['stream']);\n\n      var bytes = [];\n      var input_stream = new Stream(stringToCodePoints(opt_string));\n      /** @type {?(number|!Array.<number>)} */\n      var result;\n      while (!input_stream.endOfStream()) {\n        result = this._encoder.handler(input_stream, input_stream.read());\n        if (result === finished)\n          break;\n        if (Array.isArray(result))\n          bytes.push.apply(bytes, /**@type {!Array.<number>}*/(result));\n        else\n          bytes.push(result);\n      }\n      if (!this._streaming) {\n        while (true) {\n          result = this._encoder.handler(input_stream, input_stream.read());\n          if (result === finished)\n            break;\n          if (Array.isArray(result))\n            bytes.push.apply(bytes, /**@type {!Array.<number>}*/(result));\n          else\n            bytes.push(result);\n        }\n        this._encoder = null;\n      }\n      return new Uint8Array(bytes);\n    }\n  };\n\n\n  //\n  // 8. The encoding\n  //\n\n  // 8.1 utf-8\n\n  /**\n   * @constructor\n   * @implements {Decoder}\n   * @param {{fatal: boolean}} options\n   */\n  function UTF8Decoder(options) {\n    var fatal = options.fatal;\n\n    // utf-8's decoder's has an associated utf-8 code point, utf-8\n    // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n    // lower boundary (initially 0x80), and a utf-8 upper boundary\n    // (initially 0xBF).\n    var /** @type {number} */ utf8_code_point = 0,\n        /** @type {number} */ utf8_bytes_seen = 0,\n        /** @type {number} */ utf8_bytes_needed = 0,\n        /** @type {number} */ utf8_lower_boundary = 0x80,\n        /** @type {number} */ utf8_upper_boundary = 0xBF;\n\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    this.handler = function(stream, bite) {\n      // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n      // set utf-8 bytes needed to 0 and return error.\n      if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n        utf8_bytes_needed = 0;\n        return decoderError(fatal);\n      }\n\n      // 2. If byte is end-of-stream, return finished.\n      if (bite === end_of_stream)\n        return finished;\n\n      // 3. If utf-8 bytes needed is 0, based on byte:\n      if (utf8_bytes_needed === 0) {\n\n        // 0x00 to 0x7F\n        if (inRange(bite, 0x00, 0x7F)) {\n          // Return a code point whose value is byte.\n          return bite;\n        }\n\n        // 0xC2 to 0xDF\n        if (inRange(bite, 0xC2, 0xDF)) {\n          // Set utf-8 bytes needed to 1 and utf-8 code point to byte\n          // − 0xC0.\n          utf8_bytes_needed = 1;\n          utf8_code_point = bite - 0xC0;\n        }\n\n        // 0xE0 to 0xEF\n        else if (inRange(bite, 0xE0, 0xEF)) {\n          // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n          if (bite === 0xE0)\n            utf8_lower_boundary = 0xA0;\n          // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n          if (bite === 0xED)\n            utf8_upper_boundary = 0x9F;\n          // 3. Set utf-8 bytes needed to 2 and utf-8 code point to\n          // byte − 0xE0.\n          utf8_bytes_needed = 2;\n          utf8_code_point = bite - 0xE0;\n        }\n\n        // 0xF0 to 0xF4\n        else if (inRange(bite, 0xF0, 0xF4)) {\n          // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n          if (bite === 0xF0)\n            utf8_lower_boundary = 0x90;\n          // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n          if (bite === 0xF4)\n            utf8_upper_boundary = 0x8F;\n          // 3. Set utf-8 bytes needed to 3 and utf-8 code point to\n          // byte − 0xF0.\n          utf8_bytes_needed = 3;\n          utf8_code_point = bite - 0xF0;\n        }\n\n        // Otherwise\n        else {\n          // Return error.\n          return decoderError(fatal);\n        }\n\n        // Then (byte is in the range 0xC2 to 0xF4) set utf-8 code\n        // point to utf-8 code point << (6 × utf-8 bytes needed) and\n        // return continue.\n        utf8_code_point = utf8_code_point << (6 * utf8_bytes_needed);\n        return null;\n      }\n\n      // 4. If byte is not in the range utf-8 lower boundary to utf-8\n      // upper boundary, run these substeps:\n      if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n\n        // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n        // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n        // utf-8 upper boundary to 0xBF.\n        utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n        utf8_lower_boundary = 0x80;\n        utf8_upper_boundary = 0xBF;\n\n        // 2. Prepend byte to stream.\n        stream.prepend(bite);\n\n        // 3. Return error.\n        return decoderError(fatal);\n      }\n\n      // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n      // to 0xBF.\n      utf8_lower_boundary = 0x80;\n      utf8_upper_boundary = 0xBF;\n\n      // 6. Increase utf-8 bytes seen by one and set utf-8 code point\n      // to utf-8 code point + (byte − 0x80) << (6 × (utf-8 bytes\n      // needed − utf-8 bytes seen)).\n      utf8_bytes_seen += 1;\n      utf8_code_point += (bite - 0x80) << (6 * (utf8_bytes_needed - utf8_bytes_seen));\n\n      // 7. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n      // continue.\n      if (utf8_bytes_seen !== utf8_bytes_needed)\n        return null;\n\n      // 8. Let code point be utf-8 code point.\n      var code_point = utf8_code_point;\n\n      // 9. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n      // seen to 0.\n      utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n      // 10. Return a code point whose value is code point.\n      return code_point;\n    };\n  }\n\n  /**\n   * @constructor\n   * @implements {Encoder}\n   * @param {{fatal: boolean}} options\n   */\n  function UTF8Encoder(options) {\n    var fatal = options.fatal;\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    this.handler = function(stream, code_point) {\n      // 1. If code point is end-of-stream, return finished.\n      if (code_point === end_of_stream)\n        return finished;\n\n      // 2. If code point is in the range U+0000 to U+007F, return a\n      // byte whose value is code point.\n      if (inRange(code_point, 0x0000, 0x007f))\n        return code_point;\n\n      // 3. Set count and offset based on the range code point is in:\n      var count, offset;\n      // U+0080 to U+07FF:    1 and 0xC0\n      if (inRange(code_point, 0x0080, 0x07FF)) {\n        count = 1;\n        offset = 0xC0;\n      }\n      // U+0800 to U+FFFF:    2 and 0xE0\n      else if (inRange(code_point, 0x0800, 0xFFFF)) {\n        count = 2;\n        offset = 0xE0;\n      }\n      // U+10000 to U+10FFFF: 3 and 0xF0\n      else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n        count = 3;\n        offset = 0xF0;\n      }\n\n      // 4.Let bytes be a byte sequence whose first byte is (code\n      // point >> (6 × count)) + offset.\n      var bytes = [(code_point >> (6 * count)) + offset];\n\n      // 5. Run these substeps while count is greater than 0:\n      while (count > 0) {\n\n        // 1. Set temp to code point >> (6 × (count − 1)).\n        var temp = code_point >> (6 * (count - 1));\n\n        // 2. Append to bytes 0x80 | (temp & 0x3F).\n        bytes.push(0x80 | (temp & 0x3F));\n\n        // 3. Decrease count by one.\n        count -= 1;\n      }\n\n      // 6. Return bytes bytes, in order.\n      return bytes;\n    };\n  }\n\n  /** @param {{fatal: boolean}} options */\n  encoders['utf-8'] = function(options) {\n    return new UTF8Encoder(options);\n  };\n  /** @param {{fatal: boolean}} options */\n  decoders['utf-8'] = function(options) {\n    return new UTF8Decoder(options);\n  };\n\n  //\n  // 9. Legacy single-byte encodings\n  //\n\n  // 9.1 single-byte decoder\n  /**\n   * @constructor\n   * @implements {Decoder}\n   * @param {!Array.<number>} index The encoding index.\n   * @param {{fatal: boolean}} options\n   */\n  function SingleByteDecoder(index, options) {\n    var fatal = options.fatal;\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    this.handler = function(stream, bite) {\n      // 1. If byte is end-of-stream, return finished.\n      if (bite === end_of_stream)\n        return finished;\n\n      // 2. If byte is in the range 0x00 to 0x7F, return a code point\n      // whose value is byte.\n      if (inRange(bite, 0x00, 0x7F))\n        return bite;\n\n      // 3. Let code point be the index code point for byte − 0x80 in\n      // index single-byte.\n      var code_point = index[bite - 0x80];\n\n      // 4. If code point is null, return error.\n      if (code_point === null)\n        return decoderError(fatal);\n\n      // 5. Return a code point whose value is code point.\n      return code_point;\n    };\n  }\n\n  // 9.2 single-byte encoder\n  /**\n   * @constructor\n   * @implements {Encoder}\n   * @param {!Array.<?number>} index The encoding index.\n   * @param {{fatal: boolean}} options\n   */\n  function SingleByteEncoder(index, options) {\n    var fatal = options.fatal;\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    this.handler = function(stream, code_point) {\n      // 1. If code point is end-of-stream, return finished.\n      if (code_point === end_of_stream)\n        return finished;\n\n      // 2. If code point is in the range U+0000 to U+007F, return a\n      // byte whose value is code point.\n      if (inRange(code_point, 0x0000, 0x007F))\n        return code_point;\n\n      // 3. Let pointer be the index pointer for code point in index\n      // single-byte.\n      var pointer = indexPointerFor(code_point, index);\n\n      // 4. If pointer is null, return error with code point.\n      if (pointer === null)\n        encoderError(code_point);\n\n      // 5. Return a byte whose value is pointer + 0x80.\n      return pointer + 0x80;\n    };\n  }\n\n  (function() {\n    if (!('encoding-indexes' in global))\n      return;\n    encodings.forEach(function(category) {\n      if (category.heading !== 'Legacy single-byte encodings')\n        return;\n      category.encodings.forEach(function(encoding) {\n        var name = encoding.name;\n        var idx = index(name);\n        /** @param {{fatal: boolean}} options */\n        decoders[name] = function(options) {\n          return new SingleByteDecoder(idx, options);\n        };\n        /** @param {{fatal: boolean}} options */\n        encoders[name] = function(options) {\n          return new SingleByteEncoder(idx, options);\n        };\n      });\n    });\n  }());\n\n  //\n  // 10. Legacy multi-byte Chinese (simplified) encodings\n  //\n\n  // 10.1 gbk\n\n  // 10.1.1 gbk decoder\n  // gbk's decoder is gb18030's decoder.\n  /** @param {{fatal: boolean}} options */\n  decoders['gbk'] = function(options) {\n    return new GB18030Decoder(options);\n  };\n\n  // 10.1.2 gbk encoder\n  // gbk's encoder is gb18030's encoder with its gbk flag set.\n  /** @param {{fatal: boolean}} options */\n  encoders['gbk'] = function(options) {\n    return new GB18030Encoder(options, true);\n  };\n\n  // 10.2 gb18030\n\n  // 10.2.1 gb18030 decoder\n  /**\n   * @constructor\n   * @implements {Decoder}\n   * @param {{fatal: boolean}} options\n   */\n  function GB18030Decoder(options) {\n    var fatal = options.fatal;\n    // gb18030's decoder has an associated gb18030 first, gb18030\n    // second, and gb18030 third (all initially 0x00).\n    var /** @type {number} */ gb18030_first = 0x00,\n        /** @type {number} */ gb18030_second = 0x00,\n        /** @type {number} */ gb18030_third = 0x00;\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    this.handler = function(stream, bite) {\n      // 1. If byte is end-of-stream and gb18030 first, gb18030\n      // second, and gb18030 third are 0x00, return finished.\n      if (bite === end_of_stream && gb18030_first === 0x00 &&\n          gb18030_second === 0x00 && gb18030_third === 0x00) {\n        return finished;\n      }\n      // 2. If byte is end-of-stream, and gb18030 first, gb18030\n      // second, or gb18030 third is not 0x00, set gb18030 first,\n      // gb18030 second, and gb18030 third to 0x00, and return error.\n      if (bite === end_of_stream &&\n          (gb18030_first !== 0x00 || gb18030_second !== 0x00 || gb18030_third !== 0x00)) {\n        gb18030_first = 0x00;\n        gb18030_second = 0x00;\n        gb18030_third = 0x00;\n        decoderError(fatal);\n      }\n      var code_point;\n      // 3. If gb18030 third is not 0x00, run these substeps:\n      if (gb18030_third !== 0x00) {\n        // 1. Let code point be null.\n        code_point = null;\n        // 2. If byte is in the range 0x30 to 0x39, set code point to\n        // the index gb18030 ranges code point for (((gb18030 first −\n        // 0x81) × 10 + gb18030 second − 0x30) × 126 + gb18030 third −\n        // 0x81) × 10 + byte − 0x30.\n        if (inRange(bite, 0x30, 0x39)) {\n          code_point = indexGB18030RangesCodePointFor(\n              (((gb18030_first - 0x81) * 10 + (gb18030_second - 0x30)) * 126 +\n               (gb18030_third - 0x81)) * 10 + bite - 0x30);\n        }\n\n        // 3. Let buffer be a byte sequence consisting of gb18030\n        // second, gb18030 third, and byte, in order.\n        var buffer = [gb18030_second, gb18030_third, bite];\n\n        // 4. Set gb18030 first, gb18030 second, and gb18030 third to\n        // 0x00.\n        gb18030_first = 0x00;\n        gb18030_second = 0x00;\n        gb18030_third = 0x00;\n\n        // 5. If code point is null, prepend buffer to stream and\n        // return error.\n        if (code_point === null) {\n          stream.prepend(buffer);\n          return decoderError(fatal);\n        }\n\n        // 6. Return a code point whose value is code point.\n        return code_point;\n      }\n\n      // 4. If gb18030 second is not 0x00, run these substeps:\n      if (gb18030_second !== 0x00) {\n\n        // 1. If byte is in the range 0x81 to 0xFE, set gb18030 third\n        // to byte and return continue.\n        if (inRange(bite, 0x81, 0xFE)) {\n          gb18030_third = bite;\n          return null;\n        }\n\n        // 2. Prepend gb18030 second followed by byte to stream, set\n        // gb18030 first and gb18030 second to 0x00, and return error.\n        stream.prepend([gb18030_second, bite]);\n        gb18030_first = 0x00;\n        gb18030_second = 0x00;\n        return decoderError(fatal);\n      }\n\n      // 5. If gb18030 first is not 0x00, run these substeps:\n      if (gb18030_first !== 0x00) {\n\n        // 1. If byte is in the range 0x30 to 0x39, set gb18030 second\n        // to byte and return continue.\n        if (inRange(bite, 0x30, 0x39)) {\n          gb18030_second = bite;\n          return null;\n        }\n\n        // 2. Let lead be gb18030 first, let pointer be null, and set\n        // gb18030 first to 0x00.\n        var lead = gb18030_first;\n        var pointer = null;\n        gb18030_first = 0x00;\n\n        // 3. Let offset be 0x40 if byte is less than 0x7F and 0x41\n        // otherwise.\n        var offset = bite < 0x7F ? 0x40 : 0x41;\n\n        // 4. If byte is in the range 0x40 to 0x7E or 0x80 to 0xFE,\n        // set pointer to (lead − 0x81) × 190 + (byte − offset).\n        if (inRange(bite, 0x40, 0x7E) || inRange(bite, 0x80, 0xFE))\n          pointer = (lead - 0x81) * 190 + (bite - offset);\n\n        // 5. Let code point be null if pointer is null and the index\n        // code point for pointer in index gb18030 otherwise.\n        code_point = pointer === null ? null :\n            indexCodePointFor(pointer, index('gb18030'));\n\n        // 6. If code point is null and byte is in the range 0x00 to\n        // 0x7F, prepend byte to stream.\n        if (code_point === null && inRange(bite, 0x00, 0x7F))\n          stream.prepend(bite);\n\n        // 7. If code point is null, return error.\n        if (code_point === null)\n          return decoderError(fatal);\n\n        // 8. Return a code point whose value is code point.\n        return code_point;\n      }\n\n      // 6. If byte is in the range 0x00 to 0x7F, return a code point\n      // whose value is byte.\n      if (inRange(bite, 0x00, 0x7F))\n        return bite;\n\n      // 7. If byte is 0x80, return code point U+20AC.\n      if (bite === 0x80)\n        return 0x20AC;\n\n      // 8. If byte is in the range 0x81 to 0xFE, set gb18030 first to\n      // byte and return continue.\n      if (inRange(bite, 0x81, 0xFE)) {\n        gb18030_first = bite;\n        return null;\n      }\n\n      // 9. Return error.\n      return decoderError(fatal);\n    };\n  }\n\n  // 10.2.2 gb18030 encoder\n  /**\n   * @constructor\n   * @implements {Encoder}\n   * @param {{fatal: boolean}} options\n   * @param {boolean=} gbk_flag\n   */\n  function GB18030Encoder(options, gbk_flag) {\n    var fatal = options.fatal;\n    // gb18030's decoder has an associated gbk flag (initially unset).\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    this.handler = function(stream, code_point) {\n      // 1. If code point is end-of-stream, return finished.\n      if (code_point === end_of_stream)\n        return finished;\n\n      // 2. If code point is in the range U+0000 to U+007F, return a\n      // byte whose value is code point.\n      if (inRange(code_point, 0x0000, 0x007F)) {\n        return code_point;\n      }\n\n      // 3. If the gbk flag is set and code point is U+20AC, return\n      // byte 0x80.\n      if (gbk_flag && code_point === 0x20AC)\n        return 0x80;\n\n      // 4. Let pointer be the index pointer for code point in index\n      // gb18030.\n      var pointer = indexPointerFor(code_point, index('gb18030'));\n\n      // 5. If pointer is not null, run these substeps:\n      if (pointer !== null) {\n\n        // 1. Let lead be pointer / 190 + 0x81.\n        var lead = div(pointer, 190) + 0x81;\n\n        // 2. Let trail be pointer % 190.\n        var trail = pointer % 190;\n\n        // 3. Let offset be 0x40 if trail is less than 0x3F and 0x41 otherwise.\n        var offset = trail < 0x3F ? 0x40 : 0x41;\n\n        // 4. Return two bytes whose values are lead and trail + offset.\n        return [lead, trail + offset];\n      }\n\n      // 6. If gbk flag is set, return error with code point.\n      if (gbk_flag)\n        return encoderError(code_point);\n\n      // 7. Set pointer to the index gb18030 ranges pointer for code\n      // point.\n      pointer = indexGB18030RangesPointerFor(code_point);\n\n      // 8. Let byte1 be pointer / 10 / 126 / 10.\n      var byte1 = div(div(div(pointer, 10), 126), 10);\n\n      // 9. Set pointer to pointer − byte1 × 10 × 126 × 10.\n      pointer = pointer - byte1 * 10 * 126 * 10;\n\n      // 10. Let byte2 be pointer / 10 / 126.\n      var byte2 = div(div(pointer, 10), 126);\n\n      // 11. Set pointer to pointer − byte2 × 10 × 126.\n      pointer = pointer - byte2 * 10 * 126;\n\n      // 12. Let byte3 be pointer / 10.\n      var byte3 = div(pointer, 10);\n\n      // 13. Let byte4 be pointer − byte3 × 10.\n      var byte4 = pointer - byte3 * 10;\n\n      // 14. Return four bytes whose values are byte1 + 0x81, byte2 +\n      // 0x30, byte3 + 0x81, byte4 + 0x30.\n      return [byte1 + 0x81,\n              byte2 + 0x30,\n              byte3 + 0x81,\n              byte4 + 0x30];\n    };\n  }\n\n  /** @param {{fatal: boolean}} options */\n  encoders['gb18030'] = function(options) {\n    return new GB18030Encoder(options);\n  };\n  /** @param {{fatal: boolean}} options */\n  decoders['gb18030'] = function(options) {\n    return new GB18030Decoder(options);\n  };\n\n\n  //\n  // 11. Legacy multi-byte Chinese (traditional) encodings\n  //\n\n  // 11.1 big5\n\n  /**\n   * @constructor\n   * @implements {Decoder}\n   * @param {{fatal: boolean}} options\n   */\n  function Big5Decoder(options) {\n    var fatal = options.fatal;\n    // big5's decoder has an associated big5 lead (initially 0x00).\n    var /** @type {number} */ big5_lead = 0x00;\n\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    this.handler = function(stream, bite) {\n      // 1. If byte is end-of-stream and big5 lead is not 0x00, set\n      // big5 lead to 0x00 and return error.\n      if (bite === end_of_stream && big5_lead !== 0x00) {\n        big5_lead = 0x00;\n        return decoderError(fatal);\n      }\n\n      // 2. If byte is end-of-stream and big5 lead is 0x00, return\n      // finished.\n      if (bite === end_of_stream && big5_lead === 0x00)\n        return finished;\n\n      // 3. If big5 lead is not 0x00, let lead be big5 lead, let\n      // pointer be null, set big5 lead to 0x00, and then run these\n      // substeps:\n      if (big5_lead !== 0x00) {\n        var lead = big5_lead;\n        var pointer = null;\n        big5_lead = 0x00;\n\n        // 1. Let offset be 0x40 if byte is less than 0x7F and 0x62\n        // otherwise.\n        var offset = bite < 0x7F ? 0x40 : 0x62;\n\n        // 2. If byte is in the range 0x40 to 0x7E or 0xA1 to 0xFE,\n        // set pointer to (lead − 0x81) × 157 + (byte − offset).\n        if (inRange(bite, 0x40, 0x7E) || inRange(bite, 0xA1, 0xFE))\n          pointer = (lead - 0x81) * 157 + (bite - offset);\n\n        // 3. If there is a row in the table below whose first column\n        // is pointer, return the two code points listed in its second\n        // column\n        // Pointer | Code points\n        // --------+--------------\n        // 1133    | U+00CA U+0304\n        // 1135    | U+00CA U+030C\n        // 1164    | U+00EA U+0304\n        // 1166    | U+00EA U+030C\n        switch (pointer) {\n          case 1133: return [0x00CA, 0x0304];\n          case 1135: return [0x00CA, 0x030C];\n          case 1164: return [0x00EA, 0x0304];\n          case 1166: return [0x00EA, 0x030C];\n        }\n\n        // 4. Let code point be null if pointer is null and the index\n        // code point for pointer in index big5 otherwise.\n        var code_point = (pointer === null) ? null :\n            indexCodePointFor(pointer, index('big5'));\n\n        // 5. If code point is null and byte is in the range 0x00 to\n        // 0x7F, prepend byte to stream.\n        if (code_point === null && inRange(bite, 0x00, 0x7F))\n          stream.prepend(bite);\n\n        // 6. If code point is null, return error.\n        if (code_point === null)\n          return decoderError(fatal);\n\n        // 7. Return a code point whose value is code point.\n        return code_point;\n      }\n\n      // 4. If byte is in the range 0x00 to 0x7F, return a code point\n      // whose value is byte.\n      if (inRange(bite, 0x00, 0x7F))\n        return bite;\n\n      // 5. If byte is in the range 0x81 to 0xFE, set big5 lead to\n      // byte and return continue.\n      if (inRange(bite, 0x81, 0xFE)) {\n        big5_lead = bite;\n        return null;\n      }\n\n      // 6. Return error.\n      return decoderError(fatal);\n    };\n  }\n\n  /**\n   * @constructor\n   * @implements {Encoder}\n   * @param {{fatal: boolean}} options\n   */\n  function Big5Encoder(options) {\n    var fatal = options.fatal;\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    this.handler = function(stream, code_point) {\n      // 1. If code point is end-of-stream, return finished.\n      if (code_point === end_of_stream)\n        return finished;\n\n      // 2. If code point is in the range U+0000 to U+007F, return a\n      // byte whose value is code point.\n      if (inRange(code_point, 0x0000, 0x007F))\n        return code_point;\n\n      // 3. Let pointer be the index big5 pointer for code point.\n      var pointer = indexBig5PointerFor(code_point, index('big5'));\n\n      // 4. If pointer is null, return error with code point.\n      if (pointer === null)\n        return encoderError(code_point);\n\n      // 5. Let lead be pointer / 157 + 0x81.\n      var lead = div(pointer, 157) + 0x81;\n\n      // 6. If lead is less than 0xA1, return error with code point.\n      if (lead < 0xA1)\n        return encoderError(code_point);\n\n      // 7. Let trail be pointer % 157.\n      var trail = pointer % 157;\n\n      // 8. Let offset be 0x40 if trail is less than 0x3F and 0x62\n      // otherwise.\n      var offset = trail < 0x3F ? 0x40 : 0x62;\n\n      // Return two bytes whose values are lead and trail + offset.\n      return [lead, trail + offset];\n    };\n  }\n\n  /** @param {{fatal: boolean}} options */\n  encoders['big5'] = function(options) {\n    return new Big5Encoder(options);\n  };\n  /** @param {{fatal: boolean}} options */\n  decoders['big5'] = function(options) {\n    return new Big5Decoder(options);\n  };\n\n\n  //\n  // 12. Legacy multi-byte Japanese encodings\n  //\n\n  // 12.1 euc-jp\n\n  /**\n   * @constructor\n   * @implements {Decoder}\n   * @param {{fatal: boolean}} options\n   */\n  function EUCJPDecoder(options) {\n    var fatal = options.fatal;\n\n    // euc-jp's decoder has an associated euc-jp jis0212 flag\n    // (initially unset) and euc-jp lead (initially 0x00).\n    var /** @type {boolean} */ eucjp_jis0212_flag = false,\n        /** @type {number} */ eucjp_lead = 0x00;\n\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    this.handler = function(stream, bite) {\n      // 1. If byte is end-of-stream and euc-jp lead is not 0x00, set\n      // euc-jp lead to 0x00, and return error.\n      if (bite === end_of_stream && eucjp_lead !== 0x00) {\n        eucjp_lead = 0x00;\n        return decoderError(fatal);\n      }\n\n      // 2. If byte is end-of-stream and euc-jp lead is 0x00, return\n      // finished.\n      if (bite === end_of_stream && eucjp_lead === 0x00)\n        return finished;\n\n      // 3. If euc-jp lead is 0x8E and byte is in the range 0xA1 to\n      // 0xDF, set euc-jp lead to 0x00 and return a code point whose\n      // value is 0xFF61 + byte − 0xA1.\n      if (eucjp_lead === 0x8E && inRange(bite, 0xA1, 0xDF)) {\n        eucjp_lead = 0x00;\n        return 0xFF61 + bite - 0xA1;\n      }\n\n      // 4. If euc-jp lead is 0x8F and byte is in the range 0xA1 to\n      // 0xFE, set the euc-jp jis0212 flag, set euc-jp lead to byte,\n      // and return continue.\n      if (eucjp_lead === 0x8F && inRange(bite, 0xA1, 0xFE)) {\n        eucjp_jis0212_flag = true;\n        eucjp_lead = bite;\n        return null;\n      }\n\n      // 5. If euc-jp lead is not 0x00, let lead be euc-jp lead, set\n      // euc-jp lead to 0x00, and run these substeps:\n      if (eucjp_lead !== 0x00) {\n        var lead = eucjp_lead;\n        eucjp_lead = 0x00;\n\n        // 1. Let code point be null.\n        var code_point = null;\n\n        // 2. If lead and byte are both in the range 0xA1 to 0xFE, set\n        // code point to the index code point for (lead − 0xA1) × 94 +\n        // byte − 0xA1 in index jis0208 if the euc-jp jis0212 flag is\n        // unset and in index jis0212 otherwise.\n        if (inRange(lead, 0xA1, 0xFE) && inRange(bite, 0xA1, 0xFE)) {\n          code_point = indexCodePointFor(\n            (lead - 0xA1) * 94 + (bite - 0xA1),\n            index(!eucjp_jis0212_flag ? 'jis0208' : 'jis0212'));\n        }\n\n        // 3. Unset the euc-jp jis0212 flag.\n        eucjp_jis0212_flag = false;\n\n        // 4. If byte is not in the range 0xA1 to 0xFE, prepend byte\n        // to stream.\n        if (!inRange(bite, 0xA1, 0xFE))\n          stream.prepend(bite);\n\n        // 5. If code point is null, return error.\n        if (code_point === null)\n          return decoderError(fatal);\n\n        // 6. Return a code point whose value is code point.\n        return code_point;\n      }\n\n      // 6. If byte is in the range 0x00 to 0x7F, return a code point\n      // whose value is byte.\n      if (inRange(bite, 0x00, 0x7F))\n        return bite;\n\n      // 7. If byte is 0x8E, 0x8F, or in the range 0xA1 to 0xFE, set\n      // euc-jp lead to byte and return continue.\n      if (bite === 0x8E || bite === 0x8F || inRange(bite, 0xA1, 0xFE)) {\n        eucjp_lead = bite;\n        return null;\n      }\n\n      // 8. Return error.\n      return decoderError(fatal);\n    };\n  }\n\n  /**\n   * @constructor\n   * @implements {Encoder}\n   * @param {{fatal: boolean}} options\n   */\n  function EUCJPEncoder(options) {\n    var fatal = options.fatal;\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    this.handler = function(stream, code_point) {\n      // 1. If code point is end-of-stream, return finished.\n      if (code_point === end_of_stream)\n        return finished;\n\n      // 2. If code point is in the range U+0000 to U+007F, return a\n      // byte whose value is code point.\n      if (inRange(code_point, 0x0000, 0x007F))\n        return code_point;\n\n      // 3. If code point is U+00A5, return byte 0x5C.\n      if (code_point === 0x00A5)\n        return 0x5C;\n\n      // 4. If code point is U+203E, return byte 0x7E.\n      if (code_point === 0x203E)\n        return 0x7E;\n\n      // 5. If code point is in the range U+FF61 to U+FF9F, return two\n      // bytes whose values are 0x8E and code point − 0xFF61 + 0xA1.\n      if (inRange(code_point, 0xFF61, 0xFF9F))\n        return [0x8E, code_point - 0xFF61 + 0xA1];\n\n      // 6. If code point is U+2022, set it to U+FF0D.\n      if (code_point === 0x2022)\n        code_point = 0xFF0D;\n\n      // 7. Let pointer be the index pointer for code point in index\n      // jis0208.\n      var pointer = indexPointerFor(code_point, index('jis0208'));\n\n      // 8. If pointer is null, return error with code point.\n      if (pointer === null)\n        return encoderError(code_point);\n\n      // 9. Let lead be pointer / 94 + 0xA1.\n      var lead = div(pointer, 94) + 0xA1;\n\n      // 10. Let trail be pointer % 94 + 0xA1.\n      var trail = pointer % 94 + 0xA1;\n\n      // 11. Return two bytes whose values are lead and trail.\n      return [lead, trail];\n    };\n  }\n\n  /** @param {{fatal: boolean}} options */\n  encoders['euc-jp'] = function(options) {\n    return new EUCJPEncoder(options);\n  };\n  /** @param {{fatal: boolean}} options */\n  decoders['euc-jp'] = function(options) {\n    return new EUCJPDecoder(options);\n  };\n\n  // 12.2 iso-2022-jp\n\n  /**\n   * @constructor\n   * @implements {Decoder}\n   * @param {{fatal: boolean}} options\n   */\n  function ISO2022JPDecoder(options) {\n    var fatal = options.fatal;\n    /** @enum */\n    var states = {\n      ASCII: 0,\n      Roman: 1,\n      Katakana: 2,\n      LeadByte: 3,\n      TrailByte: 4,\n      EscapeStart: 5,\n      Escape: 6\n    };\n    // iso-2022-jp's decoder has an associated iso-2022-jp decoder\n    // state (initially ASCII), iso-2022-jp decoder output state\n    // (initially ASCII), iso-2022-jp lead (initially 0x00), and\n    // iso-2022-jp output flag (initially unset).\n    var /** @type {number} */ iso2022jp_decoder_state = states.ASCII,\n        /** @type {number} */ iso2022jp_decoder_output_state = states.ASCII,\n        /** @type {number} */ iso2022jp_lead = 0x00,\n        /** @type {boolean} */ iso2022jp_output_flag = false;\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    this.handler = function(stream, bite) {\n      // switching on iso-2022-jp decoder state:\n      switch (iso2022jp_decoder_state) {\n      default:\n      case states.ASCII:\n        // ASCII\n        // Based on byte:\n\n        // 0x1B\n        if (bite === 0x1B) {\n          // Set iso-2022-jp decoder state to escape start and return\n          // continue.\n          iso2022jp_decoder_state = states.EscapeStart;\n          return null;\n        }\n\n        // 0x00 to 0x7F, excluding 0x0E, 0x0F, and 0x1B\n        if (inRange(bite, 0x00, 0x7F) && bite !== 0x0E\n            && bite !== 0x0F && bite !== 0x1B) {\n          // Unset the iso-2022-jp output flag and return a code point\n          // whose value is byte.\n          iso2022jp_output_flag = false;\n          return bite;\n        }\n\n        // end-of-stream\n        if (bite === end_of_stream) {\n          // Return finished.\n          return finished;\n        }\n\n        // Otherwise\n        // Unset the iso-2022-jp output flag and return error.\n        iso2022jp_output_flag = false;\n        return decoderError(fatal);\n\n      case states.Roman:\n        // Roman\n        // Based on byte:\n\n        // 0x1B\n        if (bite === 0x1B) {\n          // Set iso-2022-jp decoder state to escape start and return\n          // continue.\n          iso2022jp_decoder_state = states.EscapeStart;\n          return null;\n        }\n\n        // 0x5C\n        if (bite === 0x5C) {\n          // Unset the iso-2022-jp output flag and return code point\n          // U+00A5.\n          iso2022jp_output_flag = false;\n          return 0x00A5;\n        }\n\n        // 0x7E\n        if (bite === 0x7E) {\n          // Unset the iso-2022-jp output flag and return code point\n          // U+203E.\n          iso2022jp_output_flag = false;\n          return 0x203E;\n        }\n\n        // 0x00 to 0x7F, excluding 0x0E, 0x0F, 0x1B, 0x5C, and 0x7E\n        if (inRange(bite, 0x00, 0x7F) && bite !== 0x0E && bite !== 0x0F\n            && bite !== 0x1B && bite !== 0x5C && bite !== 0x7E) {\n          // Unset the iso-2022-jp output flag and return a code point\n          // whose value is byte.\n          iso2022jp_output_flag = false;\n          return bite;\n        }\n\n        // end-of-stream\n        if (bite === end_of_stream) {\n          // Return finished.\n          return finished;\n        }\n\n        // Otherwise\n        // Unset the iso-2022-jp output flag and return error.\n        iso2022jp_output_flag = false;\n        return decoderError(fatal);\n\n      case states.Katakana:\n        // Katakana\n        // Based on byte:\n\n        // 0x1B\n        if (bite === 0x1B) {\n          // Set iso-2022-jp decoder state to escape start and return\n          // continue.\n          iso2022jp_decoder_state = states.EscapeStart;\n          return null;\n        }\n\n        // 0x21 to 0x5F\n        if (inRange(bite, 0x21, 0x5F)) {\n          // Unset the iso-2022-jp output flag and return a code point\n          // whose value is 0xFF61 + byte − 0x21.\n          iso2022jp_output_flag = false;\n          return 0xFF61 + bite - 0x21;\n        }\n\n        // end-of-stream\n        if (bite === end_of_stream) {\n          // Return finished.\n          return finished;\n        }\n\n        // Otherwise\n        // Unset the iso-2022-jp output flag and return error.\n        iso2022jp_output_flag = false;\n        return decoderError(fatal);\n\n      case states.LeadByte:\n        // Lead byte\n        // Based on byte:\n\n        // 0x1B\n        if (bite === 0x1B) {\n          // Set iso-2022-jp decoder state to escape start and return\n          // continue.\n          iso2022jp_decoder_state = states.EscapeStart;\n          return null;\n        }\n\n        // 0x21 to 0x7E\n        if (inRange(bite, 0x21, 0x7E)) {\n          // Unset the iso-2022-jp output flag, set iso-2022-jp lead\n          // to byte, iso-2022-jp decoder state to trail byte, and\n          // return continue.\n          iso2022jp_output_flag = false;\n          iso2022jp_lead = bite;\n          iso2022jp_decoder_state = states.TrailByte;\n          return null;\n        }\n\n        // end-of-stream\n        if (bite === end_of_stream) {\n          // Return finished.\n          return finished;\n        }\n\n        // Otherwise\n        // Unset the iso-2022-jp output flag and return error.\n        iso2022jp_output_flag = false;\n        return decoderError(fatal);\n\n      case states.TrailByte:\n        // Trail byte\n        // Based on byte:\n\n        // 0x1B\n        if (bite === 0x1B) {\n          // Set iso-2022-jp decoder state to escape start and return\n          // continue.\n          iso2022jp_decoder_state = states.EscapeStart;\n          return decoderError(fatal);\n        }\n\n        // 0x21 to 0x7E\n        if (inRange(bite, 0x21, 0x7E)) {\n          // 1. Set the iso-2022-jp decoder state to lead byte.\n          iso2022jp_decoder_state = states.LeadByte;\n\n          // 2. Let pointer be (iso-2022-jp lead − 0x21) × 94 + byte − 0x21.\n          var pointer = (iso2022jp_lead - 0x21) * 94 + bite - 0x21;\n\n          // 3. Let code point be the index code point for pointer in index jis0208.\n          var code_point = indexCodePointFor(pointer, index('jis0208'));\n\n          // 4. If code point is null, return error.\n          if (code_point === null)\n            return decoderError(fatal);\n\n          // 5. Return a code point whose value is code point.\n          return code_point;\n        }\n\n        // end-of-stream\n        if (bite === end_of_stream) {\n          // Set the iso-2022-jp decoder state to lead byte, prepend\n          // byte to stream, and return error.\n          iso2022jp_decoder_state = states.LeadByte;\n          stream.prepend(bite);\n          return decoderError(fatal);\n        }\n\n        // Otherwise\n        // Set iso-2022-jp decoder state to lead byte and return\n        // error.\n        iso2022jp_decoder_state = states.LeadByte;\n        return decoderError(fatal);\n\n      case states.EscapeStart:\n        // Escape start\n\n        // 1. If byte is either 0x24 or 0x28, set iso-2022-jp lead to\n        // byte, iso-2022-jp decoder state to escape, and return\n        // continue.\n        if (bite === 0x24 || bite === 0x28) {\n          iso2022jp_lead = bite;\n          iso2022jp_decoder_state = states.Escape;\n          return null;\n        }\n\n        // 2. Prepend byte to stream.\n        stream.prepend(bite);\n\n        // 3. Unset the iso-2022-jp output flag, set iso-2022-jp\n        // decoder state to iso-2022-jp decoder output state, and\n        // return error.\n        iso2022jp_output_flag = false;\n        iso2022jp_decoder_state = iso2022jp_decoder_output_state;\n        return decoderError(fatal);\n\n      case states.Escape:\n        // Escape\n\n        // 1. Let lead be iso-2022-jp lead and set iso-2022-jp lead to\n        // 0x00.\n        var lead = iso2022jp_lead;\n        iso2022jp_lead = 0x00;\n\n        // 2. Let state be null.\n        var state = null;\n\n        // 3. If lead is 0x28 and byte is 0x42, set state to ASCII.\n        if (lead === 0x28 && bite === 0x42)\n          state = states.ASCII;\n\n        // 4. If lead is 0x28 and byte is 0x4A, set state to Roman.\n        if (lead === 0x28 && bite === 0x4A)\n          state = states.Roman;\n\n        // 5. If lead is 0x28 and byte is 0x49, set state to Katakana.\n        if (lead === 0x28 && bite === 0x49)\n          state = states.Katakana;\n\n        // 6. If lead is 0x24 and byte is either 0x40 or 0x42, set\n        // state to lead byte.\n        if (lead === 0x24 && (bite === 0x40 || bite === 0x42))\n          state = states.LeadByte;\n\n        // 7. If state is non-null, run these substeps:\n        if (state !== null) {\n          // 1. Set iso-2022-jp decoder state and iso-2022-jp decoder\n          // output state to states.\n          iso2022jp_decoder_state = iso2022jp_decoder_state = state;\n\n          // 2. Let output flag be the iso-2022-jp output flag.\n          var output_flag = iso2022jp_output_flag;\n\n          // 3. Set the iso-2022-jp output flag.\n          iso2022jp_output_flag = true;\n\n          // 4. Return continue, if output flag is unset, and error\n          // otherwise.\n          return !output_flag ? null : decoderError(fatal);\n        }\n\n        // 8. Prepend lead and byte to stream.\n        stream.prepend([lead, bite]);\n\n        // 9. Unset the iso-2022-jp output flag, set iso-2022-jp\n        // decoder state to iso-2022-jp decoder output state and\n        // return error.\n        iso2022jp_output_flag = false;\n        iso2022jp_decoder_state = iso2022jp_decoder_output_state;\n        return decoderError(fatal);\n      }\n    };\n  }\n\n  /**\n   * @constructor\n   * @implements {Encoder}\n   * @param {{fatal: boolean}} options\n   */\n  function ISO2022JPEncoder(options) {\n    var fatal = options.fatal;\n    // iso-2022-jp's encoder has an associated iso-2022-jp encoder\n    // state which is one of ASCII, Roman, and jis0208 (initially\n    // ASCII).\n    /** @enum */\n    var states = {\n      ASCII: 0,\n      Roman: 1,\n      jis0208: 2\n    };\n    var /** @type {number} */ iso2022jp_state = states.ASCII;\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    this.handler = function(stream, code_point) {\n      // 1. If code point is end-of-stream and iso-2022-jp encoder\n      // state is not ASCII, prepend code point to stream, set\n      // iso-2022-jp encoder state to ASCII, and return three bytes\n      // 0x1B 0x28 0x42.\n      if (code_point === end_of_stream &&\n          iso2022jp_state !== states.ASCII) {\n        stream.prepend(code_point);\n        return [0x1B, 0x28, 0x42];\n      }\n\n      // 2. If code point is end-of-stream and iso-2022-jp encoder\n      // state is ASCII, return finished.\n      if (code_point === end_of_stream && iso2022jp_state === states.ASCII)\n        return finished;\n\n      // 3. If iso-2022-jp encoder state is ASCII and code point is in\n      // the range U+0000 to U+007F, return a byte whose value is code\n      // point.\n      if (iso2022jp_state === states.ASCII &&\n          inRange(code_point, 0x0000, 0x007F))\n        return code_point;\n\n      // 4. If iso-2022-jp encoder state is Roman and code point is in\n      // the range U+0000 to U+007F, excluding U+005C and U+007E, or\n      // is U+00A5 or U+203E, run these substeps:\n      if (iso2022jp_state === states.Roman &&\n          inRange(code_point, 0x0000, 0x007F) &&\n          code_point !== 0x005C && code_point !== 0x007E) {\n\n        // 1. If code point is in the range U+0000 to U+007F, return a\n        // byte whose value is code point.\n        if (inRange(code_point, 0x0000, 0x007F))\n          return code_point;\n\n        // 2. If code point is U+00A5, return byte 0x5C.\n        if (code_point === 0x00A5)\n          return 0x5C;\n\n        // 3. If code point is U+203E, return byte 0x7E.\n        if (code_point === 0x203E)\n          return 0x7E;\n      }\n\n      // 5. If code point is in the range U+0000 to U+007F, and\n      // iso-2022-jp encoder state is not ASCII, prepend code point to\n      // stream, set iso-2022-jp encoder state to ASCII, and return\n      // three bytes 0x1B 0x28 0x42.\n      if (inRange(code_point, 0x0000, 0x007F) &&\n          iso2022jp_state !== states.ASCII) {\n        stream.prepend(code_point);\n        iso2022jp_state = states.ASCII;\n        return [0x1B, 0x28, 0x42];\n      }\n\n      // 6. If code point is either U+00A5 or U+203E, and iso-2022-jp\n      // encoder state is not Roman, prepend code point to stream, set\n      // iso-2022-jp encoder state to Roman, and return three bytes\n      // 0x1B 0x28 0x4A.\n      if ((code_point === 0x00A5 || code_point === 0x203E) &&\n          iso2022jp_state !== states.Roman) {\n        stream.prepend(code_point);\n        iso2022jp_state = states.Roman;\n        return [0x1B, 0x28, 0x4A];\n      }\n\n      // 7. If code point is U+2022, set it to U+FF0D.\n      if (code_point === 0x2022)\n        code_point = 0xFF0D;\n\n      // 8. Let pointer be the index pointer for code point in index\n      // jis0208.\n      var pointer = indexPointerFor(code_point, index('jis0208'));\n\n      // 9. If pointer is null, return error with code point.\n      if (pointer === null)\n        return encoderError(code_point);\n\n      // 10. If iso-2022-jp encoder state is not jis0208, prepend code\n      // point to stream, set iso-2022-jp encoder state to jis0208,\n      // and return three bytes 0x1B 0x24 0x42.\n      if (iso2022jp_state !== states.jis0208) {\n        stream.prepend(code_point);\n        iso2022jp_state = states.jis0208;\n        return [0x1B, 0x24, 0x42];\n      }\n\n      // 11. Let lead be pointer / 94 + 0x21.\n      var lead = div(pointer, 94) + 0x21;\n\n      // 12. Let trail be pointer % 94 + 0x21.\n      var trail = pointer % 94 + 0x21;\n\n      // 13. Return two bytes whose values are lead and trail.\n      return [lead, trail];\n    };\n  }\n\n  /** @param {{fatal: boolean}} options */\n  encoders['iso-2022-jp'] = function(options) {\n    return new ISO2022JPEncoder(options);\n  };\n  /** @param {{fatal: boolean}} options */\n  decoders['iso-2022-jp'] = function(options) {\n    return new ISO2022JPDecoder(options);\n  };\n\n  // 12.3 shift_jis\n\n  /**\n   * @constructor\n   * @implements {Decoder}\n   * @param {{fatal: boolean}} options\n   */\n  function ShiftJISDecoder(options) {\n    var fatal = options.fatal;\n    // shift_jis's decoder has an associated shift_jis lead (initially\n    // 0x00).\n    var /** @type {number} */ shiftjis_lead = 0x00;\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    this.handler = function(stream, bite) {\n      // 1. If byte is end-of-stream and shift_jis lead is not 0x00,\n      // set shift_jis lead to 0x00 and return error.\n      if (bite === end_of_stream && shiftjis_lead !== 0x00) {\n        shiftjis_lead = 0x00;\n        return decoderError(fatal);\n      }\n\n      // 2. If byte is end-of-stream and shift_jis lead is 0x00,\n      // return finished.\n      if (bite === end_of_stream && shiftjis_lead === 0x00)\n        return finished;\n\n      // 3. If shift_jis lead is not 0x00, let lead be shift_jis lead,\n      // let pointer be null, set shift_jis lead to 0x00, and then run\n      // these substeps:\n      if (shiftjis_lead !== 0x00) {\n        var lead = shiftjis_lead;\n        var pointer = null;\n        shiftjis_lead = 0x00;\n\n        // 1. Let offset be 0x40, if byte is less than 0x7F, and 0x41\n        // otherwise.\n        var offset = (bite < 0x7F) ? 0x40 : 0x41;\n\n        // 2. Let lead offset be 0x81, if lead is less than 0xA0, and\n        // 0xC1 otherwise.\n        var lead_offset = (lead < 0xA0) ? 0x81 : 0xC1;\n\n        // 3. If byte is in the range 0x40 to 0x7E or 0x80 to 0xFC,\n        // set pointer to (lead − lead offset) × 188 + byte − offset.\n        if (inRange(bite, 0x40, 0x7E) || inRange(bite, 0x80, 0xFC))\n          pointer = (lead - lead_offset) * 188 + bite - offset;\n\n        // 4. Let code point be null, if pointer is null, and the\n        // index code point for pointer in index jis0208 otherwise.\n        var code_point = (pointer === null) ? null :\n              indexCodePointFor(pointer, index('jis0208'));\n\n        // 5. If code point is null and pointer is in the range 8836\n        // to 10528, return a code point whose value is 0xE000 +\n        // pointer − 8836.\n        if (code_point === null && pointer !== null &&\n            inRange(pointer, 8836, 10528))\n          return 0xE000 + pointer - 8836;\n\n        // 6. If code point is null and byte is in the range 0x00 to\n        // 0x7F, prepend byte to stream.\n        if (code_point === null && inRange(bite, 0x00, 0x7F))\n          stream.prepend(bite);\n\n        // 7. If code point is null, return error.\n        if (code_point === null)\n          return decoderError(fatal);\n\n        // 8. Return a code point whose value is code point.\n        return code_point;\n      }\n\n      // 4. If byte is in the range 0x00 to 0x80, return a code point\n      // whose value is byte.\n      if (inRange(bite, 0x00, 0x80))\n        return bite;\n\n      // 5. If byte is in the range 0xA1 to 0xDF, return a code point\n      // whose value is 0xFF61 + byte − 0xA1.\n      if (inRange(bite, 0xA1, 0xDF))\n        return 0xFF61 + bite - 0xA1;\n\n      // 6. If byte is in the range 0x81 to 0x9F or 0xE0 to 0xFC, set\n      // shift_jis lead to byte and return continue.\n      if (inRange(bite, 0x81, 0x9F) || inRange(bite, 0xE0, 0xFC)) {\n        shiftjis_lead = bite;\n        return null;\n      }\n\n      // 7. Return error.\n      return decoderError(fatal);\n    };\n  }\n\n  /**\n   * @constructor\n   * @implements {Encoder}\n   * @param {{fatal: boolean}} options\n   */\n  function ShiftJISEncoder(options) {\n    var fatal = options.fatal;\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    this.handler = function(stream, code_point) {\n      // 1. If code point is end-of-stream, return finished.\n      if (code_point === end_of_stream)\n        return finished;\n\n      // 2. If code point is in the range U+0000 to U+0080, return a\n      // byte whose value is code point.\n      if (inRange(code_point, 0x0000, 0x0080))\n        return code_point;\n\n      // 3. If code point is U+00A5, return byte 0x5C.\n      if (code_point === 0x00A5)\n        return 0x5C;\n\n      // 4. If code point is U+203E, return byte 0x7E.\n      if (code_point === 0x203E)\n        return 0x7E;\n\n      // 5. If code point is in the range U+FF61 to U+FF9F, return a\n      // byte whose value is code point − 0xFF61 + 0xA1.\n      if (inRange(code_point, 0xFF61, 0xFF9F))\n        return code_point - 0xFF61 + 0xA1;\n\n      // 6. If code point is U+2022, set it to U+FF0D.\n      if (code_point === 0x2022)\n        code_point = 0xFF0D;\n\n      // 7. Let pointer be the index shift_jis pointer for code point.\n      var pointer = indexShiftJISPointerFor(code_point);\n\n      // 8. If pointer is null, return error with code point.\n      if (pointer === null)\n        return encoderError(code_point);\n\n      // 9. Let lead be pointer / 188.\n      var lead = div(pointer, 188);\n\n      // 10. Let lead offset be 0x81, if lead is less than 0x1F, and\n      // 0xC1 otherwise.\n      var lead_offset = (lead < 0x1F) ? 0x81 : 0xC1;\n\n      // 11. Let trail be pointer % 188.\n      var trail = pointer % 188;\n\n      // 12. Let offset be 0x40, if trail is less than 0x3F, and 0x41\n      // otherwise.\n      var offset = (trail < 0x3F) ? 0x40 : 0x41;\n\n      // 13. Return two bytes whose values are lead + lead offset and\n      // trail + offset.\n      return [lead + lead_offset, trail + offset];\n    };\n  }\n\n  /** @param {{fatal: boolean}} options */\n  encoders['shift_jis'] = function(options) {\n    return new ShiftJISEncoder(options);\n  };\n  /** @param {{fatal: boolean}} options */\n  decoders['shift_jis'] = function(options) {\n    return new ShiftJISDecoder(options);\n  };\n\n  //\n  // 13. Legacy multi-byte Korean encodings\n  //\n\n  // 13.1 euc-kr\n\n  /**\n   * @constructor\n   * @implements {Decoder}\n   * @param {{fatal: boolean}} options\n   */\n  function EUCKRDecoder(options) {\n    var fatal = options.fatal;\n\n    // euc-kr's decoder has an associated euc-kr lead (initially 0x00).\n    var /** @type {number} */ euckr_lead = 0x00;\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    this.handler = function(stream, bite) {\n      // 1. If byte is end-of-stream and euc-kr lead is not 0x00, set\n      // euc-kr lead to 0x00 and return error.\n      if (bite === end_of_stream && euckr_lead !== 0) {\n        euckr_lead = 0x00;\n        return decoderError(fatal);\n      }\n\n      // 2. If byte is end-of-stream and euc-kr lead is 0x00, return\n      // finished.\n      if (bite === end_of_stream && euckr_lead === 0)\n        return finished;\n\n      // 3. If euc-kr lead is not 0x00, let lead be euc-kr lead, let\n      // pointer be null, set euc-kr lead to 0x00, and then run these\n      // substeps:\n      if (euckr_lead !== 0x00) {\n        var lead = euckr_lead;\n        var pointer = null;\n        euckr_lead = 0x00;\n\n        // 1. If byte is in the range 0x41 to 0xFE, set pointer to\n        // (lead − 0x81) × 190 + (byte − 0x41).\n        if (inRange(bite, 0x41, 0xFE))\n          pointer = (lead - 0x81) * 190 + (bite - 0x41);\n\n        // 2. Let code point be null, if pointer is null, and the\n        // index code point for pointer in index euc-kr otherwise.\n        var code_point = (pointer === null) ? null : indexCodePointFor(pointer, index('euc-kr'));\n\n        // 3. If code point is null and byte is in the range 0x00 to\n        // 0x7F, prepend byte to stream.\n        if (pointer === null && inRange(bite, 0x00, 0x7F))\n          stream.prepend(bite);\n\n        // 4. If code point is null, return error.\n        if (code_point === null)\n          return decoderError(fatal);\n\n        // 5. Return a code point whose value is code point.\n        return code_point;\n      }\n\n      // 4. If byte is in the range 0x00 to 0x7F, return a code point\n      // whose value is byte.\n      if (inRange(bite, 0x00, 0x7F))\n        return bite;\n\n      // 5. If byte is in the range 0x81 to 0xFE, set euc-kr lead to\n      // byte and return continue.\n      if (inRange(bite, 0x81, 0xFE)) {\n        euckr_lead = bite;\n        return null;\n      }\n\n      // 6. Return error.\n      return decoderError(fatal);\n    };\n  }\n\n  /**\n   * @constructor\n   * @implements {Encoder}\n   * @param {{fatal: boolean}} options\n   */\n  function EUCKREncoder(options) {\n    var fatal = options.fatal;\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    this.handler = function(stream, code_point) {\n      // 1. If code point is end-of-stream, return finished.\n      if (code_point === end_of_stream)\n        return finished;\n\n      // 2. If code point is in the range U+0000 to U+007F, return a\n      // byte whose value is code point.\n      if (inRange(code_point, 0x0000, 0x007F))\n        return code_point;\n\n      // 3. Let pointer be the index pointer for code point in index\n      // euc-kr.\n      var pointer = indexPointerFor(code_point, index('euc-kr'));\n\n      // 4. If pointer is null, return error with code point.\n      if (pointer === null)\n        return encoderError(code_point);\n\n      // 5. Let lead be pointer / 190 + 0x81.\n      var lead = div(pointer, 190) + 0x81;\n\n      // 6. Let trail be pointer % 190 + 0x41.\n      var trail = (pointer % 190) + 0x41;\n\n      // 7. Return two bytes whose values are lead and trail.\n      return [lead, trail];\n    };\n  }\n\n  /** @param {{fatal: boolean}} options */\n  encoders['euc-kr'] = function(options) {\n    return new EUCKREncoder(options);\n  };\n  /** @param {{fatal: boolean}} options */\n  decoders['euc-kr'] = function(options) {\n    return new EUCKRDecoder(options);\n  };\n\n\n  //\n  // 14. Legacy miscellaneous encodings\n  //\n\n  // 14.1 replacement\n\n  // Not needed - API throws RangeError\n\n  // 14.2 utf-16\n\n  /**\n   * @param {number} code_unit\n   * @param {boolean} utf16be\n   * @return {!Array.<number>} bytes\n   */\n  function convertCodeUnitToBytes(code_unit, utf16be) {\n    // 1. Let byte1 be code unit >> 8.\n    var byte1 = code_unit >> 8;\n\n    // 2. Let byte2 be code unit & 0x00FF.\n    var byte2 = code_unit & 0x00FF;\n\n    // 3. Then return the bytes in order:\n        // utf-16be flag is set: byte1, then byte2.\n    if (utf16be)\n      return [byte1, byte2];\n    // utf-16be flag is unset: byte2, then byte1.\n    return [byte2, byte1];\n  }\n\n  /**\n   * @constructor\n   * @implements {Decoder}\n   * @param {boolean} utf16_be True if big-endian, false if little-endian.\n   * @param {{fatal: boolean}} options\n   */\n  function UTF16Decoder(utf16_be, options) {\n    var fatal = options.fatal;\n    var /** @type {?number} */ utf16_lead_byte = null,\n        /** @type {?number} */ utf16_lead_surrogate = null;\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    this.handler = function(stream, bite) {\n      // 1. If byte is end-of-stream and either utf-16 lead byte or\n      // utf-16 lead surrogate is not null, set utf-16 lead byte and\n      // utf-16 lead surrogate to null, and return error.\n      if (bite === end_of_stream && (utf16_lead_byte !== null ||\n                                utf16_lead_surrogate !== null)) {\n        return decoderError(fatal);\n      }\n\n      // 2. If byte is end-of-stream and utf-16 lead byte and utf-16\n      // lead surrogate are null, return finished.\n      if (bite === end_of_stream && utf16_lead_byte === null &&\n          utf16_lead_surrogate === null) {\n        return finished;\n      }\n\n      // 3. If utf-16 lead byte is null, set utf-16 lead byte to byte\n      // and return continue.\n      if (utf16_lead_byte === null) {\n        utf16_lead_byte = bite;\n        return null;\n      }\n\n      // 4. Let code unit be the result of:\n      var code_unit;\n      if (utf16_be) {\n        // utf-16be decoder flag is set\n        //   (utf-16 lead byte << 8) + byte.\n        code_unit = (utf16_lead_byte << 8) + bite;\n      } else {\n        // utf-16be decoder flag is unset\n        //   (byte << 8) + utf-16 lead byte.\n        code_unit = (bite << 8) + utf16_lead_byte;\n      }\n      // Then set utf-16 lead byte to null.\n      utf16_lead_byte = null;\n\n      // 5. If utf-16 lead surrogate is not null, let lead surrogate\n      // be utf-16 lead surrogate, set utf-16 lead surrogate to null,\n      // and then run these substeps:\n      if (utf16_lead_surrogate !== null) {\n        var lead_surrogate = utf16_lead_surrogate;\n        utf16_lead_surrogate = null;\n\n        // 1. If code unit is in the range U+DC00 to U+DFFF, return a\n        // code point whose value is 0x10000 + ((lead surrogate −\n        // 0xD800) << 10) + (code unit − 0xDC00).\n        if (inRange(code_unit, 0xDC00, 0xDFFF)) {\n          return 0x10000 + (lead_surrogate - 0xD800) * 0x400 +\n              (code_unit - 0xDC00);\n        }\n\n        // 2. Prepend the sequence resulting of converting code unit\n        // to bytes using utf-16be decoder flag to stream and return\n        // error.\n        stream.prepend(convertCodeUnitToBytes(code_unit, utf16_be));\n        return decoderError(fatal);\n      }\n\n      // 6. If code unit is in the range U+D800 to U+DBFF, set utf-16\n      // lead surrogate to code unit and return continue.\n      if (inRange(code_unit, 0xD800, 0xDBFF)) {\n        utf16_lead_surrogate = code_unit;\n        return null;\n      }\n\n      // 7. If code unit is in the range U+DC00 to U+DFFF, return\n      // error.\n      if (inRange(code_unit, 0xDC00, 0xDFFF))\n        return decoderError(fatal);\n\n      // 8. Return code point code unit.\n      return code_unit;\n    };\n  }\n\n  /**\n   * @constructor\n   * @implements {Encoder}\n   * @param {boolean} utf16_be True if big-endian, false if little-endian.\n   * @param {{fatal: boolean}} options\n   */\n  function UTF16Encoder(utf16_be, options) {\n    var fatal = options.fatal;\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    this.handler = function(stream, code_point) {\n      // 1. If code point is end-of-stream, return finished.\n      if (code_point === end_of_stream)\n        return finished;\n\n      // 2. If code point is in the range U+0000 to U+FFFF, return the\n      // sequence resulting of converting code point to bytes using\n      // utf-16be encoder flag.\n      if (inRange(code_point, 0x0000, 0xFFFF))\n        return convertCodeUnitToBytes(code_point, utf16_be);\n\n      // 3. Let lead be ((code point − 0x10000) >> 10) + 0xD800,\n      // converted to bytes using utf-16be encoder flag.\n      var lead = convertCodeUnitToBytes(\n        ((code_point - 0x10000) >> 10) + 0xD800, utf16_be);\n\n      // 4. Let trail be ((code point − 0x10000) & 0x3FF) + 0xDC00,\n      // converted to bytes using utf-16be encoder flag.\n      var trail = convertCodeUnitToBytes(\n        ((code_point - 0x10000) & 0x3FF) + 0xDC00, utf16_be);\n\n      // 5. Return a byte sequence of lead followed by trail.\n      return lead.concat(trail);\n    };\n  }\n\n  // 14.3 utf-16be\n  /** @param {{fatal: boolean}} options */\n  encoders['utf-16be'] = function(options) {\n    return new UTF16Encoder(true, options);\n  };\n  /** @param {{fatal: boolean}} options */\n  decoders['utf-16be'] = function(options) {\n    return new UTF16Decoder(true, options);\n  };\n\n  // 14.4 utf-16le\n  /** @param {{fatal: boolean}} options */\n  encoders['utf-16le'] = function(options) {\n    return new UTF16Encoder(false, options);\n  };\n  /** @param {{fatal: boolean}} options */\n  decoders['utf-16le'] = function(options) {\n    return new UTF16Decoder(false, options);\n  };\n\n  // 14.5 x-user-defined\n\n  /**\n   * @constructor\n   * @implements {Decoder}\n   * @param {{fatal: boolean}} options\n   */\n  function XUserDefinedDecoder(options) {\n    var fatal = options.fatal;\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    this.handler = function(stream, bite) {\n      // 1. If byte is end-of-stream, return finished.\n      if (bite === end_of_stream)\n        return finished;\n\n      // 2. If byte is in the range 0x00 to 0x7F, return a code point\n      // whose value is byte.\n      if (inRange(bite, 0x00, 0x7F))\n        return bite;\n\n      // 3. Return a code point whose value is 0xF780 + byte − 0x80.\n      return 0xF780 + bite - 0x80;\n    };\n  }\n\n  /**\n   * @constructor\n   * @implements {Encoder}\n   * @param {{fatal: boolean}} options\n   */\n  function XUserDefinedEncoder(options) {\n    var fatal = options.fatal;\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    this.handler = function(stream, code_point) {\n      // 1.If code point is end-of-stream, return finished.\n      if (code_point === end_of_stream)\n        return finished;\n\n      // 2. If code point is in the range U+0000 to U+007F, return a\n      // byte whose value is code point.\n      if (inRange(code_point, 0x0000, 0x007F))\n        return code_point;\n\n      // 3. If code point is in the range U+F780 to U+F7FF, return a\n      // byte whose value is code point − 0xF780 + 0x80.\n      if (inRange(code_point, 0xF780, 0xF7FF))\n        return code_point - 0xF780 + 0x80;\n\n      // 4. Return error with code point.\n      return encoderError(code_point);\n    };\n  }\n\n  /** @param {{fatal: boolean}} options */\n  encoders['x-user-defined'] = function(options) {\n    return new XUserDefinedEncoder(options);\n  };\n  /** @param {{fatal: boolean}} options */\n  decoders['x-user-defined'] = function(options) {\n    return new XUserDefinedDecoder(options);\n  };\n\n  if (!global['TextEncoder'])\n    global['TextEncoder'] = TextEncoder;\n  if (!global['TextDecoder'])\n    global['TextDecoder'] = TextDecoder;\n}(this));\n"
  },
  {
    "path": "ChessCardHall/assets/Libs/encoding.js.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"497f77cc-8d49-4ada-a956-d726bb2cc722\",\n  \"isPlugin\": true,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Libs/gameproto/gamecode.d.ts",
    "content": "\n/** Namespace gameproto. */\nexport namespace gameproto {\n\n    /** C2GS_CMD enum. */\n    enum C2GS_CMD {\n        C2GS_NONE = 0,\n        C2S_LOGIN = 1,\n        C2S_Test = 10,\n        C2S_HEART_INFO = 254,\n        C2S_ACK = 255\n    }\n\n    /** GS2C_CMD enum. */\n    enum GS2C_CMD {\n        GS2C_NONE = 0,\n        S2C_CONFIRM = 1,\n        S2C_LOGIN_END = 2,\n        S2C_LOGIN_CHAR_INFO = 3,\n        S2C_Test = 10\n    }\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Libs/gameproto/gamecode.d.ts.meta",
    "content": "{\n  \"ver\": \"2.0.0\",\n  \"uuid\": \"20332548-1b94-46cd-bd38-3d758cf30824\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Libs/gameproto/gamemsg.d.ts",
    "content": "\n/** Namespace gameproto. */\nexport namespace gameproto {\n\n    /** ChatMsgType enum. */\n    enum ChatMsgType {\n        C2S_PrivateChat = 0,\n        S2C_PrivateChat = 1,\n        S2C_PrivateOtherChat = 2,\n        C2S_WorldChat = 3,\n        S2C_WorldChat = 4\n    }\n\n    /** Properties of a C2S_PrivateChatMsg. */\n    interface IC2S_PrivateChatMsg {\n\n        /** C2S_PrivateChatMsg targetName */\n        targetName?: (string|null);\n\n        /** C2S_PrivateChatMsg msg */\n        msg?: (string|null);\n    }\n\n    /** Represents a C2S_PrivateChatMsg. */\n    class C2S_PrivateChatMsg implements IC2S_PrivateChatMsg {\n\n        /**\n         * Constructs a new C2S_PrivateChatMsg.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IC2S_PrivateChatMsg);\n\n        /** C2S_PrivateChatMsg targetName. */\n        public targetName: string;\n\n        /** C2S_PrivateChatMsg msg. */\n        public msg: string;\n\n        /**\n         * Creates a new C2S_PrivateChatMsg instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns C2S_PrivateChatMsg instance\n         */\n        public static create(properties?: gameproto.IC2S_PrivateChatMsg): gameproto.C2S_PrivateChatMsg;\n\n        /**\n         * Encodes the specified C2S_PrivateChatMsg message. Does not implicitly {@link gameproto.C2S_PrivateChatMsg.verify|verify} messages.\n         * @param message C2S_PrivateChatMsg message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IC2S_PrivateChatMsg, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified C2S_PrivateChatMsg message, length delimited. Does not implicitly {@link gameproto.C2S_PrivateChatMsg.verify|verify} messages.\n         * @param message C2S_PrivateChatMsg message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IC2S_PrivateChatMsg, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a C2S_PrivateChatMsg message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns C2S_PrivateChatMsg\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.C2S_PrivateChatMsg;\n\n        /**\n         * Decodes a C2S_PrivateChatMsg message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns C2S_PrivateChatMsg\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.C2S_PrivateChatMsg;\n\n        /**\n         * Verifies a C2S_PrivateChatMsg message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a C2S_PrivateChatMsg message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns C2S_PrivateChatMsg\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.C2S_PrivateChatMsg;\n\n        /**\n         * Creates a plain object from a C2S_PrivateChatMsg message. Also converts values to other types if specified.\n         * @param message C2S_PrivateChatMsg\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.C2S_PrivateChatMsg, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this C2S_PrivateChatMsg to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a S2C_PrivateChatMsg. */\n    interface IS2C_PrivateChatMsg {\n\n        /** S2C_PrivateChatMsg targetName */\n        targetName?: (string|null);\n\n        /** S2C_PrivateChatMsg msg */\n        msg?: (string|null);\n\n        /** S2C_PrivateChatMsg result */\n        result?: (number|null);\n    }\n\n    /** Represents a S2C_PrivateChatMsg. */\n    class S2C_PrivateChatMsg implements IS2C_PrivateChatMsg {\n\n        /**\n         * Constructs a new S2C_PrivateChatMsg.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IS2C_PrivateChatMsg);\n\n        /** S2C_PrivateChatMsg targetName. */\n        public targetName: string;\n\n        /** S2C_PrivateChatMsg msg. */\n        public msg: string;\n\n        /** S2C_PrivateChatMsg result. */\n        public result: number;\n\n        /**\n         * Creates a new S2C_PrivateChatMsg instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns S2C_PrivateChatMsg instance\n         */\n        public static create(properties?: gameproto.IS2C_PrivateChatMsg): gameproto.S2C_PrivateChatMsg;\n\n        /**\n         * Encodes the specified S2C_PrivateChatMsg message. Does not implicitly {@link gameproto.S2C_PrivateChatMsg.verify|verify} messages.\n         * @param message S2C_PrivateChatMsg message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IS2C_PrivateChatMsg, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified S2C_PrivateChatMsg message, length delimited. Does not implicitly {@link gameproto.S2C_PrivateChatMsg.verify|verify} messages.\n         * @param message S2C_PrivateChatMsg message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IS2C_PrivateChatMsg, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a S2C_PrivateChatMsg message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns S2C_PrivateChatMsg\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.S2C_PrivateChatMsg;\n\n        /**\n         * Decodes a S2C_PrivateChatMsg message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns S2C_PrivateChatMsg\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.S2C_PrivateChatMsg;\n\n        /**\n         * Verifies a S2C_PrivateChatMsg message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a S2C_PrivateChatMsg message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns S2C_PrivateChatMsg\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.S2C_PrivateChatMsg;\n\n        /**\n         * Creates a plain object from a S2C_PrivateChatMsg message. Also converts values to other types if specified.\n         * @param message S2C_PrivateChatMsg\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.S2C_PrivateChatMsg, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this S2C_PrivateChatMsg to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a S2C_PrivateOtherChatMsg. */\n    interface IS2C_PrivateOtherChatMsg {\n\n        /** S2C_PrivateOtherChatMsg sendName */\n        sendName?: (string|null);\n\n        /** S2C_PrivateOtherChatMsg msg */\n        msg?: (string|null);\n    }\n\n    /** Represents a S2C_PrivateOtherChatMsg. */\n    class S2C_PrivateOtherChatMsg implements IS2C_PrivateOtherChatMsg {\n\n        /**\n         * Constructs a new S2C_PrivateOtherChatMsg.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IS2C_PrivateOtherChatMsg);\n\n        /** S2C_PrivateOtherChatMsg sendName. */\n        public sendName: string;\n\n        /** S2C_PrivateOtherChatMsg msg. */\n        public msg: string;\n\n        /**\n         * Creates a new S2C_PrivateOtherChatMsg instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns S2C_PrivateOtherChatMsg instance\n         */\n        public static create(properties?: gameproto.IS2C_PrivateOtherChatMsg): gameproto.S2C_PrivateOtherChatMsg;\n\n        /**\n         * Encodes the specified S2C_PrivateOtherChatMsg message. Does not implicitly {@link gameproto.S2C_PrivateOtherChatMsg.verify|verify} messages.\n         * @param message S2C_PrivateOtherChatMsg message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IS2C_PrivateOtherChatMsg, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified S2C_PrivateOtherChatMsg message, length delimited. Does not implicitly {@link gameproto.S2C_PrivateOtherChatMsg.verify|verify} messages.\n         * @param message S2C_PrivateOtherChatMsg message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IS2C_PrivateOtherChatMsg, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a S2C_PrivateOtherChatMsg message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns S2C_PrivateOtherChatMsg\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.S2C_PrivateOtherChatMsg;\n\n        /**\n         * Decodes a S2C_PrivateOtherChatMsg message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns S2C_PrivateOtherChatMsg\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.S2C_PrivateOtherChatMsg;\n\n        /**\n         * Verifies a S2C_PrivateOtherChatMsg message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a S2C_PrivateOtherChatMsg message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns S2C_PrivateOtherChatMsg\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.S2C_PrivateOtherChatMsg;\n\n        /**\n         * Creates a plain object from a S2C_PrivateOtherChatMsg message. Also converts values to other types if specified.\n         * @param message S2C_PrivateOtherChatMsg\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.S2C_PrivateOtherChatMsg, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this S2C_PrivateOtherChatMsg to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a C2S_WorldChatMsg. */\n    interface IC2S_WorldChatMsg {\n\n        /** C2S_WorldChatMsg data */\n        data?: (string|null);\n    }\n\n    /** Represents a C2S_WorldChatMsg. */\n    class C2S_WorldChatMsg implements IC2S_WorldChatMsg {\n\n        /**\n         * Constructs a new C2S_WorldChatMsg.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IC2S_WorldChatMsg);\n\n        /** C2S_WorldChatMsg data. */\n        public data: string;\n\n        /**\n         * Creates a new C2S_WorldChatMsg instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns C2S_WorldChatMsg instance\n         */\n        public static create(properties?: gameproto.IC2S_WorldChatMsg): gameproto.C2S_WorldChatMsg;\n\n        /**\n         * Encodes the specified C2S_WorldChatMsg message. Does not implicitly {@link gameproto.C2S_WorldChatMsg.verify|verify} messages.\n         * @param message C2S_WorldChatMsg message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IC2S_WorldChatMsg, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified C2S_WorldChatMsg message, length delimited. Does not implicitly {@link gameproto.C2S_WorldChatMsg.verify|verify} messages.\n         * @param message C2S_WorldChatMsg message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IC2S_WorldChatMsg, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a C2S_WorldChatMsg message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns C2S_WorldChatMsg\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.C2S_WorldChatMsg;\n\n        /**\n         * Decodes a C2S_WorldChatMsg message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns C2S_WorldChatMsg\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.C2S_WorldChatMsg;\n\n        /**\n         * Verifies a C2S_WorldChatMsg message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a C2S_WorldChatMsg message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns C2S_WorldChatMsg\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.C2S_WorldChatMsg;\n\n        /**\n         * Creates a plain object from a C2S_WorldChatMsg message. Also converts values to other types if specified.\n         * @param message C2S_WorldChatMsg\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.C2S_WorldChatMsg, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this C2S_WorldChatMsg to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a S2C_WorldChatMsg. */\n    interface IS2C_WorldChatMsg {\n\n        /** S2C_WorldChatMsg name */\n        name?: (string|null);\n\n        /** S2C_WorldChatMsg data */\n        data?: (string|null);\n    }\n\n    /** Represents a S2C_WorldChatMsg. */\n    class S2C_WorldChatMsg implements IS2C_WorldChatMsg {\n\n        /**\n         * Constructs a new S2C_WorldChatMsg.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IS2C_WorldChatMsg);\n\n        /** S2C_WorldChatMsg name. */\n        public name: string;\n\n        /** S2C_WorldChatMsg data. */\n        public data: string;\n\n        /**\n         * Creates a new S2C_WorldChatMsg instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns S2C_WorldChatMsg instance\n         */\n        public static create(properties?: gameproto.IS2C_WorldChatMsg): gameproto.S2C_WorldChatMsg;\n\n        /**\n         * Encodes the specified S2C_WorldChatMsg message. Does not implicitly {@link gameproto.S2C_WorldChatMsg.verify|verify} messages.\n         * @param message S2C_WorldChatMsg message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IS2C_WorldChatMsg, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified S2C_WorldChatMsg message, length delimited. Does not implicitly {@link gameproto.S2C_WorldChatMsg.verify|verify} messages.\n         * @param message S2C_WorldChatMsg message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IS2C_WorldChatMsg, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a S2C_WorldChatMsg message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns S2C_WorldChatMsg\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.S2C_WorldChatMsg;\n\n        /**\n         * Decodes a S2C_WorldChatMsg message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns S2C_WorldChatMsg\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.S2C_WorldChatMsg;\n\n        /**\n         * Verifies a S2C_WorldChatMsg message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a S2C_WorldChatMsg message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns S2C_WorldChatMsg\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.S2C_WorldChatMsg;\n\n        /**\n         * Creates a plain object from a S2C_WorldChatMsg message. Also converts values to other types if specified.\n         * @param message S2C_WorldChatMsg\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.S2C_WorldChatMsg, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this S2C_WorldChatMsg to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a S_ReviseUserInfo. */\n    interface IS_ReviseUserInfo {\n\n        /** S_ReviseUserInfo nickname */\n        nickname?: (string|null);\n\n        /** S_ReviseUserInfo headId */\n        headId?: (number|null);\n    }\n\n    /** Represents a S_ReviseUserInfo. */\n    class S_ReviseUserInfo implements IS_ReviseUserInfo {\n\n        /**\n         * Constructs a new S_ReviseUserInfo.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IS_ReviseUserInfo);\n\n        /** S_ReviseUserInfo nickname. */\n        public nickname: string;\n\n        /** S_ReviseUserInfo headId. */\n        public headId: number;\n\n        /**\n         * Creates a new S_ReviseUserInfo instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns S_ReviseUserInfo instance\n         */\n        public static create(properties?: gameproto.IS_ReviseUserInfo): gameproto.S_ReviseUserInfo;\n\n        /**\n         * Encodes the specified S_ReviseUserInfo message. Does not implicitly {@link gameproto.S_ReviseUserInfo.verify|verify} messages.\n         * @param message S_ReviseUserInfo message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IS_ReviseUserInfo, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified S_ReviseUserInfo message, length delimited. Does not implicitly {@link gameproto.S_ReviseUserInfo.verify|verify} messages.\n         * @param message S_ReviseUserInfo message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IS_ReviseUserInfo, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a S_ReviseUserInfo message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns S_ReviseUserInfo\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.S_ReviseUserInfo;\n\n        /**\n         * Decodes a S_ReviseUserInfo message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns S_ReviseUserInfo\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.S_ReviseUserInfo;\n\n        /**\n         * Verifies a S_ReviseUserInfo message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a S_ReviseUserInfo message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns S_ReviseUserInfo\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.S_ReviseUserInfo;\n\n        /**\n         * Creates a plain object from a S_ReviseUserInfo message. Also converts values to other types if specified.\n         * @param message S_ReviseUserInfo\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.S_ReviseUserInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this S_ReviseUserInfo to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a C_Response. */\n    interface IC_Response {\n\n        /** C_Response errCode */\n        errCode?: (number|null);\n\n        /** C_Response msg */\n        msg?: (string|null);\n    }\n\n    /** Represents a C_Response. */\n    class C_Response implements IC_Response {\n\n        /**\n         * Constructs a new C_Response.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IC_Response);\n\n        /** C_Response errCode. */\n        public errCode: number;\n\n        /** C_Response msg. */\n        public msg: string;\n\n        /**\n         * Creates a new C_Response instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns C_Response instance\n         */\n        public static create(properties?: gameproto.IC_Response): gameproto.C_Response;\n\n        /**\n         * Encodes the specified C_Response message. Does not implicitly {@link gameproto.C_Response.verify|verify} messages.\n         * @param message C_Response message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IC_Response, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified C_Response message, length delimited. Does not implicitly {@link gameproto.C_Response.verify|verify} messages.\n         * @param message C_Response message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IC_Response, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a C_Response message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns C_Response\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.C_Response;\n\n        /**\n         * Decodes a C_Response message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns C_Response\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.C_Response;\n\n        /**\n         * Verifies a C_Response message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a C_Response message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns C_Response\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.C_Response;\n\n        /**\n         * Creates a plain object from a C_Response message. Also converts values to other types if specified.\n         * @param message C_Response\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.C_Response, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this C_Response to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a C_UpateAttr. */\n    interface IC_UpateAttr {\n\n        /** C_UpateAttr key */\n        key?: (string|null);\n\n        /** C_UpateAttr val */\n        val?: (number|Long|null);\n    }\n\n    /** Represents a C_UpateAttr. */\n    class C_UpateAttr implements IC_UpateAttr {\n\n        /**\n         * Constructs a new C_UpateAttr.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IC_UpateAttr);\n\n        /** C_UpateAttr key. */\n        public key: string;\n\n        /** C_UpateAttr val. */\n        public val: (number|Long);\n\n        /**\n         * Creates a new C_UpateAttr instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns C_UpateAttr instance\n         */\n        public static create(properties?: gameproto.IC_UpateAttr): gameproto.C_UpateAttr;\n\n        /**\n         * Encodes the specified C_UpateAttr message. Does not implicitly {@link gameproto.C_UpateAttr.verify|verify} messages.\n         * @param message C_UpateAttr message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IC_UpateAttr, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified C_UpateAttr message, length delimited. Does not implicitly {@link gameproto.C_UpateAttr.verify|verify} messages.\n         * @param message C_UpateAttr message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IC_UpateAttr, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a C_UpateAttr message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns C_UpateAttr\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.C_UpateAttr;\n\n        /**\n         * Decodes a C_UpateAttr message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns C_UpateAttr\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.C_UpateAttr;\n\n        /**\n         * Verifies a C_UpateAttr message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a C_UpateAttr message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns C_UpateAttr\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.C_UpateAttr;\n\n        /**\n         * Creates a plain object from a C_UpateAttr message. Also converts values to other types if specified.\n         * @param message C_UpateAttr\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.C_UpateAttr, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this C_UpateAttr to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a S_RequestBattle. */\n    interface IS_RequestBattle {\n\n        /** S_RequestBattle stageId */\n        stageId?: (number|null);\n\n        /** S_RequestBattle battleType */\n        battleType?: (number|null);\n    }\n\n    /** Represents a S_RequestBattle. */\n    class S_RequestBattle implements IS_RequestBattle {\n\n        /**\n         * Constructs a new S_RequestBattle.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IS_RequestBattle);\n\n        /** S_RequestBattle stageId. */\n        public stageId: number;\n\n        /** S_RequestBattle battleType. */\n        public battleType: number;\n\n        /**\n         * Creates a new S_RequestBattle instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns S_RequestBattle instance\n         */\n        public static create(properties?: gameproto.IS_RequestBattle): gameproto.S_RequestBattle;\n\n        /**\n         * Encodes the specified S_RequestBattle message. Does not implicitly {@link gameproto.S_RequestBattle.verify|verify} messages.\n         * @param message S_RequestBattle message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IS_RequestBattle, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified S_RequestBattle message, length delimited. Does not implicitly {@link gameproto.S_RequestBattle.verify|verify} messages.\n         * @param message S_RequestBattle message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IS_RequestBattle, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a S_RequestBattle message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns S_RequestBattle\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.S_RequestBattle;\n\n        /**\n         * Decodes a S_RequestBattle message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns S_RequestBattle\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.S_RequestBattle;\n\n        /**\n         * Verifies a S_RequestBattle message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a S_RequestBattle message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns S_RequestBattle\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.S_RequestBattle;\n\n        /**\n         * Creates a plain object from a S_RequestBattle message. Also converts values to other types if specified.\n         * @param message S_RequestBattle\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.S_RequestBattle, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this S_RequestBattle to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a C_RequestBattle. */\n    interface IC_RequestBattle {\n\n        /** C_RequestBattle stageId */\n        stageId?: (number|null);\n\n        /** C_RequestBattle battleType */\n        battleType?: (number|null);\n\n        /** C_RequestBattle errCode */\n        errCode?: (number|null);\n    }\n\n    /** Represents a C_RequestBattle. */\n    class C_RequestBattle implements IC_RequestBattle {\n\n        /**\n         * Constructs a new C_RequestBattle.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IC_RequestBattle);\n\n        /** C_RequestBattle stageId. */\n        public stageId: number;\n\n        /** C_RequestBattle battleType. */\n        public battleType: number;\n\n        /** C_RequestBattle errCode. */\n        public errCode: number;\n\n        /**\n         * Creates a new C_RequestBattle instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns C_RequestBattle instance\n         */\n        public static create(properties?: gameproto.IC_RequestBattle): gameproto.C_RequestBattle;\n\n        /**\n         * Encodes the specified C_RequestBattle message. Does not implicitly {@link gameproto.C_RequestBattle.verify|verify} messages.\n         * @param message C_RequestBattle message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IC_RequestBattle, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified C_RequestBattle message, length delimited. Does not implicitly {@link gameproto.C_RequestBattle.verify|verify} messages.\n         * @param message C_RequestBattle message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IC_RequestBattle, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a C_RequestBattle message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns C_RequestBattle\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.C_RequestBattle;\n\n        /**\n         * Decodes a C_RequestBattle message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns C_RequestBattle\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.C_RequestBattle;\n\n        /**\n         * Verifies a C_RequestBattle message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a C_RequestBattle message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns C_RequestBattle\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.C_RequestBattle;\n\n        /**\n         * Creates a plain object from a C_RequestBattle message. Also converts values to other types if specified.\n         * @param message C_RequestBattle\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.C_RequestBattle, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this C_RequestBattle to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a C_StartBattle. */\n    interface IC_StartBattle {\n\n        /** C_StartBattle stageId */\n        stageId?: (number|null);\n\n        /** C_StartBattle battleType */\n        battleType?: (number|null);\n\n        /** C_StartBattle roomId */\n        roomId?: (string|null);\n    }\n\n    /** Represents a C_StartBattle. */\n    class C_StartBattle implements IC_StartBattle {\n\n        /**\n         * Constructs a new C_StartBattle.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IC_StartBattle);\n\n        /** C_StartBattle stageId. */\n        public stageId: number;\n\n        /** C_StartBattle battleType. */\n        public battleType: number;\n\n        /** C_StartBattle roomId. */\n        public roomId: string;\n\n        /**\n         * Creates a new C_StartBattle instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns C_StartBattle instance\n         */\n        public static create(properties?: gameproto.IC_StartBattle): gameproto.C_StartBattle;\n\n        /**\n         * Encodes the specified C_StartBattle message. Does not implicitly {@link gameproto.C_StartBattle.verify|verify} messages.\n         * @param message C_StartBattle message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IC_StartBattle, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified C_StartBattle message, length delimited. Does not implicitly {@link gameproto.C_StartBattle.verify|verify} messages.\n         * @param message C_StartBattle message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IC_StartBattle, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a C_StartBattle message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns C_StartBattle\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.C_StartBattle;\n\n        /**\n         * Decodes a C_StartBattle message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns C_StartBattle\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.C_StartBattle;\n\n        /**\n         * Verifies a C_StartBattle message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a C_StartBattle message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns C_StartBattle\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.C_StartBattle;\n\n        /**\n         * Creates a plain object from a C_StartBattle message. Also converts values to other types if specified.\n         * @param message C_StartBattle\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.C_StartBattle, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this C_StartBattle to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a C_Balance. */\n    interface IC_Balance {\n\n        /** C_Balance stageId */\n        stageId?: (number|null);\n\n        /** C_Balance battleType */\n        battleType?: (number|null);\n\n        /** C_Balance awards */\n        awards?: (gameproto.IAward[]|null);\n    }\n\n    /** Represents a C_Balance. */\n    class C_Balance implements IC_Balance {\n\n        /**\n         * Constructs a new C_Balance.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IC_Balance);\n\n        /** C_Balance stageId. */\n        public stageId: number;\n\n        /** C_Balance battleType. */\n        public battleType: number;\n\n        /** C_Balance awards. */\n        public awards: gameproto.IAward[];\n\n        /**\n         * Creates a new C_Balance instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns C_Balance instance\n         */\n        public static create(properties?: gameproto.IC_Balance): gameproto.C_Balance;\n\n        /**\n         * Encodes the specified C_Balance message. Does not implicitly {@link gameproto.C_Balance.verify|verify} messages.\n         * @param message C_Balance message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IC_Balance, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified C_Balance message, length delimited. Does not implicitly {@link gameproto.C_Balance.verify|verify} messages.\n         * @param message C_Balance message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IC_Balance, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a C_Balance message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns C_Balance\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.C_Balance;\n\n        /**\n         * Decodes a C_Balance message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns C_Balance\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.C_Balance;\n\n        /**\n         * Verifies a C_Balance message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a C_Balance message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns C_Balance\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.C_Balance;\n\n        /**\n         * Creates a plain object from a C_Balance message. Also converts values to other types if specified.\n         * @param message C_Balance\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.C_Balance, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this C_Balance to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of an Award. */\n    interface IAward {\n\n        /** Award aType */\n        aType?: (number|null);\n\n        /** Award aVal */\n        aVal?: (number|null);\n    }\n\n    /** Represents an Award. */\n    class Award implements IAward {\n\n        /**\n         * Constructs a new Award.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IAward);\n\n        /** Award aType. */\n        public aType: number;\n\n        /** Award aVal. */\n        public aVal: number;\n\n        /**\n         * Creates a new Award instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns Award instance\n         */\n        public static create(properties?: gameproto.IAward): gameproto.Award;\n\n        /**\n         * Encodes the specified Award message. Does not implicitly {@link gameproto.Award.verify|verify} messages.\n         * @param message Award message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IAward, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified Award message, length delimited. Does not implicitly {@link gameproto.Award.verify|verify} messages.\n         * @param message Award message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IAward, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes an Award message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns Award\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.Award;\n\n        /**\n         * Decodes an Award message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns Award\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.Award;\n\n        /**\n         * Verifies an Award message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates an Award message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns Award\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.Award;\n\n        /**\n         * Creates a plain object from an Award message. Also converts values to other types if specified.\n         * @param message Award\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.Award, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this Award to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a FVector. */\n    interface IFVector {\n\n        /** FVector x */\n        x?: (number|null);\n\n        /** FVector y */\n        y?: (number|null);\n    }\n\n    /** Represents a FVector. */\n    class FVector implements IFVector {\n\n        /**\n         * Constructs a new FVector.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IFVector);\n\n        /** FVector x. */\n        public x: number;\n\n        /** FVector y. */\n        public y: number;\n\n        /**\n         * Creates a new FVector instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns FVector instance\n         */\n        public static create(properties?: gameproto.IFVector): gameproto.FVector;\n\n        /**\n         * Encodes the specified FVector message. Does not implicitly {@link gameproto.FVector.verify|verify} messages.\n         * @param message FVector message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IFVector, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified FVector message, length delimited. Does not implicitly {@link gameproto.FVector.verify|verify} messages.\n         * @param message FVector message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IFVector, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a FVector message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns FVector\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.FVector;\n\n        /**\n         * Decodes a FVector message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns FVector\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.FVector;\n\n        /**\n         * Verifies a FVector message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a FVector message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns FVector\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.FVector;\n\n        /**\n         * Creates a plain object from a FVector message. Also converts values to other types if specified.\n         * @param message FVector\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.FVector, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this FVector to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a Move. */\n    interface IMove {\n\n        /** Move angle */\n        angle?: (number|null);\n    }\n\n    /** Represents a Move. */\n    class Move implements IMove {\n\n        /**\n         * Constructs a new Move.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IMove);\n\n        /** Move angle. */\n        public angle: number;\n\n        /**\n         * Creates a new Move instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns Move instance\n         */\n        public static create(properties?: gameproto.IMove): gameproto.Move;\n\n        /**\n         * Encodes the specified Move message. Does not implicitly {@link gameproto.Move.verify|verify} messages.\n         * @param message Move message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IMove, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified Move message, length delimited. Does not implicitly {@link gameproto.Move.verify|verify} messages.\n         * @param message Move message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IMove, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a Move message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns Move\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.Move;\n\n        /**\n         * Decodes a Move message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns Move\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.Move;\n\n        /**\n         * Verifies a Move message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a Move message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns Move\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.Move;\n\n        /**\n         * Creates a plain object from a Move message. Also converts values to other types if specified.\n         * @param message Move\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.Move, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this Move to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a Shot. */\n    interface IShot {\n\n        /** Shot id */\n        id?: (number|null);\n\n        /** Shot bulletId */\n        bulletId?: (number|null);\n\n        /** Shot pos */\n        pos?: (gameproto.IFVector|null);\n\n        /** Shot angel */\n        angel?: (number|null);\n    }\n\n    /** Represents a Shot. */\n    class Shot implements IShot {\n\n        /**\n         * Constructs a new Shot.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IShot);\n\n        /** Shot id. */\n        public id: number;\n\n        /** Shot bulletId. */\n        public bulletId: number;\n\n        /** Shot pos. */\n        public pos?: (gameproto.IFVector|null);\n\n        /** Shot angel. */\n        public angel: number;\n\n        /**\n         * Creates a new Shot instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns Shot instance\n         */\n        public static create(properties?: gameproto.IShot): gameproto.Shot;\n\n        /**\n         * Encodes the specified Shot message. Does not implicitly {@link gameproto.Shot.verify|verify} messages.\n         * @param message Shot message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IShot, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified Shot message, length delimited. Does not implicitly {@link gameproto.Shot.verify|verify} messages.\n         * @param message Shot message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IShot, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a Shot message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns Shot\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.Shot;\n\n        /**\n         * Decodes a Shot message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns Shot\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.Shot;\n\n        /**\n         * Verifies a Shot message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a Shot message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns Shot\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.Shot;\n\n        /**\n         * Creates a plain object from a Shot message. Also converts values to other types if specified.\n         * @param message Shot\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.Shot, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this Shot to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a UseItem. */\n    interface IUseItem {\n\n        /** UseItem itemId */\n        itemId?: (number|null);\n    }\n\n    /** Represents a UseItem. */\n    class UseItem implements IUseItem {\n\n        /**\n         * Constructs a new UseItem.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IUseItem);\n\n        /** UseItem itemId. */\n        public itemId: number;\n\n        /**\n         * Creates a new UseItem instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns UseItem instance\n         */\n        public static create(properties?: gameproto.IUseItem): gameproto.UseItem;\n\n        /**\n         * Encodes the specified UseItem message. Does not implicitly {@link gameproto.UseItem.verify|verify} messages.\n         * @param message UseItem message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IUseItem, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified UseItem message, length delimited. Does not implicitly {@link gameproto.UseItem.verify|verify} messages.\n         * @param message UseItem message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IUseItem, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a UseItem message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns UseItem\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.UseItem;\n\n        /**\n         * Decodes a UseItem message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns UseItem\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.UseItem;\n\n        /**\n         * Verifies a UseItem message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a UseItem message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns UseItem\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.UseItem;\n\n        /**\n         * Creates a plain object from a UseItem message. Also converts values to other types if specified.\n         * @param message UseItem\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.UseItem, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this UseItem to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a FighterSnapInfo. */\n    interface IFighterSnapInfo {\n\n        /** FighterSnapInfo id */\n        id?: (number|null);\n\n        /** FighterSnapInfo pos */\n        pos?: (gameproto.IFVector|null);\n\n        /** FighterSnapInfo vel */\n        vel?: (gameproto.IFVector|null);\n    }\n\n    /** Represents a FighterSnapInfo. */\n    class FighterSnapInfo implements IFighterSnapInfo {\n\n        /**\n         * Constructs a new FighterSnapInfo.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IFighterSnapInfo);\n\n        /** FighterSnapInfo id. */\n        public id: number;\n\n        /** FighterSnapInfo pos. */\n        public pos?: (gameproto.IFVector|null);\n\n        /** FighterSnapInfo vel. */\n        public vel?: (gameproto.IFVector|null);\n\n        /**\n         * Creates a new FighterSnapInfo instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns FighterSnapInfo instance\n         */\n        public static create(properties?: gameproto.IFighterSnapInfo): gameproto.FighterSnapInfo;\n\n        /**\n         * Encodes the specified FighterSnapInfo message. Does not implicitly {@link gameproto.FighterSnapInfo.verify|verify} messages.\n         * @param message FighterSnapInfo message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IFighterSnapInfo, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified FighterSnapInfo message, length delimited. Does not implicitly {@link gameproto.FighterSnapInfo.verify|verify} messages.\n         * @param message FighterSnapInfo message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IFighterSnapInfo, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a FighterSnapInfo message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns FighterSnapInfo\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.FighterSnapInfo;\n\n        /**\n         * Decodes a FighterSnapInfo message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns FighterSnapInfo\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.FighterSnapInfo;\n\n        /**\n         * Verifies a FighterSnapInfo message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a FighterSnapInfo message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns FighterSnapInfo\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.FighterSnapInfo;\n\n        /**\n         * Creates a plain object from a FighterSnapInfo message. Also converts values to other types if specified.\n         * @param message FighterSnapInfo\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.FighterSnapInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this FighterSnapInfo to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a Snap. */\n    interface ISnap {\n\n        /** Snap infos */\n        infos?: (gameproto.IFighterSnapInfo[]|null);\n    }\n\n    /** Represents a Snap. */\n    class Snap implements ISnap {\n\n        /**\n         * Constructs a new Snap.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.ISnap);\n\n        /** Snap infos. */\n        public infos: gameproto.IFighterSnapInfo[];\n\n        /**\n         * Creates a new Snap instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns Snap instance\n         */\n        public static create(properties?: gameproto.ISnap): gameproto.Snap;\n\n        /**\n         * Encodes the specified Snap message. Does not implicitly {@link gameproto.Snap.verify|verify} messages.\n         * @param message Snap message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.ISnap, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified Snap message, length delimited. Does not implicitly {@link gameproto.Snap.verify|verify} messages.\n         * @param message Snap message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.ISnap, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a Snap message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns Snap\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.Snap;\n\n        /**\n         * Decodes a Snap message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns Snap\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.Snap;\n\n        /**\n         * Verifies a Snap message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a Snap message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns Snap\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.Snap;\n\n        /**\n         * Creates a plain object from a Snap message. Also converts values to other types if specified.\n         * @param message Snap\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.Snap, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this Snap to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a FighterInfo. */\n    interface IFighterInfo {\n\n        /** FighterInfo id */\n        id?: (number|null);\n\n        /** FighterInfo pos */\n        pos?: (gameproto.IFVector|null);\n\n        /** FighterInfo vel */\n        vel?: (gameproto.IFVector|null);\n\n        /** FighterInfo name */\n        name?: (string|null);\n\n        /** FighterInfo hp */\n        hp?: (number|null);\n    }\n\n    /** Represents a FighterInfo. */\n    class FighterInfo implements IFighterInfo {\n\n        /**\n         * Constructs a new FighterInfo.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IFighterInfo);\n\n        /** FighterInfo id. */\n        public id: number;\n\n        /** FighterInfo pos. */\n        public pos?: (gameproto.IFVector|null);\n\n        /** FighterInfo vel. */\n        public vel?: (gameproto.IFVector|null);\n\n        /** FighterInfo name. */\n        public name: string;\n\n        /** FighterInfo hp. */\n        public hp: number;\n\n        /**\n         * Creates a new FighterInfo instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns FighterInfo instance\n         */\n        public static create(properties?: gameproto.IFighterInfo): gameproto.FighterInfo;\n\n        /**\n         * Encodes the specified FighterInfo message. Does not implicitly {@link gameproto.FighterInfo.verify|verify} messages.\n         * @param message FighterInfo message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IFighterInfo, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified FighterInfo message, length delimited. Does not implicitly {@link gameproto.FighterInfo.verify|verify} messages.\n         * @param message FighterInfo message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IFighterInfo, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a FighterInfo message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns FighterInfo\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.FighterInfo;\n\n        /**\n         * Decodes a FighterInfo message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns FighterInfo\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.FighterInfo;\n\n        /**\n         * Verifies a FighterInfo message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a FighterInfo message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns FighterInfo\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.FighterInfo;\n\n        /**\n         * Creates a plain object from a FighterInfo message. Also converts values to other types if specified.\n         * @param message FighterInfo\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.FighterInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this FighterInfo to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a BattleStart. */\n    interface IBattleStart {\n\n        /** BattleStart self */\n        self?: (gameproto.IFighterInfo|null);\n\n        /** BattleStart fighters */\n        fighters?: (gameproto.IFighterInfo[]|null);\n    }\n\n    /** Represents a BattleStart. */\n    class BattleStart implements IBattleStart {\n\n        /**\n         * Constructs a new BattleStart.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IBattleStart);\n\n        /** BattleStart self. */\n        public self?: (gameproto.IFighterInfo|null);\n\n        /** BattleStart fighters. */\n        public fighters: gameproto.IFighterInfo[];\n\n        /**\n         * Creates a new BattleStart instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns BattleStart instance\n         */\n        public static create(properties?: gameproto.IBattleStart): gameproto.BattleStart;\n\n        /**\n         * Encodes the specified BattleStart message. Does not implicitly {@link gameproto.BattleStart.verify|verify} messages.\n         * @param message BattleStart message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IBattleStart, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified BattleStart message, length delimited. Does not implicitly {@link gameproto.BattleStart.verify|verify} messages.\n         * @param message BattleStart message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IBattleStart, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a BattleStart message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns BattleStart\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.BattleStart;\n\n        /**\n         * Decodes a BattleStart message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns BattleStart\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.BattleStart;\n\n        /**\n         * Verifies a BattleStart message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a BattleStart message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns BattleStart\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.BattleStart;\n\n        /**\n         * Creates a plain object from a BattleStart message. Also converts values to other types if specified.\n         * @param message BattleStart\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.BattleStart, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this BattleStart to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a NewStage. */\n    interface INewStage {\n\n        /** NewStage stage */\n        stage?: (number|null);\n\n        /** NewStage fighters */\n        fighters?: (gameproto.IFighterInfo[]|null);\n    }\n\n    /** Represents a NewStage. */\n    class NewStage implements INewStage {\n\n        /**\n         * Constructs a new NewStage.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.INewStage);\n\n        /** NewStage stage. */\n        public stage: number;\n\n        /** NewStage fighters. */\n        public fighters: gameproto.IFighterInfo[];\n\n        /**\n         * Creates a new NewStage instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns NewStage instance\n         */\n        public static create(properties?: gameproto.INewStage): gameproto.NewStage;\n\n        /**\n         * Encodes the specified NewStage message. Does not implicitly {@link gameproto.NewStage.verify|verify} messages.\n         * @param message NewStage message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.INewStage, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified NewStage message, length delimited. Does not implicitly {@link gameproto.NewStage.verify|verify} messages.\n         * @param message NewStage message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.INewStage, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a NewStage message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns NewStage\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.NewStage;\n\n        /**\n         * Decodes a NewStage message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns NewStage\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.NewStage;\n\n        /**\n         * Verifies a NewStage message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a NewStage message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns NewStage\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.NewStage;\n\n        /**\n         * Creates a plain object from a NewStage message. Also converts values to other types if specified.\n         * @param message NewStage\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.NewStage, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this NewStage to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a GameOver. */\n    interface IGameOver {\n\n        /** GameOver winner */\n        winner?: (number|null);\n\n        /** GameOver time */\n        time?: (number|null);\n\n        /** GameOver stage */\n        stage?: (number|null);\n\n        /** GameOver kill */\n        kill?: (number|null);\n    }\n\n    /** Represents a GameOver. */\n    class GameOver implements IGameOver {\n\n        /**\n         * Constructs a new GameOver.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IGameOver);\n\n        /** GameOver winner. */\n        public winner: number;\n\n        /** GameOver time. */\n        public time: number;\n\n        /** GameOver stage. */\n        public stage: number;\n\n        /** GameOver kill. */\n        public kill: number;\n\n        /**\n         * Creates a new GameOver instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns GameOver instance\n         */\n        public static create(properties?: gameproto.IGameOver): gameproto.GameOver;\n\n        /**\n         * Encodes the specified GameOver message. Does not implicitly {@link gameproto.GameOver.verify|verify} messages.\n         * @param message GameOver message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IGameOver, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified GameOver message, length delimited. Does not implicitly {@link gameproto.GameOver.verify|verify} messages.\n         * @param message GameOver message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IGameOver, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a GameOver message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns GameOver\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.GameOver;\n\n        /**\n         * Decodes a GameOver message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns GameOver\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.GameOver;\n\n        /**\n         * Verifies a GameOver message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a GameOver message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns GameOver\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.GameOver;\n\n        /**\n         * Creates a plain object from a GameOver message. Also converts values to other types if specified.\n         * @param message GameOver\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.GameOver, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this GameOver to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a Hit. */\n    interface IHit {\n\n        /** Hit bulletId */\n        bulletId?: (number|null);\n\n        /** Hit targetId */\n        targetId?: (number|null);\n\n        /** Hit loseHP */\n        loseHP?: (number|null);\n    }\n\n    /** Represents a Hit. */\n    class Hit implements IHit {\n\n        /**\n         * Constructs a new Hit.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IHit);\n\n        /** Hit bulletId. */\n        public bulletId: number;\n\n        /** Hit targetId. */\n        public targetId: number;\n\n        /** Hit loseHP. */\n        public loseHP: number;\n\n        /**\n         * Creates a new Hit instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns Hit instance\n         */\n        public static create(properties?: gameproto.IHit): gameproto.Hit;\n\n        /**\n         * Encodes the specified Hit message. Does not implicitly {@link gameproto.Hit.verify|verify} messages.\n         * @param message Hit message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IHit, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified Hit message, length delimited. Does not implicitly {@link gameproto.Hit.verify|verify} messages.\n         * @param message Hit message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IHit, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a Hit message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns Hit\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.Hit;\n\n        /**\n         * Decodes a Hit message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns Hit\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.Hit;\n\n        /**\n         * Verifies a Hit message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a Hit message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns Hit\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.Hit;\n\n        /**\n         * Creates a plain object from a Hit message. Also converts values to other types if specified.\n         * @param message Hit\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.Hit, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this Hit to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of an AddHP. */\n    interface IAddHP {\n\n        /** AddHP add */\n        add?: (number|null);\n\n        /** AddHP id */\n        id?: (number|null);\n    }\n\n    /** Represents an AddHP. */\n    class AddHP implements IAddHP {\n\n        /**\n         * Constructs a new AddHP.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IAddHP);\n\n        /** AddHP add. */\n        public add: number;\n\n        /** AddHP id. */\n        public id: number;\n\n        /**\n         * Creates a new AddHP instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns AddHP instance\n         */\n        public static create(properties?: gameproto.IAddHP): gameproto.AddHP;\n\n        /**\n         * Encodes the specified AddHP message. Does not implicitly {@link gameproto.AddHP.verify|verify} messages.\n         * @param message AddHP message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IAddHP, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified AddHP message, length delimited. Does not implicitly {@link gameproto.AddHP.verify|verify} messages.\n         * @param message AddHP message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IAddHP, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes an AddHP message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns AddHP\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.AddHP;\n\n        /**\n         * Decodes an AddHP message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns AddHP\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.AddHP;\n\n        /**\n         * Verifies an AddHP message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates an AddHP message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns AddHP\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.AddHP;\n\n        /**\n         * Creates a plain object from an AddHP message. Also converts values to other types if specified.\n         * @param message AddHP\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.AddHP, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this AddHP to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a Dead. */\n    interface IDead {\n\n        /** Dead id */\n        id?: (number|null);\n\n        /** Dead enemyId */\n        enemyId?: (number|null);\n    }\n\n    /** Represents a Dead. */\n    class Dead implements IDead {\n\n        /**\n         * Constructs a new Dead.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IDead);\n\n        /** Dead id. */\n        public id: number;\n\n        /** Dead enemyId. */\n        public enemyId: number;\n\n        /**\n         * Creates a new Dead instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns Dead instance\n         */\n        public static create(properties?: gameproto.IDead): gameproto.Dead;\n\n        /**\n         * Encodes the specified Dead message. Does not implicitly {@link gameproto.Dead.verify|verify} messages.\n         * @param message Dead message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IDead, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified Dead message, length delimited. Does not implicitly {@link gameproto.Dead.verify|verify} messages.\n         * @param message Dead message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IDead, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a Dead message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns Dead\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.Dead;\n\n        /**\n         * Decodes a Dead message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns Dead\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.Dead;\n\n        /**\n         * Verifies a Dead message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a Dead message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns Dead\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.Dead;\n\n        /**\n         * Creates a plain object from a Dead message. Also converts values to other types if specified.\n         * @param message Dead\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.Dead, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this Dead to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of an AddEntity. */\n    interface IAddEntity {\n\n        /** AddEntity id */\n        id?: (number|null);\n\n        /** AddEntity pos */\n        pos?: (gameproto.IFVector|null);\n\n        /** AddEntity vel */\n        vel?: (gameproto.IFVector|null);\n\n        /** AddEntity etype */\n        etype?: (number|null);\n    }\n\n    /** Represents an AddEntity. */\n    class AddEntity implements IAddEntity {\n\n        /**\n         * Constructs a new AddEntity.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IAddEntity);\n\n        /** AddEntity id. */\n        public id: number;\n\n        /** AddEntity pos. */\n        public pos?: (gameproto.IFVector|null);\n\n        /** AddEntity vel. */\n        public vel?: (gameproto.IFVector|null);\n\n        /** AddEntity etype. */\n        public etype: number;\n\n        /**\n         * Creates a new AddEntity instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns AddEntity instance\n         */\n        public static create(properties?: gameproto.IAddEntity): gameproto.AddEntity;\n\n        /**\n         * Encodes the specified AddEntity message. Does not implicitly {@link gameproto.AddEntity.verify|verify} messages.\n         * @param message AddEntity message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IAddEntity, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified AddEntity message, length delimited. Does not implicitly {@link gameproto.AddEntity.verify|verify} messages.\n         * @param message AddEntity message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IAddEntity, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes an AddEntity message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns AddEntity\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.AddEntity;\n\n        /**\n         * Decodes an AddEntity message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns AddEntity\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.AddEntity;\n\n        /**\n         * Verifies an AddEntity message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates an AddEntity message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns AddEntity\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.AddEntity;\n\n        /**\n         * Creates a plain object from an AddEntity message. Also converts values to other types if specified.\n         * @param message AddEntity\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.AddEntity, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this AddEntity to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a RemoveEntity. */\n    interface IRemoveEntity {\n\n        /** RemoveEntity id */\n        id?: (number|null);\n\n        /** RemoveEntity etype */\n        etype?: (number|null);\n    }\n\n    /** Represents a RemoveEntity. */\n    class RemoveEntity implements IRemoveEntity {\n\n        /**\n         * Constructs a new RemoveEntity.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IRemoveEntity);\n\n        /** RemoveEntity id. */\n        public id: number;\n\n        /** RemoveEntity etype. */\n        public etype: number;\n\n        /**\n         * Creates a new RemoveEntity instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns RemoveEntity instance\n         */\n        public static create(properties?: gameproto.IRemoveEntity): gameproto.RemoveEntity;\n\n        /**\n         * Encodes the specified RemoveEntity message. Does not implicitly {@link gameproto.RemoveEntity.verify|verify} messages.\n         * @param message RemoveEntity message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IRemoveEntity, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified RemoveEntity message, length delimited. Does not implicitly {@link gameproto.RemoveEntity.verify|verify} messages.\n         * @param message RemoveEntity message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IRemoveEntity, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a RemoveEntity message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns RemoveEntity\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.RemoveEntity;\n\n        /**\n         * Decodes a RemoveEntity message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns RemoveEntity\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.RemoveEntity;\n\n        /**\n         * Verifies a RemoveEntity message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a RemoveEntity message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns RemoveEntity\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.RemoveEntity;\n\n        /**\n         * Creates a plain object from a RemoveEntity message. Also converts values to other types if specified.\n         * @param message RemoveEntity\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.RemoveEntity, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this RemoveEntity to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Libs/gameproto/gamemsg.d.ts.meta",
    "content": "{\n  \"ver\": \"2.0.0\",\n  \"uuid\": \"945afd79-6878-4e81-b939-e7fb91ffa4a9\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Libs/gameproto/login.d.ts",
    "content": "\n/** Namespace gameproto. */\nexport namespace gameproto {\n\n    /** Properties of a UserLoginResult. */\n    interface IUserLoginResult {\n\n        /** UserLoginResult uid */\n        uid?: (number|null);\n\n        /** UserLoginResult gateTcpAddr */\n        gateTcpAddr?: (string|null);\n\n        /** UserLoginResult gateWsAddr */\n        gateWsAddr?: (string|null);\n\n        /** UserLoginResult key */\n        key?: (string|null);\n\n        /** UserLoginResult result */\n        result?: (number|null);\n    }\n\n    /** Represents a UserLoginResult. */\n    class UserLoginResult implements IUserLoginResult {\n\n        /**\n         * Constructs a new UserLoginResult.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IUserLoginResult);\n\n        /** UserLoginResult uid. */\n        public uid: number;\n\n        /** UserLoginResult gateTcpAddr. */\n        public gateTcpAddr: string;\n\n        /** UserLoginResult gateWsAddr. */\n        public gateWsAddr: string;\n\n        /** UserLoginResult key. */\n        public key: string;\n\n        /** UserLoginResult result. */\n        public result: number;\n\n        /**\n         * Creates a new UserLoginResult instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns UserLoginResult instance\n         */\n        public static create(properties?: gameproto.IUserLoginResult): gameproto.UserLoginResult;\n\n        /**\n         * Encodes the specified UserLoginResult message. Does not implicitly {@link gameproto.UserLoginResult.verify|verify} messages.\n         * @param message UserLoginResult message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IUserLoginResult, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified UserLoginResult message, length delimited. Does not implicitly {@link gameproto.UserLoginResult.verify|verify} messages.\n         * @param message UserLoginResult message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IUserLoginResult, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a UserLoginResult message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns UserLoginResult\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.UserLoginResult;\n\n        /**\n         * Decodes a UserLoginResult message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns UserLoginResult\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.UserLoginResult;\n\n        /**\n         * Verifies a UserLoginResult message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a UserLoginResult message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns UserLoginResult\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.UserLoginResult;\n\n        /**\n         * Creates a plain object from a UserLoginResult message. Also converts values to other types if specified.\n         * @param message UserLoginResult\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.UserLoginResult, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this UserLoginResult to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a PlatformUser. */\n    interface IPlatformUser {\n\n        /** PlatformUser platformId */\n        platformId?: (string|null);\n\n        /** PlatformUser platform */\n        platform?: (gameproto.PlatformUser.PlatformType|null);\n\n        /** PlatformUser platformSession */\n        platformSession?: (string|null);\n\n        /** PlatformUser platformUid */\n        platformUid?: (number|null);\n\n        /** PlatformUser serverID */\n        serverID?: (number|null);\n\n        /** PlatformUser channelId */\n        channelId?: (string|null);\n\n        /** PlatformUser version */\n        version?: (number|null);\n\n        /** PlatformUser key */\n        key?: (string|null);\n    }\n\n    /** Represents a PlatformUser. */\n    class PlatformUser implements IPlatformUser {\n\n        /**\n         * Constructs a new PlatformUser.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IPlatformUser);\n\n        /** PlatformUser platformId. */\n        public platformId: string;\n\n        /** PlatformUser platform. */\n        public platform: gameproto.PlatformUser.PlatformType;\n\n        /** PlatformUser platformSession. */\n        public platformSession: string;\n\n        /** PlatformUser platformUid. */\n        public platformUid: number;\n\n        /** PlatformUser serverID. */\n        public serverID: number;\n\n        /** PlatformUser channelId. */\n        public channelId: string;\n\n        /** PlatformUser version. */\n        public version: number;\n\n        /** PlatformUser key. */\n        public key: string;\n\n        /**\n         * Creates a new PlatformUser instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns PlatformUser instance\n         */\n        public static create(properties?: gameproto.IPlatformUser): gameproto.PlatformUser;\n\n        /**\n         * Encodes the specified PlatformUser message. Does not implicitly {@link gameproto.PlatformUser.verify|verify} messages.\n         * @param message PlatformUser message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IPlatformUser, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified PlatformUser message, length delimited. Does not implicitly {@link gameproto.PlatformUser.verify|verify} messages.\n         * @param message PlatformUser message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IPlatformUser, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a PlatformUser message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns PlatformUser\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.PlatformUser;\n\n        /**\n         * Decodes a PlatformUser message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns PlatformUser\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.PlatformUser;\n\n        /**\n         * Verifies a PlatformUser message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a PlatformUser message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns PlatformUser\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.PlatformUser;\n\n        /**\n         * Creates a plain object from a PlatformUser message. Also converts values to other types if specified.\n         * @param message PlatformUser\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.PlatformUser, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this PlatformUser to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    namespace PlatformUser {\n\n        /** PlatformType enum. */\n        enum PlatformType {\n            Engine = 0,\n            DEVICE = 99\n        }\n    }\n\n    /** Properties of a LoginReturn. */\n    interface ILoginReturn {\n\n        /** LoginReturn errCode */\n        errCode?: (number|null);\n\n        /** LoginReturn serverTime */\n        serverTime?: (number|null);\n\n        /** LoginReturn args */\n        args?: (string|null);\n\n        /** LoginReturn bFirst */\n        bFirst?: (number|null);\n    }\n\n    /** Represents a LoginReturn. */\n    class LoginReturn implements ILoginReturn {\n\n        /**\n         * Constructs a new LoginReturn.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.ILoginReturn);\n\n        /** LoginReturn errCode. */\n        public errCode: number;\n\n        /** LoginReturn serverTime. */\n        public serverTime: number;\n\n        /** LoginReturn args. */\n        public args: string;\n\n        /** LoginReturn bFirst. */\n        public bFirst: number;\n\n        /**\n         * Creates a new LoginReturn instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns LoginReturn instance\n         */\n        public static create(properties?: gameproto.ILoginReturn): gameproto.LoginReturn;\n\n        /**\n         * Encodes the specified LoginReturn message. Does not implicitly {@link gameproto.LoginReturn.verify|verify} messages.\n         * @param message LoginReturn message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.ILoginReturn, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified LoginReturn message, length delimited. Does not implicitly {@link gameproto.LoginReturn.verify|verify} messages.\n         * @param message LoginReturn message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.ILoginReturn, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a LoginReturn message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns LoginReturn\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.LoginReturn;\n\n        /**\n         * Decodes a LoginReturn message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns LoginReturn\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.LoginReturn;\n\n        /**\n         * Verifies a LoginReturn message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a LoginReturn message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns LoginReturn\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.LoginReturn;\n\n        /**\n         * Creates a plain object from a LoginReturn message. Also converts values to other types if specified.\n         * @param message LoginReturn\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.LoginReturn, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this LoginReturn to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a LoginInfo. */\n    interface ILoginInfo {\n\n        /** LoginInfo headId */\n        headId?: (number|null);\n\n        /** LoginInfo level */\n        level?: (number|null);\n\n        /** LoginInfo exp */\n        exp?: (number|Long|null);\n\n        /** LoginInfo nickname */\n        nickname?: (string|null);\n\n        /** LoginInfo sex */\n        sex?: (number|null);\n\n        /** LoginInfo id */\n        id?: (number|Long|null);\n\n        /** LoginInfo gold */\n        gold?: (number|null);\n\n        /** LoginInfo diamond */\n        diamond?: (number|null);\n    }\n\n    /** Represents a LoginInfo. */\n    class LoginInfo implements ILoginInfo {\n\n        /**\n         * Constructs a new LoginInfo.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.ILoginInfo);\n\n        /** LoginInfo headId. */\n        public headId: number;\n\n        /** LoginInfo level. */\n        public level: number;\n\n        /** LoginInfo exp. */\n        public exp: (number|Long);\n\n        /** LoginInfo nickname. */\n        public nickname: string;\n\n        /** LoginInfo sex. */\n        public sex: number;\n\n        /** LoginInfo id. */\n        public id: (number|Long);\n\n        /** LoginInfo gold. */\n        public gold: number;\n\n        /** LoginInfo diamond. */\n        public diamond: number;\n\n        /**\n         * Creates a new LoginInfo instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns LoginInfo instance\n         */\n        public static create(properties?: gameproto.ILoginInfo): gameproto.LoginInfo;\n\n        /**\n         * Encodes the specified LoginInfo message. Does not implicitly {@link gameproto.LoginInfo.verify|verify} messages.\n         * @param message LoginInfo message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.ILoginInfo, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified LoginInfo message, length delimited. Does not implicitly {@link gameproto.LoginInfo.verify|verify} messages.\n         * @param message LoginInfo message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.ILoginInfo, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a LoginInfo message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns LoginInfo\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.LoginInfo;\n\n        /**\n         * Decodes a LoginInfo message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns LoginInfo\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.LoginInfo;\n\n        /**\n         * Verifies a LoginInfo message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a LoginInfo message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns LoginInfo\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.LoginInfo;\n\n        /**\n         * Creates a plain object from a LoginInfo message. Also converts values to other types if specified.\n         * @param message LoginInfo\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.LoginInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this LoginInfo to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Libs/gameproto/login.d.ts.meta",
    "content": "{\n  \"ver\": \"2.0.0\",\n  \"uuid\": \"3040c727-8c22-4e56-9b69-7295525c85b2\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Libs/gameproto/share.d.ts",
    "content": "\n/** Namespace gameproto. */\nexport namespace gameproto {\n\n    /** ErrorCode enum. */\n    enum ErrorCode {\n        OK = 0,\n        Fail = 1,\n        Error = 2,\n        ServerFull = 3,\n        KeyError = 4,\n        NoFoundTarget = 5,\n        IMPORTANT_WRONG_HEAD = -1000,\n        RESOURCE_VITALITY_ERROR = 1002,\n        RESOURCE_GOLD_ERROR = 1003,\n        RESOURCE_RMB_ERROR = 1004,\n        GUILD_EXIT_CHAIRMAN_ERROR = 1022,\n        UNKNOWN_ERROR = -9999\n    }\n\n    /** Properties of a C2S_TestMsg. */\n    interface IC2S_TestMsg {\n\n        /** C2S_TestMsg id */\n        id?: (number|null);\n    }\n\n    /** Represents a C2S_TestMsg. */\n    class C2S_TestMsg implements IC2S_TestMsg {\n\n        /**\n         * Constructs a new C2S_TestMsg.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IC2S_TestMsg);\n\n        /** C2S_TestMsg id. */\n        public id: number;\n\n        /**\n         * Creates a new C2S_TestMsg instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns C2S_TestMsg instance\n         */\n        public static create(properties?: gameproto.IC2S_TestMsg): gameproto.C2S_TestMsg;\n\n        /**\n         * Encodes the specified C2S_TestMsg message. Does not implicitly {@link gameproto.C2S_TestMsg.verify|verify} messages.\n         * @param message C2S_TestMsg message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IC2S_TestMsg, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified C2S_TestMsg message, length delimited. Does not implicitly {@link gameproto.C2S_TestMsg.verify|verify} messages.\n         * @param message C2S_TestMsg message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IC2S_TestMsg, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a C2S_TestMsg message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns C2S_TestMsg\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.C2S_TestMsg;\n\n        /**\n         * Decodes a C2S_TestMsg message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns C2S_TestMsg\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.C2S_TestMsg;\n\n        /**\n         * Verifies a C2S_TestMsg message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a C2S_TestMsg message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns C2S_TestMsg\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.C2S_TestMsg;\n\n        /**\n         * Creates a plain object from a C2S_TestMsg message. Also converts values to other types if specified.\n         * @param message C2S_TestMsg\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.C2S_TestMsg, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this C2S_TestMsg to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a S2C_TestMsg. */\n    interface IS2C_TestMsg {\n\n        /** S2C_TestMsg id */\n        id?: (number|null);\n    }\n\n    /** Represents a S2C_TestMsg. */\n    class S2C_TestMsg implements IS2C_TestMsg {\n\n        /**\n         * Constructs a new S2C_TestMsg.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IS2C_TestMsg);\n\n        /** S2C_TestMsg id. */\n        public id: number;\n\n        /**\n         * Creates a new S2C_TestMsg instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns S2C_TestMsg instance\n         */\n        public static create(properties?: gameproto.IS2C_TestMsg): gameproto.S2C_TestMsg;\n\n        /**\n         * Encodes the specified S2C_TestMsg message. Does not implicitly {@link gameproto.S2C_TestMsg.verify|verify} messages.\n         * @param message S2C_TestMsg message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IS2C_TestMsg, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified S2C_TestMsg message, length delimited. Does not implicitly {@link gameproto.S2C_TestMsg.verify|verify} messages.\n         * @param message S2C_TestMsg message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IS2C_TestMsg, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a S2C_TestMsg message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns S2C_TestMsg\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.S2C_TestMsg;\n\n        /**\n         * Decodes a S2C_TestMsg message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns S2C_TestMsg\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.S2C_TestMsg;\n\n        /**\n         * Verifies a S2C_TestMsg message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a S2C_TestMsg message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns S2C_TestMsg\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.S2C_TestMsg;\n\n        /**\n         * Creates a plain object from a S2C_TestMsg message. Also converts values to other types if specified.\n         * @param message S2C_TestMsg\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.S2C_TestMsg, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this S2C_TestMsg to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** Properties of a S2C_ConfirmInfo. */\n    interface IS2C_ConfirmInfo {\n\n        /** S2C_ConfirmInfo msgHead */\n        msgHead?: (number|null);\n\n        /** S2C_ConfirmInfo code */\n        code?: (number|null);\n    }\n\n    /** Represents a S2C_ConfirmInfo. */\n    class S2C_ConfirmInfo implements IS2C_ConfirmInfo {\n\n        /**\n         * Constructs a new S2C_ConfirmInfo.\n         * @param [properties] Properties to set\n         */\n        constructor(properties?: gameproto.IS2C_ConfirmInfo);\n\n        /** S2C_ConfirmInfo msgHead. */\n        public msgHead: number;\n\n        /** S2C_ConfirmInfo code. */\n        public code: number;\n\n        /**\n         * Creates a new S2C_ConfirmInfo instance using the specified properties.\n         * @param [properties] Properties to set\n         * @returns S2C_ConfirmInfo instance\n         */\n        public static create(properties?: gameproto.IS2C_ConfirmInfo): gameproto.S2C_ConfirmInfo;\n\n        /**\n         * Encodes the specified S2C_ConfirmInfo message. Does not implicitly {@link gameproto.S2C_ConfirmInfo.verify|verify} messages.\n         * @param message S2C_ConfirmInfo message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encode(message: gameproto.IS2C_ConfirmInfo, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Encodes the specified S2C_ConfirmInfo message, length delimited. Does not implicitly {@link gameproto.S2C_ConfirmInfo.verify|verify} messages.\n         * @param message S2C_ConfirmInfo message or plain object to encode\n         * @param [writer] Writer to encode to\n         * @returns Writer\n         */\n        public static encodeDelimited(message: gameproto.IS2C_ConfirmInfo, writer?: $protobuf.Writer): $protobuf.Writer;\n\n        /**\n         * Decodes a S2C_ConfirmInfo message from the specified reader or buffer.\n         * @param reader Reader or buffer to decode from\n         * @param [length] Message length if known beforehand\n         * @returns S2C_ConfirmInfo\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): gameproto.S2C_ConfirmInfo;\n\n        /**\n         * Decodes a S2C_ConfirmInfo message from the specified reader or buffer, length delimited.\n         * @param reader Reader or buffer to decode from\n         * @returns S2C_ConfirmInfo\n         * @throws {Error} If the payload is not a reader or valid buffer\n         * @throws {$protobuf.util.ProtocolError} If required fields are missing\n         */\n        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): gameproto.S2C_ConfirmInfo;\n\n        /**\n         * Verifies a S2C_ConfirmInfo message.\n         * @param message Plain object to verify\n         * @returns `null` if valid, otherwise the reason why it is not\n         */\n        public static verify(message: { [k: string]: any }): (string|null);\n\n        /**\n         * Creates a S2C_ConfirmInfo message from a plain object. Also converts values to their respective internal types.\n         * @param object Plain object\n         * @returns S2C_ConfirmInfo\n         */\n        public static fromObject(object: { [k: string]: any }): gameproto.S2C_ConfirmInfo;\n\n        /**\n         * Creates a plain object from a S2C_ConfirmInfo message. Also converts values to other types if specified.\n         * @param message S2C_ConfirmInfo\n         * @param [options] Conversion options\n         * @returns Plain object\n         */\n        public static toObject(message: gameproto.S2C_ConfirmInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };\n\n        /**\n         * Converts this S2C_ConfirmInfo to JSON.\n         * @returns JSON object\n         */\n        public toJSON(): { [k: string]: any };\n    }\n\n    /** BattleType enum. */\n    enum BattleType {\n        PVE = 0,\n        PVP = 1\n    }\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Libs/gameproto/share.d.ts.meta",
    "content": "{\n  \"ver\": \"2.0.0\",\n  \"uuid\": \"0e253aa3-b1a0-4150-95e7-870da8555120\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Libs/gameproto.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"046213bb-0b43-41ec-9380-63324cc9859c\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Libs/joystick/GameJoystick.js",
    "content": "var Common = require('JoystickCommon');\nvar JoystickBG = require('JoystickBG');\n\ncc.Class({\n    extends: cc.Component,\n\n    properties: {\n        dot: {\n            default: null,\n            type: cc.Node,\n            displayName: '摇杆节点',\n        },\n        ring: {\n            default: null,\n            type: JoystickBG,\n            displayName: '摇杆背景节点',\n        },\n        stickX: {\n            default: 0,\n            displayName: '摇杆X位置',\n        },\n\n        stickY: {\n            default: 0,\n            displayName: '摇杆Y位置',\n        },\n        touchType: {\n            default: Common.TouchType.DEFAULT,\n            type: Common.TouchType,\n            displayName: '触摸类型',\n        },   \n        directionType: {\n            default: Common.DirectionType.ALL,\n            type: Common.DirectionType,\n            displayName: '方向类型',\n\n        },   \n        sprite: {\n            default: null,\n            type: cc.Node,\n            displayName: '操控的目标',\n\n        },   \n    \n        _stickPos: {\n            default: null,\n            type: cc.Node,\n            displayName: '摇杆当前位置',\n        },   \n\n        _touchLocation: {\n            default: null,\n            type: cc.Node,\n            displayName: '摇杆当前位置',\n\n        },\n        \n        touchPos :cc.Vec2.ZERO\n        \n    },\n\n    onLoad: function () {\n        this._createStickSprite();\n        //当触摸类型为FOLLOW会在此对圆圈的触摸监听\n        if(this.touchType == Common.TouchType.FOLLOW){\n            this._initTouchEvent();\n        }\n    },\n    update: function(dt) {\n        //console.warn(`joystick pos --:${this.dot.getPosition()}`)\n        this.touchPos = this.dot.getPosition()\n    },\n\n    getTouchPos:function() {\n        return this.touchPos\n    },\n\n    _createStickSprite: function()\n    {\n        //调整摇杆的位置\n        this.ring.node.setPosition(this.stickX, this.stickY);\n        this.dot.setPosition(this.stickX, this.stickY);\n    },\n\n    _initTouchEvent: function()\n    {\n        var self = this;\n\n        self.node.on(cc.Node.EventType.TOUCH_START, self._touchStartEvent, self);\n\n        self.node.on(cc.Node.EventType.TOUCH_MOVE, self._touchMoveEvent, self);\n\n        // 触摸在圆圈内离开或在圆圈外离开后，摇杆归位，player速度为0\n        self.node.on(cc.Node.EventType.TOUCH_END, self._touchEndEvent,self);\n        self.node.on(cc.Node.EventType.TOUCH_CANCEL, self._touchEndEvent,self);\n\n        \n    },\n\n    _touchStartEvent: function(event) {\n        // 记录触摸的世界坐标，给touch move使用\n        this._touchLocation = event.getLocation();\n        var touchPos = this.node.convertToNodeSpaceAR(event.getLocation());\n        // 更改摇杆的位置\n        this.ring.node.setPosition(touchPos);\n        this.dot.setPosition(touchPos);\n        // 记录摇杆位置，给touch move使用\n        this._stickPos = touchPos;\n    },\n\n    _touchMoveEvent: function(event) {\n\n        // 如果touch start位置和touch move相同，禁止移动\n        if (this._touchLocation.x == event.getLocation().x && this._touchLocation.y == event.getLocation().y){\n            return false;\n        }\n        // 以圆圈为锚点获取触摸坐标\n        var touchPos = this.ring.node.convertToNodeSpaceAR(event.getLocation());\n        var distance = this.ring._getDistance(touchPos,cc.p(0,0));\n        var radius = this.ring.node.width / 2;\n\n        // 由于摇杆的postion是以父节点为锚点，所以定位要加上touch start时的位置\n        var posX = this._stickPos.x + touchPos.x;\n        var posY = this._stickPos.y + touchPos.y;\n        //console.warn(`joystick pos:${posX},${posY}`)\n        if(radius > distance)\n        {\n            this.dot.setPosition(cc.p(posX, posY));\n        }\n        else\n        {\n            //控杆永远保持在圈内，并在圈内跟随触摸更新角度\n            var x = this._stickPos.x + Math.cos(this.ring._getRadian(cc.p(posX,posY))) * radius;\n            var y = this._stickPos.y + Math.sin(this.ring._getRadian(cc.p(posX,posY))) * radius;\n            this.dot.setPosition(cc.p(x, y));\n        }\n        //更新角度\n        this.ring._getAngle(cc.p(posX,posY));\n        //设置实际速度\n        this.ring._setSpeed(cc.p(posX,posY));\n    },\n\n    _touchEndEvent: function(){\n        this.dot.setPosition(this.ring.node.getPosition());\n        this.ring._speed = 0;\n    },\n\n});\n"
  },
  {
    "path": "ChessCardHall/assets/Libs/joystick/GameJoystick.js.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"4a61b2df-5fe8-44eb-91ef-b79372fb0dc2\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Libs/joystick/JoystickBG.js",
    "content": "var Common = require('JoystickCommon');\n\ncc.Class({\n    extends: cc.Component,\n\n    properties: {\n        dot: {\n            default: null,\n            type: cc.Node,\n            displayName: '摇杆节点',\n        },\n\n        _joyCom: {\n            default: null,\n            displayName: 'joy Node',\n\n        },\n        _playerNode: {\n            default: null,\n            displayName: '被操作的目标Node',\n        },\n\n        _angle: {\n            default: null,\n            displayName: '当前触摸的角度',\n\n        },\n       \n        _radian: {\n            default: null,\n            displayName: '弧度',\n        },      \n\n\n        _speed: 0,          //实际速度\n        _speed1: 1,         //一段速度\n        _speed2: 2,         //二段速度\n        _opacity: 0,        //透明度\n    },\n\n\n    onLoad: function()\n    {\n        // joy下的Game组件\n        this._joyCom = this.node.parent.getComponent('GameJoystick');\n        // game组件下的player节点\n        this._playerNode = this._joyCom.sprite;\n    \n        if(this._joyCom.touchType == Common.TouchType.DEFAULT){\n            //对圆圈的触摸监听\n            this._initTouchEvent();\n        }\n    },\n\n\n    //对圆圈的触摸监听\n    _initTouchEvent: function()\n    {\n        var self = this;\n\n        self.node.on(cc.Node.EventType.TOUCH_START, this._touchStartEvent, self);\n\n        self.node.on(cc.Node.EventType.TOUCH_MOVE, this._touchMoveEvent, self);\n\n        // 触摸在圆圈内离开或在圆圈外离开后，摇杆归位，player速度为0\n        self.node.on(cc.Node.EventType.TOUCH_END, this._touchEndEvent, self);\n        self.node.on(cc.Node.EventType.TOUCH_CANCEL, this._touchEndEvent, self);\n    },\n\n    //更新移动目标\n    update: function(dt)\n    {\n        switch (this._joyCom.directionType)\n        {\n            case Common.DirectionType.ALL:   \n                this._allDirectionsMove();\n                break;\n            default :\n                break;\n        }\n    },\n     //全方向移动\n    _allDirectionsMove: function()\n    {\n        this._playerNode.x += Math.cos(this._angle * (Math.PI/180)) * this._speed;\n        this._playerNode.y += Math.sin(this._angle * (Math.PI/180)) * this._speed;\n    },\n\n     //计算两点间的距离并返回\n    _getDistance: function(pos1, pos2)\n    {\n        return Math.sqrt(Math.pow(pos1.x - pos2.x, 2) +\n        Math.pow(pos1.y - pos2.y, 2));\n    },\n\n    /*角度/弧度转换\n    角度 = 弧度 * 180 / Math.PI\n    弧度 = 角度 * Math.PI / 180*/\n    //计算弧度并返回\n    _getRadian: function(point)\n    {\n        this._radian = Math.PI / 180 * this._getAngle(point);\n        return this._radian;\n    },\n\n    //计算角度并返回\n    _getAngle: function(point)\n    {\n        \n        var pos = this.node.getPosition();\n        this._angle = Math.atan2(point.y - pos.y, point.x - pos.x) * (180/Math.PI);\n        return this._angle;\n    },\n\n     //设置实际速度\n    _setSpeed: function(point)\n    {\n        //触摸点和遥控杆中心的距离\n        var distance = this._getDistance(point, this.node.getPosition());\n\n        //如果半径\n        if(distance < this._radius)\n        {\n            this._speed = this._speed1;\n        }\n        else\n        {\n            this._speed = this._speed2;\n        }\n    },\n\n    _touchStartEvent: function(event) {\n        // 获取触摸位置的世界坐标转换成圆圈的相对坐标（以圆圈的锚点为基准）\n        var touchPos = this.node.convertToNodeSpaceAR(event.getLocation());\n        //触摸点与圆圈中心的距离\n        var distance = this._getDistance(touchPos,new cc.Vec2(0,0));\n        //圆圈半径\n        var radius = this.node.width / 2;\n        // 记录摇杆位置，给touch move使用\n        this._stickPos = touchPos;\n        var posX = this.node.getPosition().x + touchPos.x;\n        var posY = this.node.getPosition().y + touchPos.y;\n         //手指在圆圈内触摸,控杆跟随触摸点\n        if(radius > distance)\n        {\n            this.dot.setPosition(new cc.Vec2(posX, posY));\n            return true;\n        }\n        return false;\n    },\n\n    _touchMoveEvent: function(event){\n        var touchPos = this.node.convertToNodeSpaceAR(event.getLocation());\n        var distance = this._getDistance(touchPos,new cc.Vec2(0,0));\n        var radius = this.node.width / 2;\n        // 由于摇杆的postion是以父节点为锚点，所以定位要加上ring和dot当前的位置(stickX,stickY)\n        var posX = this.node.getPosition().x + touchPos.x;\n        var posY = this.node.getPosition().y + touchPos.y;\n        if(radius > distance)\n        {\n            this.dot.setPosition(new cc.Vec2(posX, posY));\n        }\n        else\n        {\n            //控杆永远保持在圈内，并在圈内跟随触摸更新角度\n            var x = this.node.getPosition().x + Math.cos(this._getRadian(new cc.Vec2(posX,posY))) * radius;\n            var y = this.node.getPosition().y + Math.sin(this._getRadian(new cc.Vec2(posX,posY))) * radius;\n            this.dot.setPosition(new cc.Vec2(x, y));\n        }\n        //更新角度\n        this._getAngle(new cc.Vec2(posX,posY));\n        //设置实际速度\n        this._setSpeed(new cc.Vec2(posX,posY));\n\n    },\n\n    _touchEndEvent: function(){\n        this.dot.setPosition(this.node.getPosition());\n        this._speed = 0;\n    },\n});\n"
  },
  {
    "path": "ChessCardHall/assets/Libs/joystick/JoystickBG.js.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"8685f14a-1ab1-4d7f-8382-8c115f227bb5\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Libs/joystick/JoystickCommon.js",
    "content": "module.exports = {\n\n    TouchType : cc.Enum({\n        DEFAULT: 0,\n        FOLLOW: 1,\n    }),\n\n    DirectionType : cc.Enum({\n        FOUR: 4,\n        EIGHT: 8,\n        ALL: 0,\n    }),\n\n};\n"
  },
  {
    "path": "ChessCardHall/assets/Libs/joystick/JoystickCommon.js.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"8584981a-4299-438b-88c2-9979e786f7e4\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Libs/joystick.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"d18883c3-9a8a-4c7f-8593-ef421d3ab67d\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Libs.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"09550f0b-b3d7-4183-9f73-50c515132a30\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/attrres/config.xml.bak.meta",
    "content": "{\n  \"ver\": \"1.0.1\",\n  \"uuid\": \"889065e8-6fe0-45b3-9014-6e5eedfb28e1\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/attrres/config.xml.meta",
    "content": "{\n  \"ver\": \"2.0.0\",\n  \"uuid\": \"3b27614d-cc21-40fe-97ff-2950eb9c1b23\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/attrres/proloadani.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>animates</key>\n\t<dict>\n\t\t<key>ani1</key>\n\t\t<dict>\n\t\t\t<key>id</key>\n\t\t\t<string>1</string>\n\t\t\t<key>resfile</key>\n\t\t\t<string>exploBig20.plist</string>\n\t\t</dict>\n\t</dict>\n</dict>"
  },
  {
    "path": "ChessCardHall/assets/Res90/attrres/proloadani.xml.meta",
    "content": "{\n  \"ver\": \"2.0.0\",\n  \"uuid\": \"72da9782-417c-49ba-847a-1c77ad04a803\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/attrres/roleinfo.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>roles</key>\n\t<dict>\n\t\t<key>role1</key>\n\t\t<dict>\n\t\t\t<key>id</key>\n\t\t\t<string>1</string>\n\t\t\t<key>name</key>\n\t\t\t<string>mytank-lv1</string>\n\t\t\t<key>resfile</key>\n\t\t\t<string>tankres/role1.rl</string>\n\t\t</dict>\n\t\t<key>role2</key>\n\t\t<dict>\n\t\t\t<key>id</key>\n\t\t\t<string>2</string>\n\t\t\t<key>name</key>\n\t\t\t<string>myother</string>\n\t\t\t<key>resfile</key>\n\t\t\t<string>tankres/enemy1.rl</string>\n\t\t</dict>\n\t\t<key>role3</key>\n\t\t<dict>\n\t\t\t<key>id</key>\n\t\t\t<string>3</string>\n\t\t\t<key>name</key>\n\t\t\t<string>myother</string>\n\t\t\t<key>resfile</key>\n\t\t\t<string>tankres/enemy2.rl</string>\n\t\t</dict>\n\t\t<key>role5</key>\n\t\t<dict>\n\t\t\t<key>id</key>\n\t\t\t<string>5</string>\n\t\t\t<key>name</key>\n\t\t\t<string>myother</string>\n\t\t\t<key>resfile</key>\n\t\t\t<string>tankres/enemy5.rl</string>\n\t\t</dict>\n\t</dict>\n</dict>"
  },
  {
    "path": "ChessCardHall/assets/Res90/attrres/roleinfo.xml.bak",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>roles</key>\n\t<dict>\n\t\t<key>role1</key>\n\t\t<dict>\n\t\t\t<key>id</key>\n\t\t\t<string>1</string>\n\t\t\t<key>name</key>\n\t\t\t<string>mytank-lv1</string>\n\t\t\t<key>resfile</key>\n\t\t\t<string>tankres\\\\role1.rl</string>\n\t\t</dict>\n\t\t<key>role2</key>\n\t\t<dict>\n\t\t\t<key>id</key>\n\t\t\t<string>2</string>\n\t\t\t<key>name</key>\n\t\t\t<string>myother</string>\n\t\t\t<key>resfile</key>\n\t\t\t<string>tankres\\\\enemy1.rl</string>\n\t\t</dict>\n\t</dict>\n</dict>"
  },
  {
    "path": "ChessCardHall/assets/Res90/attrres/roleinfo.xml.bak.meta",
    "content": "{\n  \"ver\": \"1.0.1\",\n  \"uuid\": \"f50bfde1-3882-4024-b58c-ad6638875208\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/attrres/roleinfo.xml.meta",
    "content": "{\n  \"ver\": \"2.0.0\",\n  \"uuid\": \"c8d466cb-fdc7-4eac-b09b-964124d7960e\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/attrres/string.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>fontname</key>\n\t<string>隶书</string>\n\t<key>wingame</key>\n\t<string>恭喜你，通过了一关</string>\n\t<key>losegame</key>\n\t<string>抱歉，你灭团了</string>\n\t<key>winall</key>\n\t<string>恭喜，你通关了，太牛X了！！</string>\n\t<key>startgame</key>\n\t<string>开始游戏</string>\n\t<key>closegame</key>\n\t<string>结束游戏</string>\n\t<key>continue</key>\n\t<string>link to</string>\n\t<key>ip</key>\n\t<string>192.168.123.1</string>\n</dict>"
  },
  {
    "path": "ChessCardHall/assets/Res90/attrres/string.xml.bak",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>fontname</key>\n\t<string>隶书</string>\n\t<key>wingame</key>\n\t<string>恭喜你，通过了一关</string>\n\t<key>losegame</key>\n\t<string>抱歉，你灭团了</string>\n\t<key>winall</key>\n\t<string>恭喜，你通关了，太牛X了！！</string>\n\t<key>startgame</key>\n\t<string>开始游戏</string>\n\t<key>closegame</key>\n\t<string>结束游戏</string>\n\t<key>continue</key>\n\t<string>link to</string>\n\t<key>ip</key>\n\t<string>192.168.123.1</string>\n</dict>"
  },
  {
    "path": "ChessCardHall/assets/Res90/attrres/string.xml.bak.meta",
    "content": "{\n  \"ver\": \"1.0.1\",\n  \"uuid\": \"1aa5b316-e823-406f-a455-f4ff141738ae\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/attrres/string.xml.meta",
    "content": "{\n  \"ver\": \"2.0.0\",\n  \"uuid\": \"9ed8d451-a924-4816-926a-28f6efa0c768\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/attrres.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"7859c862-08a2-4ffc-93e5-6264d26e907e\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/controller/cup1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5ec69b95-b0b2-40bc-9fbf-d7103b98022d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 128,\n  \"height\": 128,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"cup1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"fae5cdaa-262f-4efe-8db4-fc42a69a4d28\",\n      \"rawTextureUuid\": \"5ec69b95-b0b2-40bc-9fbf-d7103b98022d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -1,\n      \"offsetY\": 1,\n      \"trimX\": 23,\n      \"trimY\": 23,\n      \"width\": 80,\n      \"height\": 80,\n      \"rawWidth\": 128,\n      \"rawHeight\": 128,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/controller/cup12.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6251256f-3fd6-43fa-ade0-bfc3e0b52491\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 123,\n  \"height\": 122,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"cup12\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5704900f-d5a3-48e7-8cbe-f1ab7086b401\",\n      \"rawTextureUuid\": \"6251256f-3fd6-43fa-ade0-bfc3e0b52491\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -0.5,\n      \"offsetY\": 0,\n      \"trimX\": 44,\n      \"trimY\": 44,\n      \"width\": 34,\n      \"height\": 34,\n      \"rawWidth\": 123,\n      \"rawHeight\": 122,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/controller/fire.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"274faf08-6a6f-4598-856f-c7984bcbe4e0\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 128,\n  \"height\": 128,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"fire\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"93515109-5764-4cc1-bb66-612054caf2ad\",\n      \"rawTextureUuid\": \"274faf08-6a6f-4598-856f-c7984bcbe4e0\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -1,\n      \"offsetY\": 1,\n      \"trimX\": 23,\n      \"trimY\": 23,\n      \"width\": 80,\n      \"height\": 80,\n      \"rawWidth\": 128,\n      \"rawHeight\": 128,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/controller/fire1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"00724211-ae8a-4a90-afc7-44ee3b23adb6\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 50,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"fire1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c67fdeda-fc61-46e2-a6cd-c147c145e60c\",\n      \"rawTextureUuid\": \"00724211-ae8a-4a90-afc7-44ee3b23adb6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 1,\n      \"trimY\": 0,\n      \"width\": 48,\n      \"height\": 50,\n      \"rawWidth\": 50,\n      \"rawHeight\": 50,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/controller/fired1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a303e5b6-ce9a-44d1-b436-4473521ac422\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 50,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"fired1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f93b0381-6efe-403e-b4b6-4d1581c84bd9\",\n      \"rawTextureUuid\": \"a303e5b6-ce9a-44d1-b436-4473521ac422\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 50,\n      \"height\": 50,\n      \"rawWidth\": 50,\n      \"rawHeight\": 50,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/controller/js.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d3aad923-a2b2-42d9-b96c-dbd24f6bba8b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 123,\n  \"height\": 122,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"js\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7452f356-7aa5-4e10-be99-7b13d8c8d61d\",\n      \"rawTextureUuid\": \"d3aad923-a2b2-42d9-b96c-dbd24f6bba8b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -0.5,\n      \"offsetY\": 0,\n      \"trimX\": 5,\n      \"trimY\": 5,\n      \"width\": 112,\n      \"height\": 112,\n      \"rawWidth\": 123,\n      \"rawHeight\": 122,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/controller/js1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e4cc55bf-612f-4322-bee3-c09b4417f24b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 123,\n  \"height\": 122,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"js1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d27d9d9c-f7db-42d9-83ff-c6cc43ee2a12\",\n      \"rawTextureUuid\": \"e4cc55bf-612f-4322-bee3-c09b4417f24b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -0.5,\n      \"offsetY\": 0,\n      \"trimX\": 5,\n      \"trimY\": 5,\n      \"width\": 112,\n      \"height\": 112,\n      \"rawWidth\": 123,\n      \"rawHeight\": 122,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/controller.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"2663d8c5-639f-4f7a-a425-a776fe972ce4\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/map/lv1.tmx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<map version=\"1.0\" orientation=\"orthogonal\" width=\"24\" height=\"16\" tilewidth=\"20\" tileheight=\"20\">\n <tileset firstgid=\"1\" name=\"tileall\" tilewidth=\"20\" tileheight=\"20\">\n  <image source=\"tileall.png\" width=\"200\" height=\"20\"/>\n  <tile id=\"0\">\n   <properties>\n    <property name=\"attr\" value=\"15\"/>\n   </properties>\n  </tile>\n  <tile id=\"1\">\n   <properties>\n    <property name=\"attr\" value=\"11\"/>\n   </properties>\n  </tile>\n  <tile id=\"2\">\n   <properties>\n    <property name=\"attr\" value=\"0\"/>\n   </properties>\n  </tile>\n  <tile id=\"3\">\n   <properties>\n    <property name=\"attr\" value=\"1\"/>\n   </properties>\n  </tile>\n  <tile id=\"4\">\n   <properties>\n    <property name=\"attr\" value=\"1\"/>\n   </properties>\n  </tile>\n  <tile id=\"5\">\n   <properties>\n    <property name=\"attr\" value=\"15\"/>\n   </properties>\n  </tile>\n  <tile id=\"6\">\n   <properties>\n    <property name=\"attr\" value=\"15\"/>\n   </properties>\n  </tile>\n  <tile id=\"7\">\n   <properties>\n    <property name=\"attr\" value=\"15\"/>\n   </properties>\n  </tile>\n  <tile id=\"8\">\n   <properties>\n    <property name=\"attr\" value=\"11\"/>\n   </properties>\n  </tile>\n  <tile id=\"9\">\n   <properties>\n    <property name=\"attr\" value=\"0\"/>\n   </properties>\n  </tile>\n </tileset>\n <layer name=\"floor\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJzjYmBg4BrFo3gUj+JRPOIwACajDwE=\n  </data>\n </layer>\n <layer name=\"back\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJxjYBgFo2AUDGfAggNTC7DiwKNg8AMAaowANw==\n  </data>\n </layer>\n <layer name=\"center\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJxjYBgegJHKmN7mj4JRQC5gQsLofCZcmnCow6aP3LQ8VPIArd2Gbt5gMh8AJMsAXg==\n  </data>\n </layer>\n <layer name=\"front\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJxjYBj6gJnGZtLDfFpgUtxCif5RMHgAJfE2GudDG7CRoQcAsnMAbQ==\n  </data>\n </layer>\n <objectgroup name=\"obj1\" width=\"24\" height=\"16\">\n  <properties>\n   <property name=\"type\" value=\"1\"/>\n  </properties>\n  <object name=\"base\" x=\"202\" y=\"283\" width=\"59\" height=\"36\">\n   <properties>\n    <property name=\"bstype\" value=\"1\"/>\n   </properties>\n  </object>\n </objectgroup>\n</map>\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/map/lv1.tmx.meta",
    "content": "{\n  \"ver\": \"2.0.3\",\n  \"uuid\": \"2b45e99e-9dd1-4190-8c23-3ebb7f49f08d\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/map/lv2.tmx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<map version=\"1.0\" orientation=\"orthogonal\" width=\"24\" height=\"16\" tilewidth=\"20\" tileheight=\"20\">\n <tileset firstgid=\"1\" name=\"tileall\" tilewidth=\"20\" tileheight=\"20\">\n  <image source=\"tileall.png\" width=\"200\" height=\"20\"/>\n  <tile id=\"0\">\n   <properties>\n    <property name=\"attr\" value=\"15\"/>\n   </properties>\n  </tile>\n  <tile id=\"1\">\n   <properties>\n    <property name=\"attr\" value=\"11\"/>\n   </properties>\n  </tile>\n  <tile id=\"2\">\n   <properties>\n    <property name=\"attr\" value=\"0\"/>\n   </properties>\n  </tile>\n  <tile id=\"3\">\n   <properties>\n    <property name=\"attr\" value=\"1\"/>\n   </properties>\n  </tile>\n  <tile id=\"4\">\n   <properties>\n    <property name=\"attr\" value=\"1\"/>\n   </properties>\n  </tile>\n  <tile id=\"5\">\n   <properties>\n    <property name=\"attr\" value=\"15\"/>\n   </properties>\n  </tile>\n  <tile id=\"6\">\n   <properties>\n    <property name=\"attr\" value=\"15\"/>\n   </properties>\n  </tile>\n  <tile id=\"7\">\n   <properties>\n    <property name=\"attr\" value=\"15\"/>\n   </properties>\n  </tile>\n  <tile id=\"8\">\n   <properties>\n    <property name=\"attr\" value=\"11\"/>\n   </properties>\n  </tile>\n  <tile id=\"9\">\n   <properties>\n    <property name=\"attr\" value=\"0\"/>\n   </properties>\n  </tile>\n </tileset>\n <layer name=\"floor\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJzjYmBg4BrFo3gUj+JRPOIwACajDwE=\n  </data>\n </layer>\n <layer name=\"back\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJxjYBgFo2AUDGfAggNTC7DiwKNg8AMAaowANw==\n  </data>\n </layer>\n <layer name=\"center\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJxjYBgegJHKmN7mj4JRQC5gQsLofCZcmnCow6aP3LQ8VPIArd2Gbt5gMh8AJMsAXg==\n  </data>\n </layer>\n <layer name=\"front\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJxjYBj6gJnGZtLDfFpgYt1Brt7BAIa6+6kNKPH7SA634QDYyNADAOyHAH8=\n  </data>\n </layer>\n <objectgroup name=\"obj1\" width=\"24\" height=\"16\">\n  <properties>\n   <property name=\"type\" value=\"1\"/>\n  </properties>\n  <object name=\"base\" x=\"202\" y=\"283\" width=\"59\" height=\"36\">\n   <properties>\n    <property name=\"bstype\" value=\"1\"/>\n   </properties>\n  </object>\n </objectgroup>\n</map>\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/map/lv2.tmx.meta",
    "content": "{\n  \"ver\": \"2.0.3\",\n  \"uuid\": \"cbdf55a3-a77e-405b-9e29-a44005437981\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/map/lv3.tmx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<map version=\"1.0\" orientation=\"orthogonal\" width=\"24\" height=\"16\" tilewidth=\"20\" tileheight=\"20\">\n <tileset firstgid=\"1\" name=\"tileall\" tilewidth=\"20\" tileheight=\"20\">\n  <image source=\"tileall.png\" width=\"200\" height=\"20\"/>\n  <tile id=\"0\">\n   <properties>\n    <property name=\"attr\" value=\"15\"/>\n   </properties>\n  </tile>\n  <tile id=\"1\">\n   <properties>\n    <property name=\"attr\" value=\"11\"/>\n   </properties>\n  </tile>\n  <tile id=\"2\">\n   <properties>\n    <property name=\"attr\" value=\"0\"/>\n   </properties>\n  </tile>\n  <tile id=\"3\">\n   <properties>\n    <property name=\"attr\" value=\"1\"/>\n   </properties>\n  </tile>\n  <tile id=\"4\">\n   <properties>\n    <property name=\"attr\" value=\"1\"/>\n   </properties>\n  </tile>\n  <tile id=\"5\">\n   <properties>\n    <property name=\"attr\" value=\"15\"/>\n   </properties>\n  </tile>\n  <tile id=\"6\">\n   <properties>\n    <property name=\"attr\" value=\"15\"/>\n   </properties>\n  </tile>\n  <tile id=\"7\">\n   <properties>\n    <property name=\"attr\" value=\"15\"/>\n   </properties>\n  </tile>\n  <tile id=\"8\">\n   <properties>\n    <property name=\"attr\" value=\"11\"/>\n   </properties>\n  </tile>\n  <tile id=\"9\">\n   <properties>\n    <property name=\"attr\" value=\"0\"/>\n   </properties>\n  </tile>\n </tileset>\n <layer name=\"floor\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJzjYmBg4BrFo3gUj+JRPOIwACajDwE=\n  </data>\n </layer>\n <layer name=\"back\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJxjYBgFo2AUDGfAggNTC7DiwKNg8AMAaowANw==\n  </data>\n </layer>\n <layer name=\"center\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJxjYBgegJHKmN7mj4JRQC5gQsLofCZcmnCow6aP3LQ8VPIArd2Gbt5gMh8AJMsAXg==\n  </data>\n </layer>\n <layer name=\"front\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJxjYBj6gJnGZtLDfFpgYt1BqRkDCUbdj2keJW4ZBUMXsJGhBwBRjgCj\n  </data>\n </layer>\n <objectgroup name=\"obj1\" width=\"24\" height=\"16\">\n  <properties>\n   <property name=\"type\" value=\"1\"/>\n  </properties>\n  <object name=\"base\" x=\"202\" y=\"283\" width=\"59\" height=\"36\">\n   <properties>\n    <property name=\"bstype\" value=\"1\"/>\n   </properties>\n  </object>\n </objectgroup>\n</map>\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/map/lv3.tmx.meta",
    "content": "{\n  \"ver\": \"2.0.3\",\n  \"uuid\": \"b5a95387-996f-4389-ba80-2ea17a2ecee4\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/map/tileall.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5a989e31-2979-464c-a666-b72b3525e122\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 200,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tileall\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2211fcd9-e57b-4fc5-84e3-373645c1a7e5\",\n      \"rawTextureUuid\": \"5a989e31-2979-464c-a666-b72b3525e122\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 200,\n      \"height\": 20,\n      \"rawWidth\": 200,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/map.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"6e0576a3-4f70-470d-9145-3725338778b5\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/Explode1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f8aef5cf-1b2f-4411-8a45-a545736b5da7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 184,\n  \"height\": 23,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"Explode1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7cc6aaca-2af2-442d-9dce-b998f273eaf1\",\n      \"rawTextureUuid\": \"f8aef5cf-1b2f-4411-8a45-a545736b5da7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 3.5,\n      \"offsetY\": 0,\n      \"trimX\": 7,\n      \"trimY\": 0,\n      \"width\": 177,\n      \"height\": 23,\n      \"rawWidth\": 184,\n      \"rawHeight\": 23,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/JoyStickMenu.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"39e85d14-5d3f-4ebb-ab4e-780b3547c8a6\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 110,\n  \"height\": 11,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"JoyStickMenu\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d4f1d526-9de7-45fb-ab96-c1d417beb1f0\",\n      \"rawTextureUuid\": \"39e85d14-5d3f-4ebb-ab4e-780b3547c8a6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 3,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 11,\n      \"rawWidth\": 110,\n      \"rawHeight\": 11,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/cup2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"76519bb9-30cf-4249-a93f-b3422a3bc92c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 123,\n  \"height\": 122,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"cup2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4372695e-198f-46b1-bc11-0182b59b79a7\",\n      \"rawTextureUuid\": \"76519bb9-30cf-4249-a93f-b3422a3bc92c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -0.5,\n      \"offsetY\": 0,\n      \"trimX\": 44,\n      \"trimY\": 44,\n      \"width\": 34,\n      \"height\": 34,\n      \"rawWidth\": 123,\n      \"rawHeight\": 122,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/enemy.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"630a4c99-57e6-49d5-9607-9a046163f9ed\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"enemy\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3bd278af-794e-4609-a6fb-d4ac576128fb\",\n      \"rawTextureUuid\": \"630a4c99-57e6-49d5-9607-9a046163f9ed\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -0.5,\n      \"offsetY\": -1,\n      \"trimX\": 6,\n      \"trimY\": 5,\n      \"width\": 67,\n      \"height\": 32,\n      \"rawWidth\": 80,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/exploBig.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"95ef5cf9-787b-40a9-a7a0-7f99928e57b9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 560,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"exploBig\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"19cafc3f-a5ab-4b6e-b974-e3dcb9639f1f\",\n      \"rawTextureUuid\": \"95ef5cf9-787b-40a9-a7a0-7f99928e57b9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -19,\n      \"offsetY\": 0,\n      \"trimX\": 12,\n      \"trimY\": 1,\n      \"width\": 498,\n      \"height\": 38,\n      \"rawWidth\": 560,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/exploBig20-1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"869db475-fa7b-40a0-875a-297b48dcea80\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 280,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"exploBig20-1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ee254b5c-bb76-4d2c-8c49-852fdc314f1a\",\n      \"rawTextureUuid\": \"869db475-fa7b-40a0-875a-297b48dcea80\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 280,\n      \"height\": 20,\n      \"rawWidth\": 280,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/exploBig20.PNG.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"588648d7-43ab-4494-b1f4-89be08dff6da\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 280,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"exploBig20\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"92edd452-c44e-4058-b46f-86741380d4e3\",\n      \"rawTextureUuid\": \"588648d7-43ab-4494-b1f4-89be08dff6da\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 280,\n      \"height\": 20,\n      \"rawWidth\": 280,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/exploBig20.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<!--Honghaier Game Editor : Version 1.0 -->\n<plist version=\"1.0\">\n<dict>\n<key>frames</key><dict><key>Block_0</key><dict><key>frame</key><string>{{0,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_1</key><dict><key>frame</key><string>{{20,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{20,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_2</key><dict><key>frame</key><string>{{40,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{40,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_3</key><dict><key>frame</key><string>{{60,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{60,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_4</key><dict><key>frame</key><string>{{80,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{80,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_5</key><dict><key>frame</key><string>{{100,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{100,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_6</key><dict><key>frame</key><string>{{120,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{120,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_7</key><dict><key>frame</key><string>{{140,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{140,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_8</key><dict><key>frame</key><string>{{160,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{160,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_9</key><dict><key>frame</key><string>{{180,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{180,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_10</key><dict><key>frame</key><string>{{200,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{200,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_11</key><dict><key>frame</key><string>{{220,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{220,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_12</key><dict><key>frame</key><string>{{240,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{240,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_13</key><dict><key>frame</key><string>{{260,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{260,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict></dict><key>metadata</key><dict><key>format</key><integer>2</integer><key>realTextureFileName</key><string>exploBig20.png</string><key>size</key><string>{280,280}</string><key>TextureFileName</key><string>exploBig20.png</string></dict></dict></plist>"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/exploBig20.plist.meta",
    "content": "{\n  \"ver\": \"1.2.4\",\n  \"uuid\": \"60a13e0d-1fb3-4f3f-87a5-023f464b1bf4\",\n  \"size\": {\n    \"width\": 280,\n    \"height\": 280\n  },\n  \"type\": \"Texture Packer\",\n  \"subMetas\": {\n    \"Block_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"dd5a61e7-1159-418e-9d35-ba4e9a665e2b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"22afea71-e24f-4d94-b801-ee8f2a5d8d16\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"75b68c0d-6eae-408e-b805-8a2b29d71491\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c33a743e-73a2-48cd-971a-2aa6c7097040\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c157ab5f-42ec-406b-8339-0711bbdad5a0\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6717da61-03d9-4a0e-bdad-0cbf77bcd438\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4c5e4ec5-972f-4ad0-90f4-1c8605cf8c7b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7a0e051b-e323-4622-993f-2f595ea9faa8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_8\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"015b7887-6efc-4a5a-8cea-3e773298cb2d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 160,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_9\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b80cd721-c523-4307-9def-d381d3b30db7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 180,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_10\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"56662dbb-7b68-436c-b25d-1d218d5b68f6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 200,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_11\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d0d3b8d3-03e1-4499-b50f-9a0166b036e1\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 220,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_12\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0b29914b-f50d-4f51-a658-76d5282cf2ef\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 240,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_13\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2e858ce8-301b-4b6c-b6d0-f0b5d59bd1a9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 260,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/exploBig20.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<root>\n    <plists>\n        <plist>exploBig20.plist</plist>\n    </plists>\n    <animations>\n        <animation>\n            <name>ani</name>\n            <delay>0.05</delay>\n            <spriteFrame>Block_0</spriteFrame>\n            <spriteFrame>Block_1</spriteFrame>\n            <spriteFrame>Block_2</spriteFrame>\n            <spriteFrame>Block_3</spriteFrame>\n            <spriteFrame>Block_4</spriteFrame>\n            <spriteFrame>Block_5</spriteFrame>\n            <spriteFrame>Block_6</spriteFrame>\n            <spriteFrame>Block_7</spriteFrame>\n            <spriteFrame>Block_8</spriteFrame>\n            <spriteFrame>Block_9</spriteFrame>\n            <spriteFrame>Block_10</spriteFrame>\n            <spriteFrame>Block_11</spriteFrame>\n            <spriteFrame>Block_12</spriteFrame>\n            <spriteFrame>Block_13</spriteFrame>\n        </animation>\n    </animations>\n    <sprites>\n        <sprite>Block_0</sprite>\n        <sprite>Block_1</sprite>\n        <sprite>Block_2</sprite>\n        <sprite>Block_3</sprite>\n        <sprite>Block_4</sprite>\n        <sprite>Block_5</sprite>\n        <sprite>Block_6</sprite>\n        <sprite>Block_7</sprite>\n        <sprite>Block_8</sprite>\n        <sprite>Block_9</sprite>\n        <sprite>Block_10</sprite>\n        <sprite>Block_11</sprite>\n        <sprite>Block_12</sprite>\n        <sprite>Block_13</sprite>\n    </sprites>\n</root>\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/exploBig20.xml.meta",
    "content": "{\n  \"ver\": \"2.0.0\",\n  \"uuid\": \"5cbbf5a6-82b5-4280-a493-03589fbd86ba\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/font09.fnt",
    "content": "info face=\"Arial\" size=32 bold=0 italic=0 charset=\"\" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1\ncommon lineHeight=38 base=26 scaleW=512 scaleH=512 pages=1 packed=0\npage id=0 file=\"font09.png\"\nchars count=95\nchar id=32   x=0     y=0     width=0     height=0     xoffset=0     yoffset=30    xadvance=8     page=0  chnl=0 \nchar id=64   x=0     y=0     width=32     height=32     xoffset=1     yoffset=6    xadvance=32     page=0  chnl=0 \nchar id=124   x=32     y=0     width=5     height=32     xoffset=2     yoffset=6    xadvance=8     page=0  chnl=0 \nchar id=125   x=37     y=0     width=11     height=32     xoffset=0     yoffset=6    xadvance=10     page=0  chnl=0 \nchar id=123   x=48     y=0     width=11     height=32     xoffset=0     yoffset=6    xadvance=10     page=0  chnl=0 \nchar id=41   x=59     y=0     width=9     height=32     xoffset=2     yoffset=6    xadvance=10     page=0  chnl=0 \nchar id=40   x=68     y=0     width=10     height=32     xoffset=1     yoffset=6    xadvance=10     page=0  chnl=0 \nchar id=36   x=78     y=0     width=17     height=31     xoffset=1     yoffset=4    xadvance=17     page=0  chnl=0 \nchar id=93   x=95     y=0     width=8     height=31     xoffset=0     yoffset=7    xadvance=8     page=0  chnl=0 \nchar id=91   x=103     y=0     width=8     height=31     xoffset=2     yoffset=7    xadvance=8     page=0  chnl=0 \nchar id=106   x=111     y=0     width=9     height=31     xoffset=-2     yoffset=7    xadvance=7     page=0  chnl=0 \nchar id=81   x=120     y=0     width=24     height=27     xoffset=1     yoffset=6    xadvance=24     page=0  chnl=0 \nchar id=38   x=144     y=0     width=21     height=26     xoffset=1     yoffset=6    xadvance=21     page=0  chnl=0 \nchar id=35   x=165     y=0     width=19     height=26     xoffset=0     yoffset=6    xadvance=17     page=0  chnl=0 \nchar id=37   x=184     y=0     width=27     height=26     xoffset=1     yoffset=6    xadvance=28     page=0  chnl=0 \nchar id=92   x=211     y=0     width=10     height=26     xoffset=0     yoffset=6    xadvance=8     page=0  chnl=0 \nchar id=47   x=221     y=0     width=10     height=26     xoffset=0     yoffset=6    xadvance=8     page=0  chnl=0 \nchar id=48   x=231     y=0     width=17     height=26     xoffset=1     yoffset=6    xadvance=17     page=0  chnl=0 \nchar id=57   x=248     y=0     width=17     height=26     xoffset=1     yoffset=6    xadvance=17     page=0  chnl=0 \nchar id=56   x=265     y=0     width=17     height=26     xoffset=1     yoffset=6    xadvance=17     page=0  chnl=0 \nchar id=54   x=282     y=0     width=17     height=26     xoffset=1     yoffset=6    xadvance=17     page=0  chnl=0 \nchar id=51   x=299     y=0     width=17     height=26     xoffset=1     yoffset=6    xadvance=17     page=0  chnl=0 \nchar id=83   x=316     y=0     width=20     height=26     xoffset=1     yoffset=6    xadvance=21     page=0  chnl=0 \nchar id=79   x=336     y=0     width=24     height=26     xoffset=1     yoffset=6    xadvance=24     page=0  chnl=0 \nchar id=71   x=360     y=0     width=23     height=26     xoffset=1     yoffset=6    xadvance=24     page=0  chnl=0 \nchar id=67   x=383     y=0     width=22     height=26     xoffset=1     yoffset=6    xadvance=23     page=0  chnl=0 \nchar id=63   x=405     y=0     width=17     height=25     xoffset=1     yoffset=6    xadvance=17     page=0  chnl=0 \nchar id=53   x=422     y=0     width=17     height=25     xoffset=1     yoffset=7    xadvance=17     page=0  chnl=0 \nchar id=50   x=439     y=0     width=18     height=25     xoffset=0     yoffset=6    xadvance=17     page=0  chnl=0 \nchar id=49   x=457     y=0     width=10     height=25     xoffset=3     yoffset=6    xadvance=17     page=0  chnl=0 \nchar id=121   x=467     y=0     width=17     height=25     xoffset=0     yoffset=13    xadvance=16     page=0  chnl=0 \nchar id=116   x=484     y=0     width=10     height=25     xoffset=0     yoffset=7    xadvance=8     page=0  chnl=0 \nchar id=113   x=494     y=0     width=16     height=25     xoffset=1     yoffset=13    xadvance=17     page=0  chnl=0 \nchar id=112   x=0     y=32     width=16     height=25     xoffset=2     yoffset=13    xadvance=17     page=0  chnl=0 \nchar id=103   x=16     y=32     width=16     height=25     xoffset=1     yoffset=13    xadvance=17     page=0  chnl=0 \nchar id=102   x=32     y=32     width=12     height=25     xoffset=0     yoffset=6    xadvance=8     page=0  chnl=0 \nchar id=100   x=44     y=32     width=16     height=25     xoffset=1     yoffset=7    xadvance=17     page=0  chnl=0 \nchar id=98   x=60     y=32     width=16     height=25     xoffset=2     yoffset=7    xadvance=17     page=0  chnl=0 \nchar id=85   x=76     y=32     width=20     height=25     xoffset=2     yoffset=7    xadvance=23     page=0  chnl=0 \nchar id=74   x=96     y=32     width=15     height=25     xoffset=0     yoffset=7    xadvance=16     page=0  chnl=0 \nchar id=33   x=111     y=32     width=6     height=24     xoffset=2     yoffset=7    xadvance=8     page=0  chnl=0 \nchar id=55   x=117     y=32     width=17     height=24     xoffset=1     yoffset=7    xadvance=17     page=0  chnl=0 \nchar id=52   x=134     y=32     width=18     height=24     xoffset=0     yoffset=7    xadvance=17     page=0  chnl=0 \nchar id=108   x=152     y=32     width=4     height=24     xoffset=2     yoffset=7    xadvance=7     page=0  chnl=0 \nchar id=107   x=156     y=32     width=15     height=24     xoffset=2     yoffset=7    xadvance=16     page=0  chnl=0 \nchar id=105   x=171     y=32     width=4     height=24     xoffset=2     yoffset=7    xadvance=7     page=0  chnl=0 \nchar id=104   x=175     y=32     width=15     height=24     xoffset=2     yoffset=7    xadvance=17     page=0  chnl=0 \nchar id=90   x=190     y=32     width=20     height=24     xoffset=0     yoffset=7    xadvance=19     page=0  chnl=0 \nchar id=89   x=210     y=32     width=23     height=24     xoffset=0     yoffset=7    xadvance=21     page=0  chnl=0 \nchar id=88   x=233     y=32     width=23     height=24     xoffset=0     yoffset=7    xadvance=21     page=0  chnl=0 \nchar id=87   x=256     y=32     width=31     height=24     xoffset=0     yoffset=7    xadvance=30     page=0  chnl=0 \nchar id=86   x=287     y=32     width=23     height=24     xoffset=0     yoffset=7    xadvance=21     page=0  chnl=0 \nchar id=84   x=310     y=32     width=20     height=24     xoffset=0     yoffset=7    xadvance=19     page=0  chnl=0 \nchar id=82   x=330     y=32     width=22     height=24     xoffset=2     yoffset=7    xadvance=23     page=0  chnl=0 \nchar id=80   x=352     y=32     width=19     height=24     xoffset=2     yoffset=7    xadvance=21     page=0  chnl=0 \nchar id=78   x=371     y=32     width=20     height=24     xoffset=2     yoffset=7    xadvance=23     page=0  chnl=0 \nchar id=77   x=391     y=32     width=24     height=24     xoffset=2     yoffset=7    xadvance=26     page=0  chnl=0 \nchar id=76   x=415     y=32     width=16     height=24     xoffset=2     yoffset=7    xadvance=17     page=0  chnl=0 \nchar id=75   x=431     y=32     width=21     height=24     xoffset=2     yoffset=7    xadvance=21     page=0  chnl=0 \nchar id=73   x=452     y=32     width=6     height=24     xoffset=2     yoffset=7    xadvance=8     page=0  chnl=0 \nchar id=72   x=458     y=32     width=20     height=24     xoffset=2     yoffset=7    xadvance=23     page=0  chnl=0 \nchar id=70   x=478     y=32     width=18     height=24     xoffset=2     yoffset=7    xadvance=19     page=0  chnl=0 \nchar id=69   x=0     y=57     width=19     height=24     xoffset=2     yoffset=7    xadvance=21     page=0  chnl=0 \nchar id=68   x=19     y=57     width=21     height=24     xoffset=2     yoffset=7    xadvance=23     page=0  chnl=0 \nchar id=66   x=40     y=57     width=19     height=24     xoffset=2     yoffset=7    xadvance=21     page=0  chnl=0 \nchar id=65   x=59     y=57     width=23     height=24     xoffset=0     yoffset=7    xadvance=21     page=0  chnl=0 \nchar id=59   x=82     y=57     width=6     height=23     xoffset=2     yoffset=13    xadvance=8     page=0  chnl=0 \nchar id=127   x=88     y=57     width=18     height=22     xoffset=4     yoffset=9    xadvance=24     page=0  chnl=0 \nchar id=117   x=106     y=57     width=15     height=19     xoffset=2     yoffset=13    xadvance=17     page=0  chnl=0 \nchar id=115   x=121     y=57     width=15     height=19     xoffset=1     yoffset=13    xadvance=16     page=0  chnl=0 \nchar id=111   x=136     y=57     width=17     height=19     xoffset=1     yoffset=13    xadvance=17     page=0  chnl=0 \nchar id=101   x=153     y=57     width=17     height=19     xoffset=1     yoffset=13    xadvance=17     page=0  chnl=0 \nchar id=99   x=170     y=57     width=16     height=19     xoffset=1     yoffset=13    xadvance=16     page=0  chnl=0 \nchar id=97   x=186     y=57     width=17     height=19     xoffset=1     yoffset=13    xadvance=17     page=0  chnl=0 \nchar id=62   x=203     y=57     width=17     height=18     xoffset=1     yoffset=10    xadvance=18     page=0  chnl=0 \nchar id=60   x=220     y=57     width=17     height=18     xoffset=1     yoffset=10    xadvance=18     page=0  chnl=0 \nchar id=58   x=237     y=57     width=6     height=18     xoffset=2     yoffset=13    xadvance=8     page=0  chnl=0 \nchar id=122   x=243     y=57     width=17     height=18     xoffset=0     yoffset=13    xadvance=16     page=0  chnl=0 \nchar id=120   x=260     y=57     width=17     height=18     xoffset=0     yoffset=13    xadvance=16     page=0  chnl=0 \nchar id=119   x=277     y=57     width=24     height=18     xoffset=0     yoffset=13    xadvance=23     page=0  chnl=0 \nchar id=118   x=301     y=57     width=17     height=18     xoffset=0     yoffset=13    xadvance=16     page=0  chnl=0 \nchar id=114   x=318     y=57     width=11     height=18     xoffset=2     yoffset=13    xadvance=10     page=0  chnl=0 \nchar id=110   x=329     y=57     width=15     height=18     xoffset=2     yoffset=13    xadvance=17     page=0  chnl=0 \nchar id=109   x=344     y=57     width=24     height=18     xoffset=2     yoffset=13    xadvance=26     page=0  chnl=0 \nchar id=43   x=368     y=57     width=17     height=17     xoffset=1     yoffset=11    xadvance=18     page=0  chnl=0 \nchar id=94   x=385     y=57     width=16     height=15     xoffset=0     yoffset=6    xadvance=15     page=0  chnl=0 \nchar id=42   x=401     y=57     width=12     height=12     xoffset=1     yoffset=6    xadvance=12     page=0  chnl=0 \nchar id=61   x=413     y=57     width=17     height=12     xoffset=1     yoffset=13    xadvance=18     page=0  chnl=0 \nchar id=44   x=430     y=57     width=6     height=10     xoffset=2     yoffset=26    xadvance=8     page=0  chnl=0 \nchar id=39   x=436     y=57     width=5     height=10     xoffset=1     yoffset=7    xadvance=6     page=0  chnl=0 \nchar id=34   x=441     y=57     width=10     height=10     xoffset=1     yoffset=7    xadvance=11     page=0  chnl=0 \nchar id=126   x=451     y=57     width=18     height=7     xoffset=1     yoffset=16    xadvance=18     page=0  chnl=0 \nchar id=96   x=469     y=57     width=8     height=7     xoffset=1     yoffset=6    xadvance=10     page=0  chnl=0 \nchar id=45   x=477     y=57     width=10     height=5     xoffset=1     yoffset=20    xadvance=10     page=0  chnl=0 \nchar id=46   x=487     y=57     width=6     height=5     xoffset=2     yoffset=26    xadvance=8     page=0  chnl=0 \nchar id=95   x=0     y=81     width=21     height=4     xoffset=-1     yoffset=34    xadvance=17     page=0  chnl=0 \nkernings count=660\nkerning first=49  second=49  amount=-2\nkerning first=121  second=44  amount=-2\nkerning first=121  second=46  amount=-2\nkerning first=102  second=102  amount=-1\nkerning first=89  second=44  amount=-4\nkerning first=89  second=45  amount=-3\nkerning first=89  second=46  amount=-4\nkerning first=89  second=58  amount=-2\nkerning first=89  second=59  amount=-2\nkerning first=89  second=65  amount=-2\nkerning first=89  second=97  amount=-2\nkerning first=89  second=101  amount=-3\nkerning first=89  second=105  amount=-1\nkerning first=89  second=111  amount=-3\nkerning first=89  second=112  amount=-2\nkerning first=89  second=113  amount=-3\nkerning first=89  second=117  amount=-2\nkerning first=89  second=118  amount=-2\nkerning first=87  second=44  amount=-2\nkerning first=87  second=45  amount=-1\nkerning first=87  second=46  amount=-2\nkerning first=87  second=58  amount=-1\nkerning first=87  second=59  amount=-1\nkerning first=87  second=65  amount=-1\nkerning first=87  second=97  amount=-1\nkerning first=87  second=101  amount=-1\nkerning first=87  second=111  amount=-1\nkerning first=87  second=114  amount=-1\nkerning first=87  second=117  amount=-1\nkerning first=86  second=44  amount=-3\nkerning first=86  second=45  amount=-2\nkerning first=86  second=46  amount=-3\nkerning first=86  second=58  amount=-1\nkerning first=86  second=59  amount=-1\nkerning first=86  second=65  amount=-2\nkerning first=86  second=97  amount=-2\nkerning first=86  second=101  amount=-2\nkerning first=86  second=105  amount=-1\nkerning first=86  second=111  amount=-2\nkerning first=86  second=114  amount=-1\nkerning first=86  second=117  amount=-1\nkerning first=86  second=121  amount=-1\nkerning first=84  second=44  amount=-4\nkerning first=84  second=45  amount=-2\nkerning first=84  second=46  amount=-4\nkerning first=84  second=58  amount=-4\nkerning first=84  second=59  amount=-4\nkerning first=84  second=65  amount=-2\nkerning first=84  second=79  amount=-1\nkerning first=84  second=97  amount=-4\nkerning first=84  second=99  amount=-4\nkerning first=84  second=101  amount=-4\nkerning first=84  second=105  amount=-1\nkerning first=84  second=111  amount=-4\nkerning first=84  second=114  amount=-1\nkerning first=84  second=115  amount=-4\nkerning first=84  second=117  amount=-1\nkerning first=84  second=119  amount=-2\nkerning first=84  second=121  amount=-2\nkerning first=82  second=84  amount=-1\nkerning first=82  second=86  amount=-1\nkerning first=82  second=87  amount=-1\nkerning first=82  second=89  amount=-1\nkerning first=80  second=44  amount=-4\nkerning first=80  second=46  amount=-4\nkerning first=80  second=65  amount=-2\nkerning first=76  second=84  amount=-2\nkerning first=76  second=86  amount=-2\nkerning first=76  second=87  amount=-2\nkerning first=76  second=89  amount=-2\nkerning first=76  second=121  amount=-1\nkerning first=70  second=44  amount=-4\nkerning first=70  second=46  amount=-4\nkerning first=70  second=65  amount=-2\nkerning first=65  second=84  amount=-2\nkerning first=65  second=86  amount=-2\nkerning first=65  second=87  amount=-1\nkerning first=65  second=89  amount=-2\nkerning first=65  second=118  amount=-1\nkerning first=65  second=119  amount=-1\nkerning first=65  second=121  amount=-1\nkerning first=119  second=44  amount=-2\nkerning first=119  second=46  amount=-2\nkerning first=118  second=44  amount=-2\nkerning first=118  second=46  amount=-2\nkerning first=114  second=44  amount=-2\nkerning first=114  second=46  amount=-2\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/font09.fnt.meta",
    "content": "{\n  \"ver\": \"2.1.0\",\n  \"uuid\": \"82614014-72e1-4368-87f7-da96ae02f065\",\n  \"textureUuid\": \"b7924d3b-fb43-47c6-9c9c-16759aa777c0\",\n  \"fontSize\": 32,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/font09.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b7924d3b-fb43-47c6-9c9c-16759aa777c0\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 512,\n  \"height\": 512,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"font09\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"57e71371-f0f7-47ae-b486-a645574b6ccb\",\n      \"rawTextureUuid\": \"b7924d3b-fb43-47c6-9c9c-16759aa777c0\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -0.5,\n      \"offsetY\": 213.5,\n      \"trimX\": 1,\n      \"trimY\": 0,\n      \"width\": 509,\n      \"height\": 85,\n      \"rawWidth\": 512,\n      \"rawHeight\": 512,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/icon.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b08c0a30-856c-422a-8f85-c7e7900e4c8a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 72,\n  \"height\": 72,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"34f83271-3dda-4695-8b31-48719f36aa2a\",\n      \"rawTextureUuid\": \"b08c0a30-856c-422a-8f85-c7e7900e4c8a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 72,\n      \"height\": 72,\n      \"rawWidth\": 72,\n      \"rawHeight\": 72,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/joystick.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ec42e550-6706-4f3f-8c72-b85a4af649a6\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 310,\n  \"height\": 150,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"joystick\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"bff4c027-587b-4784-b0ee-a12f595750bc\",\n      \"rawTextureUuid\": \"ec42e550-6706-4f3f-8c72-b85a4af649a6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 310,\n      \"height\": 150,\n      \"rawWidth\": 310,\n      \"rawHeight\": 150,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres/tank.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"46cce2d1-02bd-452e-af3a-0059c9152ebb\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tank\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"22afb0d0-9551-4363-8acd-ee35396e8493\",\n      \"rawTextureUuid\": \"46cce2d1-02bd-452e-af3a-0059c9152ebb\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0.5,\n      \"trimX\": 4,\n      \"trimY\": 0,\n      \"width\": 32,\n      \"height\": 39,\n      \"rawWidth\": 40,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/otherres.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"67ce9c83-82a7-438d-832d-1f4953d256b7\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/script/end.lua",
    "content": "macro_cclog(\"endgame\")"
  },
  {
    "path": "ChessCardHall/assets/Res90/script/end.lua.meta",
    "content": "{\n  \"ver\": \"1.0.1\",\n  \"uuid\": \"aea19c5c-43b1-4b20-bbf1-9e4207ff7f6d\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/script/init.lua",
    "content": "function __G__TRACKBACK__(msg)\n    print(\"----------------------------------------\")\n    print(\"LUA ERROR: \" .. tostring(msg) .. \"\\n\")\n    print(debug.traceback())\n    print(\"----------------------------------------\")\nend\n\n--tolua_Cocos2d_open()\n--tolua_Cocos2d_kmGLFreeAll00()\nlocal function main()\n   macro_cclog(\"lua main bengin\")\n    -- avoid memory leak\n    collectgarbage(\"setpause\", 100)\n    collectgarbage(\"setstepmul\", 5000)\n\n    local cclog = function(...)\n        print(string.format(...))\n    end\n\n\tlocal visibleSize = CCDirector:sharedDirector():getVisibleSize()\n\n\tcclog(\"init ok\")\n    --require \"hello2\"\n    --cclog(\"result is \" )\n\n macro_cclog(\"lua main end\")\nend\n\n\nxpcall(main, __G__TRACKBACK__)"
  },
  {
    "path": "ChessCardHall/assets/Res90/script/init.lua.meta",
    "content": "{\n  \"ver\": \"1.0.1\",\n  \"uuid\": \"827212c3-4a1a-4cfa-825d-12d81032df05\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/script/intomap1.lua",
    "content": "macro_cclog(\"intomap1\")\nmacro_CORE(\"intomap1\")\n--24*16\nlocal nest1 = CMonsterNest:create(0,15)\nnest1:addMonster(5,2)\n\n\nlocal nest2 = CMonsterNest:create(23,15)\nnest2:addMonster(5,2)\n\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/script/intomap1.lua.meta",
    "content": "{\n  \"ver\": \"1.0.1\",\n  \"uuid\": \"4f3f805b-4d00-4666-ac42-5d4386c66c9b\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/script/intomap2.lua",
    "content": "macro_cclog(\"intomap2\")\nmacro_CORE(\"intomap2\")\n--24*16\nlocal nest1 = CMonsterNest:create(0,15)\nnest1:addMonster(1,3)\n\n\nlocal nest2 = CMonsterNest:create(23,15)\nnest2:addMonster(1,2)\nnest2:addMonster(1,4)\nnest2:addMonster(1,6)"
  },
  {
    "path": "ChessCardHall/assets/Res90/script/intomap2.lua.meta",
    "content": "{\n  \"ver\": \"1.0.1\",\n  \"uuid\": \"8d4c4553-ec72-4547-b9f4-8a2573eeb223\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/script/outmap.lua",
    "content": "macro_cclog(\"outmap\")"
  },
  {
    "path": "ChessCardHall/assets/Res90/script/outmap.lua.meta",
    "content": "{\n  \"ver\": \"1.0.1\",\n  \"uuid\": \"fe53146e-fdf6-4c8f-a3d0-df9b89420e5d\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/script/preintomap.lua",
    "content": "macro_cclog(\"preintomap\")"
  },
  {
    "path": "ChessCardHall/assets/Res90/script/preintomap.lua.meta",
    "content": "{\n  \"ver\": \"1.0.1\",\n  \"uuid\": \"9ebaf5a2-e3f0-4015-bd97-8753ea8383d7\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/script.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"e1c90fe1-8ea9-468f-9c0f-50e262d881f5\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/sound/bullets.wav.meta",
    "content": "{\n  \"ver\": \"2.0.1\",\n  \"uuid\": \"9f575a9d-07f3-41fc-a131-e8ca90341969\",\n  \"downloadMode\": 0,\n  \"duration\": 0.249977,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/sound/explodes.wav.meta",
    "content": "{\n  \"ver\": \"2.0.1\",\n  \"uuid\": \"85a71554-6932-4cff-bdfb-1439c555e8ba\",\n  \"downloadMode\": 0,\n  \"duration\": 1.219048,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/sound/fight.mp3.meta",
    "content": "{\n  \"ver\": \"2.0.1\",\n  \"uuid\": \"2deb8fb9-036f-466f-9ced-69b19c2344e1\",\n  \"downloadMode\": 0,\n  \"duration\": 40.59425,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/sound/oh_no.wav.meta",
    "content": "{\n  \"ver\": \"2.0.1\",\n  \"uuid\": \"ac53eef4-f34e-431f-93f2-da5e796b02f0\",\n  \"downloadMode\": 0,\n  \"duration\": 0.678821,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/sound.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"c2505624-a06d-4f60-b265-dc7e25f8b1db\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/bg1.tmx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<map version=\"1.0\" orientation=\"orthogonal\" width=\"24\" height=\"16\" tilewidth=\"20\" tileheight=\"20\">\n <tileset firstgid=\"1\" name=\"tileall\" tilewidth=\"20\" tileheight=\"20\">\n  <image source=\"tileall.png\" width=\"200\" height=\"20\"/>\n </tileset>\n <layer name=\"块层 1\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJzdUEEOACAI0nXq/x/u7iAqW1semA4LGM3MWgE4ALpHLu5xIh/ljTwdcCv6zI/5zrSZPusOZb6df7f/CugB6o7eKH20M+5EX+XP6Ku/L/Jn+v8JAy3jBNs=\n  </data>\n </layer>\n</map>\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/bg1.tmx.meta",
    "content": "{\n  \"ver\": \"2.0.3\",\n  \"uuid\": \"a386de4e-74af-4874-b9c8-5ed3d55d08a5\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/bg_fail.tmx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<map version=\"1.0\" orientation=\"orthogonal\" width=\"24\" height=\"16\" tilewidth=\"20\" tileheight=\"20\">\n <tileset firstgid=\"1\" name=\"tileall\" tilewidth=\"20\" tileheight=\"20\">\n  <image source=\"tileall.png\" width=\"200\" height=\"20\"/>\n </tileset>\n <layer name=\"块层 1\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJzjYmBg4BrFRGMmNIwujq4WG5uQ+cTaSUgfMepw2UeJ+5nQzMCGqRU+tHD/YDWfUBoYxaOYVAwAxCkNgQ==\n  </data>\n </layer>\n</map>\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/bg_fail.tmx.meta",
    "content": "{\n  \"ver\": \"2.0.3\",\n  \"uuid\": \"ff2d6527-c51a-46ed-b69f-6950235cedf1\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/bg_win.tmx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<map version=\"1.0\" orientation=\"orthogonal\" width=\"24\" height=\"16\" tilewidth=\"20\" tileheight=\"20\">\n <tileset firstgid=\"1\" name=\"tileall\" tilewidth=\"20\" tileheight=\"20\">\n  <image source=\"tileall.png\" width=\"200\" height=\"20\"/>\n </tileset>\n <layer name=\"块层 1\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJzjYmBg4BrFeDEnieo4CehFFyNGDSVipOpDdz+p5hEKB1LUotuBzS343EfILmLimVjzcbmHmuaTkh5H8SgmhAGLAA7V\n  </data>\n </layer>\n</map>\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/bg_win.tmx.meta",
    "content": "{\n  \"ver\": \"2.0.3\",\n  \"uuid\": \"3bf81d5b-ddda-4976-ae49-67bd608eac02\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/bg_winall.tmx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<map version=\"1.0\" orientation=\"orthogonal\" width=\"24\" height=\"16\" tilewidth=\"20\" tileheight=\"20\">\n <tileset firstgid=\"1\" name=\"tileall\" tilewidth=\"20\" tileheight=\"20\">\n  <image source=\"tileall.png\" width=\"200\" height=\"20\"/>\n </tileset>\n <layer name=\"块层 1\" width=\"24\" height=\"16\">\n  <data encoding=\"base64\" compression=\"zlib\">\n   eJzjYmBg4BrFeDEbierYCOhFFyNGDSVi2Pj49KG7n1T3EgoHUtQScjch9xGyi5h4JtZ8fGFLLfNJSY+0xOxQjEuOFHFcZuOyg1zz8ZnHTkXzcWFqmE+MHK6ww+YeAFN+DeQ=\n  </data>\n </layer>\n</map>\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/bg_winall.tmx.meta",
    "content": "{\n  \"ver\": \"2.0.3\",\n  \"uuid\": \"de7069cf-ad98-4e05-8ca6-7c3c7b5bf397\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/bore.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6176b71a-3aad-40bf-91e9-b79bcea341f5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bore\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0f4e3c91-4b54-48b7-9e2c-d905aa51c38f\",\n      \"rawTextureUuid\": \"6176b71a-3aad-40bf-91e9-b79bcea341f5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 80,\n      \"height\": 20,\n      \"rawWidth\": 80,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b2220263-0142-4174-abb7-3fbf636bc099\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 16,\n  \"height\": 16,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"81214550-7d5e-48b3-92ee-2b024f107db2\",\n      \"rawTextureUuid\": \"b2220263-0142-4174-abb7-3fbf636bc099\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -0.5,\n      \"offsetY\": 0.5,\n      \"trimX\": 3,\n      \"trimY\": 3,\n      \"width\": 9,\n      \"height\": 9,\n      \"rawWidth\": 16,\n      \"rawHeight\": 16,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/bullet2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"09bc10de-4bd9-4996-86b8-296426136780\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 24,\n  \"height\": 6,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bullet2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e40ab45a-bb6f-4b1b-96f2-af8138bb3ae7\",\n      \"rawTextureUuid\": \"09bc10de-4bd9-4996-86b8-296426136780\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 24,\n      \"height\": 6,\n      \"rawWidth\": 24,\n      \"rawHeight\": 6,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/df_tank.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2da645dc-a704-43a4-9420-1a034d1fbabf\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 12,\n  \"height\": 12,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"df_tank\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"61ae4117-73ac-4f86-a6a8-7fe41528c3da\",\n      \"rawTextureUuid\": \"2da645dc-a704-43a4-9420-1a034d1fbabf\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 12,\n      \"height\": 12,\n      \"rawWidth\": 12,\n      \"rawHeight\": 12,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/enemy.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<!--Honghaier Game Editor : Version 1.0 -->\n<plist version=\"1.0\">\n<dict>\n<key>frames</key><dict><key>Block_0</key><dict><key>frame</key><string>{{0,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_1</key><dict><key>frame</key><string>{{20,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{20,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_2</key><dict><key>frame</key><string>{{40,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{40,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_3</key><dict><key>frame</key><string>{{60,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{60,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_4</key><dict><key>frame</key><string>{{80,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{80,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_5</key><dict><key>frame</key><string>{{100,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{100,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_6</key><dict><key>frame</key><string>{{120,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{120,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_7</key><dict><key>frame</key><string>{{140,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{140,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_8</key><dict><key>frame</key><string>{{0,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_9</key><dict><key>frame</key><string>{{20,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{20,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_10</key><dict><key>frame</key><string>{{40,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{40,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_11</key><dict><key>frame</key><string>{{60,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{60,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_12</key><dict><key>frame</key><string>{{80,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{80,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_13</key><dict><key>frame</key><string>{{100,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{100,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_14</key><dict><key>frame</key><string>{{120,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{120,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_15</key><dict><key>frame</key><string>{{140,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{140,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_16</key><dict><key>frame</key><string>{{0,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_17</key><dict><key>frame</key><string>{{20,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{20,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_18</key><dict><key>frame</key><string>{{40,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{40,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_19</key><dict><key>frame</key><string>{{60,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{60,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_20</key><dict><key>frame</key><string>{{80,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{80,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_21</key><dict><key>frame</key><string>{{100,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{100,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_22</key><dict><key>frame</key><string>{{120,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{120,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_23</key><dict><key>frame</key><string>{{140,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{140,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_24</key><dict><key>frame</key><string>{{0,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_25</key><dict><key>frame</key><string>{{20,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{20,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_26</key><dict><key>frame</key><string>{{40,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{40,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_27</key><dict><key>frame</key><string>{{60,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{60,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_28</key><dict><key>frame</key><string>{{80,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{80,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_29</key><dict><key>frame</key><string>{{100,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{100,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_30</key><dict><key>frame</key><string>{{120,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{120,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_31</key><dict><key>frame</key><string>{{140,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{140,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_32</key><dict><key>frame</key><string>{{0,80},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,80},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_33</key><dict><key>frame</key><string>{{20,80},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{20,80},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_34</key><dict><key>frame</key><string>{{40,80},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{40,80},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_35</key><dict><key>frame</key><string>{{60,80},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{60,80},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_36</key><dict><key>frame</key><string>{{80,80},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{80,80},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_37</key><dict><key>frame</key><string>{{100,80},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{100,80},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_38</key><dict><key>frame</key><string>{{120,80},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{120,80},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_39</key><dict><key>frame</key><string>{{140,80},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{140,80},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_40</key><dict><key>frame</key><string>{{0,100},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,100},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_41</key><dict><key>frame</key><string>{{20,100},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{20,100},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_42</key><dict><key>frame</key><string>{{40,100},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{40,100},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_43</key><dict><key>frame</key><string>{{60,100},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{60,100},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_44</key><dict><key>frame</key><string>{{80,100},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{80,100},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_45</key><dict><key>frame</key><string>{{100,100},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{100,100},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_46</key><dict><key>frame</key><string>{{120,100},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{120,100},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_47</key><dict><key>frame</key><string>{{140,100},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{140,100},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_48</key><dict><key>frame</key><string>{{0,120},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,120},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_49</key><dict><key>frame</key><string>{{20,120},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{20,120},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_50</key><dict><key>frame</key><string>{{40,120},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{40,120},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_51</key><dict><key>frame</key><string>{{60,120},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{60,120},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_52</key><dict><key>frame</key><string>{{80,120},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{80,120},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_53</key><dict><key>frame</key><string>{{100,120},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{100,120},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_54</key><dict><key>frame</key><string>{{120,120},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{120,120},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_55</key><dict><key>frame</key><string>{{140,120},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{140,120},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_56</key><dict><key>frame</key><string>{{0,140},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,140},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_57</key><dict><key>frame</key><string>{{20,140},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{20,140},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_58</key><dict><key>frame</key><string>{{40,140},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{40,140},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_59</key><dict><key>frame</key><string>{{60,140},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{60,140},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_60</key><dict><key>frame</key><string>{{80,140},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{80,140},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_61</key><dict><key>frame</key><string>{{100,140},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{100,140},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_62</key><dict><key>frame</key><string>{{120,140},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{120,140},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_63</key><dict><key>frame</key><string>{{140,140},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{140,140},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict></dict><key>metadata</key><dict><key>format</key><integer>2</integer><key>realTextureFileName</key><string>enemy.png</string><key>size</key><string>{160,160}</string><key>TextureFileName</key><string>enemy.png</string></dict></dict></plist>"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/enemy.plist.meta",
    "content": "{\n  \"ver\": \"1.2.4\",\n  \"uuid\": \"dc9daed2-d5fe-4401-a400-4a3d96feabe7\",\n  \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n  \"size\": {\n    \"width\": 160,\n    \"height\": 160\n  },\n  \"type\": \"Texture Packer\",\n  \"subMetas\": {\n    \"Block_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a4f6000e-e9f9-4df6-a68b-c41fa0a669b1\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2bd48b7a-d47f-42bf-9b47-079d5c44afea\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"68a086d9-7131-42c2-a126-c4d9853908e8\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"dc3688ce-fb7f-4e5f-9f54-a7ee52f2d788\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4ab421d8-1015-4828-9833-6c8d8c4b9d00\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"39d07c16-d683-4792-9bce-b62e43e45651\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a1212028-d261-49d9-bb7b-f08eb736b43e\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"42d134b7-0350-41ab-bb7a-20fb211599ae\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_8\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6367adec-1de4-4ea3-90cc-0099f3e0e0af\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_9\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d173369b-dc91-409f-8efb-a9035e51a964\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_10\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ad39bafd-f98a-45e0-84ec-5e32f28d9782\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_11\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a5099fd2-8f94-4743-b6f7-c302665541c0\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_12\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"619f9887-c917-4615-aaf5-2b0377c23c7c\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_13\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f810e0fe-73c4-4831-a31b-17ebf7623e0f\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_14\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"13a64fa0-ab5e-484d-b343-6a2503d1fc18\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_15\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"be2e3b18-5266-44ba-b982-79332e732e1a\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_16\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"aa21daff-ae10-4df0-ab46-a9be2a46ea3c\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_17\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ec11043e-3375-41ec-8648-5104d5e77670\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_18\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"068d3b5b-df18-497b-9d5d-05cf621e14e9\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_19\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b8352987-1d62-48cf-b8fd-91a0422ff4d9\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_20\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"fd854eda-fcce-4b72-afb9-75606beec46e\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_21\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2b9440a1-b134-4257-b105-0f0ae5cf48b1\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_22\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3df8c818-cefe-4b22-8bf4-8a28027a9313\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_23\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"310962c4-dd9e-4abe-9620-0f8c22d2d133\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_24\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1e40fede-1c2e-4aee-958e-c8be6b57cc38\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_25\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"70c22a65-ea19-47a9-97b2-98c8afd6f720\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_26\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7e202ac9-413e-4d1f-ac7b-225d3cd1bd9d\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_27\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ef6ebf4a-7370-4981-ae38-af9bfede437b\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_28\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cc259cb8-d105-421e-8b08-9f6a8232cb67\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_29\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"66a2df60-98f0-42e6-963a-57ca2edd7a05\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_30\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"37961a88-b199-4216-ac40-4a7b4af5dd33\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_31\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9759b007-ce8b-4fac-9743-64b3f566b804\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_32\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4c5a8040-adda-48d2-a299-07ceb23c81b6\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 80,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_33\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1c1f3a57-5acd-46da-935f-5e530f57f67d\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 80,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_34\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5e62c6a3-7ccc-4342-b36a-ca86265e10d4\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 80,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_35\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"91cef0cd-63dc-4798-adda-c40d83928436\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 80,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_36\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4bc4c2b0-f494-4ced-8a4a-a8bdd24530ff\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 80,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_37\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f9df533a-0f5e-438c-baf5-3ea9937c0945\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 80,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_38\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1b7d23b4-113b-4180-940a-04b52906e605\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 80,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_39\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4454bb35-a899-4979-b261-9b1780a6e68e\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 80,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_40\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e67f2f25-35c1-47d7-9cf5-71ec2c687d1b\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 100,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_41\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"da5391cb-02f4-47cc-a49c-4a4393a1f8d8\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 100,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_42\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"563f2373-8037-47a5-a1db-a9f0ccfd0b95\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 100,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_43\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"50b48894-7628-4545-833f-a5cb6d1e640a\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 100,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_44\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c292a701-f665-4941-b137-50af4402af15\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 100,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_45\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1c4ea796-f14b-4356-b41c-1d46f965afc2\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 100,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_46\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"fe11a6bb-5fe4-4411-9c8f-d4bcb1dce485\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 100,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_47\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f0b37cfa-8e84-4edb-b21b-e248621d3e46\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 100,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_48\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cd081f14-1dbb-4767-b705-2e6611f6af5c\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 120,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_49\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9c4792cc-4b47-4404-b855-3acb02729260\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 120,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_50\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e9a49d92-5754-493c-80e9-b58f89309d18\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 120,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_51\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f8bdef6f-5b9b-4d20-98a3-696dd924852b\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 120,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_52\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"76849d1b-4780-4340-8a43-1bbd7cad8b32\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 120,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_53\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"bfcfbf08-2dfd-4cb8-b7f4-0788557fe93c\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 120,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_54\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5cc9a8f2-3298-4947-90aa-5274a6f817de\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 120,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_55\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7dd3c556-fc4c-401c-8ddc-3ff4b5666619\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 120,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_56\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ef0e6fb7-b14f-48aa-b3fb-c1792b20a3b4\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 140,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_57\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f77eecd5-a730-4313-8585-608689f2d86b\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 140,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_58\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6244573a-6b23-41e4-81f6-c380b55c0983\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 140,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_59\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"06a1edd7-266b-455b-8648-13d22095b6bc\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 140,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_60\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7316ae8f-4eb9-4997-8d23-5b17d155170a\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 140,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_61\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3677a2fd-f2c6-42cf-ab18-96d07d93ab34\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 140,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_62\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6e19b41d-1cd0-4fd4-a1d8-ba591bb2b66e\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 140,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_63\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"23143fc6-c97d-400a-85bc-13245af3c943\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 140,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/enemy.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 160,\n  \"height\": 160,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"enemy\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4e9a4351-6c33-4cce-87db-164330fdec74\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 160,\n      \"height\": 160,\n      \"rawWidth\": 160,\n      \"rawHeight\": 160,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/enemy1.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>frames</key>\n\t<dict>\n\t\t<key>Block_0_0</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{0,0},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{0,0},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_0_1</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{20,0},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{20,0},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_0_2</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{40,0},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{40,0},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_0_3</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{60,0},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{60,0},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_0_4</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{80,0},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{80,0},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_0_5</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{100,0},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{100,0},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_0_6</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{120,0},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{120,0},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_0_7</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{140,0},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{140,0},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_1_0</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{0,20},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{0,20},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_1_1</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{20,20},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{20,20},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_1_2</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{40,20},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{40,20},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_1_3</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{60,20},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{60,20},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_1_4</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{80,20},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{80,20},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_1_5</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{100,20},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{100,20},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_1_6</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{120,20},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{120,20},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_1_7</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{140,20},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{140,20},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_2_0</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{0,40},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{0,40},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_2_1</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{20,40},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{20,40},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_2_2</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{40,40},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{40,40},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_2_3</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{60,40},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{60,40},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_2_4</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{80,40},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{80,40},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_2_5</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{100,40},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{100,40},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_2_6</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{120,40},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{120,40},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_2_7</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{140,40},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{140,40},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_3_0</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{0,60},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{0,60},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_3_1</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{20,60},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{20,60},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_3_2</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{40,60},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{40,60},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_3_3</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{60,60},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{60,60},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_3_4</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{80,60},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{80,60},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_3_5</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{100,60},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{100,60},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_3_6</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{120,60},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{120,60},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t\t<key>Block_3_7</key>\n\t\t<dict>\n\t\t\t<key>frame</key>\n\t\t\t<string>{{140,60},{20,20}}</string>\n\t\t\t<key>offset</key>\n\t\t\t<string>{0,0}</string>\n\t\t\t<key>rotated</key>\n\t\t\t<false/>\n\t\t\t<key>sourceColorRect</key>\n\t\t\t<string>{{140,60},{20,20}}</string>\n\t\t\t<key>sourceSize</key>\n\t\t\t<string>{20,20}</string>\n\t\t</dict>\n\t</dict>\n\t<key>metadata</key>\n\t<dict>\n\t\t<key>TextureFileName</key>\n\t\t<string>enemy.png</string>\n\t\t<key>format</key>\n\t\t<integer>2</integer>\n\t\t<key>realTextureFileName</key>\n\t\t<string>enemy.png</string>\n\t\t<key>size</key>\n\t\t<string>{160,160}</string>\n\t</dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/enemy1.plist.meta",
    "content": "{\n  \"ver\": \"1.2.4\",\n  \"uuid\": \"164a17d4-5ed0-46e1-96cb-44176fe1517b\",\n  \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n  \"size\": {\n    \"width\": 160,\n    \"height\": 160\n  },\n  \"type\": \"Texture Packer\",\n  \"subMetas\": {\n    \"Block_0_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d3fff5d1-548b-4080-a2f5-30d42824aa21\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_0_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"08406e2d-cb69-4278-ad08-9160dc50aea4\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_0_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0725bf15-eab1-4a8b-b315-fc1e03723d2a\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_0_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b7aa8257-8833-4002-9008-ffb5aaf7bc9c\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_0_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2c00133f-2272-4100-888a-ad1ecc1658f0\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_0_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b0ef2e0a-adb8-41b7-903f-babffe55f28d\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_0_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"14b46d4f-d427-4895-8965-8bbc7b91163c\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_0_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"966bd8f4-86f8-46cb-b9b2-2da83166d0d4\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2716df60-3eeb-4f76-9493-bde3ce250697\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d0ebf165-9a84-4930-94c2-a09265c36e62\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"fad1c128-ab4b-4138-a09c-acafbebe7ff1\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6c044fd1-fdc1-42f8-9593-33f9fd410353\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f47b446e-2600-4d45-bb77-8782090c3f1b\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"fd7cfe39-a590-46bc-beab-3e073eddc0ac\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"be3ee1ff-fd09-46b8-bd38-be26a879310c\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cf661059-e93a-452e-9a7a-4504a758369f\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1a7560db-b09b-4aa6-9cf9-f78dc61dd224\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8c81c8c0-1a88-4a59-9381-63593c417072\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"15641b6b-f207-4cc3-9fab-ca8da3cb8353\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"af10265c-d395-49f0-9071-64827c6d1ed2\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d0a765d7-8a0c-40b3-b5ed-dc15c427d342\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"fe1f4099-f29e-4726-8913-9bd6adcdea95\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e59a963b-84ee-429a-8d99-fe16a7a12a24\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2b31ad60-a791-49c9-a97b-5f21b908fccf\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d6ffe39d-bfb9-494b-9142-505a1032b2f4\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c6067eed-bde3-48f5-8a22-6c1b1af2e1a6\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1f419e87-5156-4e1f-83d1-dcd2fdfd01d6\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6598fd29-5bf7-467a-90c9-e5bcdf5f401a\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"db0889fa-a32c-4d08-84d1-8152124f3d4c\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f2f6d156-7872-40ca-9d36-e4d0dce4a4b6\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"752b1d1f-e609-40a9-b83a-a0aacf405265\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b1b0413a-a265-4d0c-9eba-ab8824686d0f\",\n      \"rawTextureUuid\": \"e99a1686-eda4-4f4e-8d6e-4456a327413b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/enemy1.rl",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<root>\n    <plists>\n        <plist>tankres/enemy.plist</plist>\n    </plists>\n    <animations>\n        <animation>\n            <name>walk</name>\n\t    <dir>up</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_0</spriteFrame>\n            <spriteFrame>Block_1</spriteFrame>\n        </animation>\n        <animation>\n            <name>walk</name>\n\t    <dir>right</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_8</spriteFrame>\n            <spriteFrame>Block_9</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>walk</name>\n            <dir>down</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_16</spriteFrame>\n            <spriteFrame>Block_17</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>walk</name>\n            <dir>left</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_24</spriteFrame>\n            <spriteFrame>Block_25</spriteFrame>\n        </animation>\n\n\t <animation>\n            <name>stand</name>\n\t    <dir>up</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_0</spriteFrame>\n        </animation>\n        <animation>\n            <name>stand</name>\n\t    <dir>right</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_8</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>stand</name>\n            <dir>down</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_16</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>stand</name>\n            <dir>left</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_24</spriteFrame>\n        </animation>\n    </animations>\n    <sprites>\n        <sprite>Block_0</sprite>\n        <sprite>Block_1</sprite>\n        <sprite>Block_8</sprite>\n        <sprite>Block_9</sprite>\n        <sprite>Block_16</sprite>\n        <sprite>Block_17</sprite>\n        <sprite>Block_24</sprite>\n        <sprite>Block_25</sprite>\n    </sprites>\n</root>\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/enemy1.rl.meta",
    "content": "{\n  \"ver\": \"1.0.1\",\n  \"uuid\": \"c2cff7bb-c47c-4101-8408-3e6622f50366\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/enemy2.rl",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<root>\n    <plists>\n        <plist>tankres/enemy.plist</plist>\n    </plists>\n    <animations>\n        <animation>\n            <name>walk</name>\n\t    <dir>up</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_2</spriteFrame>\n            <spriteFrame>Block_3</spriteFrame>\n        </animation>\n        <animation>\n            <name>walk</name>\n\t    <dir>right</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_10</spriteFrame>\n            <spriteFrame>Block_11</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>walk</name>\n            <dir>down</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_18</spriteFrame>\n            <spriteFrame>Block_19</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>walk</name>\n            <dir>left</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_26</spriteFrame>\n            <spriteFrame>Block_27</spriteFrame>\n        </animation>\n\n\t <animation>\n            <name>stand</name>\n\t    <dir>up</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_2</spriteFrame>\n        </animation>\n        <animation>\n            <name>stand</name>\n\t    <dir>right</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_10</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>stand</name>\n            <dir>down</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_18</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>stand</name>\n            <dir>left</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_26</spriteFrame>\n        </animation>\n    </animations>\n    <sprites>\n        <sprite>Block_2</sprite>\n        <sprite>Block_3</sprite>\n        <sprite>Block_10</sprite>\n        <sprite>Block_11</sprite>\n        <sprite>Block_18</sprite>\n        <sprite>Block_19</sprite>\n        <sprite>Block_26</sprite>\n        <sprite>Block_27</sprite>\n    </sprites>\n</root>\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/enemy2.rl.meta",
    "content": "{\n  \"ver\": \"1.0.1\",\n  \"uuid\": \"580d7df3-a1fa-4f9e-b4a5-706a59fd9f97\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/enemy5.rl",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<root>\n    <plists>\n        <plist>tankres/enemy.plist</plist>\n    </plists>\n    <animations>\n        <animation>\n            <name>walk</name>\n\t    <dir>up</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_32</spriteFrame>\n            <spriteFrame>Block_33</spriteFrame>\n        </animation>\n        <animation>\n            <name>walk</name>\n\t    <dir>right</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_40</spriteFrame>\n            <spriteFrame>Block_41</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>walk</name>\n            <dir>down</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_48</spriteFrame>\n            <spriteFrame>Block_49</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>walk</name>\n            <dir>left</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_56</spriteFrame>\n            <spriteFrame>Block_57</spriteFrame>\n        </animation>\n\n\t <animation>\n            <name>stand</name>\n\t    <dir>up</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_32</spriteFrame>\n        </animation>\n        <animation>\n            <name>stand</name>\n\t    <dir>right</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_40</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>stand</name>\n            <dir>down</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_48</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>stand</name>\n            <dir>left</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_56</spriteFrame>\n        </animation>\n    </animations>\n    <sprites>\n        <sprite>Block_32</sprite>\n        <sprite>Block_33</sprite>\n        <sprite>Block_40</sprite>\n        <sprite>Block_41</sprite>\n        <sprite>Block_48</sprite>\n        <sprite>Block_49</sprite>\n        <sprite>Block_56</sprite>\n        <sprite>Block_57</sprite>\n    </sprites>\n</root>\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/enemy5.rl.meta",
    "content": "{\n  \"ver\": \"1.0.1\",\n  \"uuid\": \"6790456b-771f-4bc9-91c2-a45a0e202672\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/explode2.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<!--Honghaier Game Editor : Version 1.0 -->\n<plist version=\"1.0\">\n<dict>\n<key>frames</key><dict><key>Block_0</key><dict><key>frame</key><string>{{0,0},{25,25}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,0},{25,25}}</string><key>sourceSize</key><string>{25,25}</string></dict><key>Block_1</key><dict><key>frame</key><string>{{25,0},{25,25}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{25,0},{25,25}}</string><key>sourceSize</key><string>{25,25}</string></dict><key>Block_2</key><dict><key>frame</key><string>{{50,0},{25,25}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{50,0},{25,25}}</string><key>sourceSize</key><string>{25,25}</string></dict></dict><key>metadata</key><dict><key>format</key><integer>2</integer><key>realTextureFileName</key><string>explode2.png</string><key>size</key><string>{75,75}</string><key>TextureFileName</key><string>explode2.png</string></dict></dict></plist>"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/explode2.plist.meta",
    "content": "{\n  \"ver\": \"1.2.4\",\n  \"uuid\": \"50ff4865-6bff-44d2-81af-8792aa0984bb\",\n  \"rawTextureUuid\": \"e4fbdc1e-304f-484f-8c3f-2a88d00a71bc\",\n  \"size\": {\n    \"width\": 75,\n    \"height\": 75\n  },\n  \"type\": \"Texture Packer\",\n  \"subMetas\": {\n    \"Block_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4e0c7ab9-1f1b-4afc-b767-bc2fd4091359\",\n      \"rawTextureUuid\": \"e4fbdc1e-304f-484f-8c3f-2a88d00a71bc\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 25,\n      \"height\": 25,\n      \"rawWidth\": 25,\n      \"rawHeight\": 25,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"fc020178-8333-4054-a44a-6d6b4a4835ec\",\n      \"rawTextureUuid\": \"e4fbdc1e-304f-484f-8c3f-2a88d00a71bc\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 25,\n      \"trimY\": 0,\n      \"width\": 25,\n      \"height\": 25,\n      \"rawWidth\": 25,\n      \"rawHeight\": 25,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f6a8b08d-1e8b-4745-a338-bca42e0f1679\",\n      \"rawTextureUuid\": \"e4fbdc1e-304f-484f-8c3f-2a88d00a71bc\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 50,\n      \"trimY\": 0,\n      \"width\": 25,\n      \"height\": 25,\n      \"rawWidth\": 25,\n      \"rawHeight\": 25,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/explode2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e4fbdc1e-304f-484f-8c3f-2a88d00a71bc\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 75,\n  \"height\": 25,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"explode2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"df991dcb-f101-41e5-846f-b198c02decef\",\n      \"rawTextureUuid\": \"e4fbdc1e-304f-484f-8c3f-2a88d00a71bc\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -3.5,\n      \"offsetY\": -0.5,\n      \"trimX\": 0,\n      \"trimY\": 1,\n      \"width\": 68,\n      \"height\": 24,\n      \"rawWidth\": 75,\n      \"rawHeight\": 25,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/player1.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<!--Honghaier Game Editor : Version 1.0 -->\n<plist version=\"1.0\">\n<dict>\n<key>frames</key><dict><key>Block_0_0</key><dict><key>frame</key><string>{{0,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_0_1</key><dict><key>frame</key><string>{{20,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{20,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_0_2</key><dict><key>frame</key><string>{{40,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{40,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_0_3</key><dict><key>frame</key><string>{{60,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{60,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_0_4</key><dict><key>frame</key><string>{{80,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{80,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_0_5</key><dict><key>frame</key><string>{{100,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{100,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_0_6</key><dict><key>frame</key><string>{{120,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{120,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_0_7</key><dict><key>frame</key><string>{{140,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{140,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_1_0</key><dict><key>frame</key><string>{{0,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_1_1</key><dict><key>frame</key><string>{{20,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{20,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_1_2</key><dict><key>frame</key><string>{{40,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{40,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_1_3</key><dict><key>frame</key><string>{{60,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{60,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_1_4</key><dict><key>frame</key><string>{{80,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{80,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_1_5</key><dict><key>frame</key><string>{{100,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{100,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_1_6</key><dict><key>frame</key><string>{{120,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{120,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_1_7</key><dict><key>frame</key><string>{{140,20},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{140,20},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_2_0</key><dict><key>frame</key><string>{{0,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_2_1</key><dict><key>frame</key><string>{{20,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{20,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_2_2</key><dict><key>frame</key><string>{{40,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{40,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_2_3</key><dict><key>frame</key><string>{{60,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{60,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_2_4</key><dict><key>frame</key><string>{{80,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{80,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_2_5</key><dict><key>frame</key><string>{{100,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{100,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_2_6</key><dict><key>frame</key><string>{{120,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{120,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_2_7</key><dict><key>frame</key><string>{{140,40},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{140,40},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_3_0</key><dict><key>frame</key><string>{{0,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_3_1</key><dict><key>frame</key><string>{{20,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{20,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_3_2</key><dict><key>frame</key><string>{{40,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{40,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_3_3</key><dict><key>frame</key><string>{{60,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{60,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_3_4</key><dict><key>frame</key><string>{{80,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{80,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_3_5</key><dict><key>frame</key><string>{{100,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{100,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_3_6</key><dict><key>frame</key><string>{{120,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{120,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>Block_3_7</key><dict><key>frame</key><string>{{140,60},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{140,60},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict></dict><key>metadata</key><dict><key>format</key><integer>2</integer><key>realTextureFileName</key><string>player1.png</string><key>size</key><string>{160,160}</string><key>TextureFileName</key><string>player1.png</string></dict></dict></plist>"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/player1.plist.meta",
    "content": "{\n  \"ver\": \"1.2.4\",\n  \"uuid\": \"8f8149ae-6c73-497a-bad9-d4dacc9cca6a\",\n  \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n  \"size\": {\n    \"width\": 160,\n    \"height\": 160\n  },\n  \"type\": \"Texture Packer\",\n  \"subMetas\": {\n    \"Block_0_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8730aa19-746f-4ed8-b893-e148fbd25e99\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_0_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a2505480-7f2d-4ca9-9cad-796d80845c65\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_0_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2a41da29-fd90-45d4-9007-7e8d375d1180\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_0_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"80331997-f36b-45a2-97d9-2d152c2a7866\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_0_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ddc3d30b-8107-4dd6-9a1f-7b79a31d23b3\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_0_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8982e881-0ef5-4650-b08a-d6841766a1c2\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_0_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8dc2afd8-d203-415e-941e-e83fe0f66bfc\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_0_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"88c48c63-e79b-4447-af56-3b716f0eb10c\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"23e3c0e6-1055-4abf-b2fe-4f70efdef29e\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1e06acf5-8e6e-4b58-89ce-52132f81b8c7\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"af11f9f4-8c28-4591-84f9-5a04210c050a\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f36422ac-37b6-4178-879f-1b6740c83fac\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2e618eed-f063-4d4d-8073-d00d79966c73\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"08de1051-a094-4a79-ae3e-cad8da4c509e\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1699e237-6df4-4ab0-83f8-139440d675a5\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_1_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"fc2bd07f-a015-4f44-9c92-2cbf3e7e8343\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 20,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cf402f2a-144e-4238-b7bc-13d129bd7550\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6aaa6c0b-efa7-4b6e-8f87-207a294ba97e\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0c74ebf4-7153-4d76-9d93-d8bb9418eb27\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e7097843-83a7-4b4a-90cc-d8b53b0e12d4\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"eb93818b-7e8d-4e8c-b9e9-73854c97b6f2\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e183e66f-da88-440b-837c-e6c0c8343b5f\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"907aef53-d506-40e0-9914-be60e6c9798f\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_2_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7ae966bc-bf75-42aa-82c8-c272d92c587f\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 40,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"02832da8-db8c-43e6-8169-8664abd54d42\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"52be210d-bca6-4479-8263-99381959167d\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5a2d3193-d26c-42ea-8325-ae550b9a9c57\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3e25caee-fb34-4ccb-937e-f8d4580738f9\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cfc248f3-415c-49a2-83c4-2c6aef33032d\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"30cb4f30-62c5-4275-b98c-14d3995ec895\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2d4f942e-b095-4775-a55b-22ded4a3ba0b\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"Block_3_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2ed82c34-aa8a-4b79-af5a-6ae8e43772bc\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 140,\n      \"trimY\": 60,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/player1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 160,\n  \"height\": 80,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"player1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ee4c5150-bafc-406d-b166-4e98ca89d84d\",\n      \"rawTextureUuid\": \"8b31f2a4-d0ce-4bc3-8fa0-d4e7ae3300bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 160,\n      \"height\": 80,\n      \"rawWidth\": 160,\n      \"rawHeight\": 80,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/playerAni1.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<root>\n    <plists>\n        <plist>tankres/player1.plist</plist>\n    </plists>\n    <animations>\n        <animation>\n            <name>up1</name>\n            <delay>0.3</delay>\n            <spriteFrame>Block_0_0</spriteFrame>\n            <spriteFrame>Block_0_1</spriteFrame>\n        </animation>\n        <animation>\n            <name>right1</name>\n            <delay>0.3</delay>\n            <spriteFrame>Block_1_0</spriteFrame>\n            <spriteFrame>Block_1_1</spriteFrame>\n        </animation>\n        <animation>\n            <name>down1</name>\n            <delay>0.3</delay>\n            <spriteFrame>Block_2_0</spriteFrame>\n            <spriteFrame>Block_2_1</spriteFrame>\n        </animation>\n        <animation>\n            <name>left1</name>\n            <delay>0.3</delay>\n            <spriteFrame>Block_3_0</spriteFrame>\n            <spriteFrame>Block_3_1</spriteFrame>\n        </animation>\n    </animations>\n    <sprites>\n        <sprite>Block_0_0</sprite>\n        <sprite>Block_0_1</sprite>\n        <sprite>Block_0_2</sprite>\n        <sprite>Block_0_3</sprite>\n        <sprite>Block_0_4</sprite>\n        <sprite>Block_0_5</sprite>\n        <sprite>Block_0_6</sprite>\n        <sprite>Block_0_7</sprite>\n        <sprite>Block_1_0</sprite>\n        <sprite>Block_1_1</sprite>\n        <sprite>Block_1_2</sprite>\n        <sprite>Block_1_3</sprite>\n        <sprite>Block_1_4</sprite>\n        <sprite>Block_1_5</sprite>\n        <sprite>Block_1_6</sprite>\n        <sprite>Block_1_7</sprite>\n        <sprite>Block_2_0</sprite>\n        <sprite>Block_2_1</sprite>\n        <sprite>Block_2_2</sprite>\n        <sprite>Block_2_3</sprite>\n        <sprite>Block_2_4</sprite>\n        <sprite>Block_2_5</sprite>\n        <sprite>Block_2_6</sprite>\n        <sprite>Block_2_7</sprite>\n        <sprite>Block_3_0</sprite>\n        <sprite>Block_3_1</sprite>\n        <sprite>Block_3_2</sprite>\n        <sprite>Block_3_3</sprite>\n        <sprite>Block_3_4</sprite>\n        <sprite>Block_3_5</sprite>\n        <sprite>Block_3_6</sprite>\n        <sprite>Block_3_7</sprite>\n    </sprites>\n</root>\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/playerAni1.xml.meta",
    "content": "{\n  \"ver\": \"2.0.0\",\n  \"uuid\": \"189081e7-a3f0-4d5e-a9d8-1f4873c1c9cf\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/role1.rl",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<root>\n    <plists>\n        <plist>tankres/player1.plist</plist>\n    </plists>\n    <animations>\n        <animation>\n            <name>walk</name>\n\t    <dir>up</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_0_0</spriteFrame>\n            <spriteFrame>Block_0_1</spriteFrame>\n        </animation>\n        <animation>\n            <name>walk</name>\n\t    <dir>right</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_1_0</spriteFrame>\n            <spriteFrame>Block_1_1</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>walk</name>\n            <dir>down</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_2_0</spriteFrame>\n            <spriteFrame>Block_2_1</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>walk</name>\n            <dir>left</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_3_0</spriteFrame>\n            <spriteFrame>Block_3_1</spriteFrame>\n        </animation>\n\n\t <animation>\n            <name>stand</name>\n\t    <dir>up</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_0_0</spriteFrame>\n        </animation>\n        <animation>\n            <name>stand</name>\n\t    <dir>right</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_1_0</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>stand</name>\n            <dir>down</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_2_0</spriteFrame>\n        </animation>\n        <animation>\n\t    <name>stand</name>\n            <dir>left</dir>\n            <delay>0.1</delay>\n            <spriteFrame>Block_3_0</spriteFrame>\n        </animation>\n    </animations>\n    <sprites>\n        <sprite>Block_0_0</sprite>\n        <sprite>Block_0_1</sprite>\n        <sprite>Block_0_2</sprite>\n        <sprite>Block_0_3</sprite>\n        <sprite>Block_0_4</sprite>\n        <sprite>Block_0_5</sprite>\n        <sprite>Block_0_6</sprite>\n        <sprite>Block_0_7</sprite>\n        <sprite>Block_1_0</sprite>\n        <sprite>Block_1_1</sprite>\n        <sprite>Block_1_2</sprite>\n        <sprite>Block_1_3</sprite>\n        <sprite>Block_1_4</sprite>\n        <sprite>Block_1_5</sprite>\n        <sprite>Block_1_6</sprite>\n        <sprite>Block_1_7</sprite>\n        <sprite>Block_2_0</sprite>\n        <sprite>Block_2_1</sprite>\n        <sprite>Block_2_2</sprite>\n        <sprite>Block_2_3</sprite>\n        <sprite>Block_2_4</sprite>\n        <sprite>Block_2_5</sprite>\n        <sprite>Block_2_6</sprite>\n        <sprite>Block_2_7</sprite>\n        <sprite>Block_3_0</sprite>\n        <sprite>Block_3_1</sprite>\n        <sprite>Block_3_2</sprite>\n        <sprite>Block_3_3</sprite>\n        <sprite>Block_3_4</sprite>\n        <sprite>Block_3_5</sprite>\n        <sprite>Block_3_6</sprite>\n        <sprite>Block_3_7</sprite>\n    </sprites>\n</root>\n"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/role1.rl.meta",
    "content": "{\n  \"ver\": \"1.0.1\",\n  \"uuid\": \"602cfb29-a860-4e83-bce7-23d89b173451\",\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/tank.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9019ffe5-c115-40a1-a47e-1735490dd21d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 10,\n  \"height\": 10,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tank\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7a535cd1-b9d9-405e-99dd-6a5ac702ed8d\",\n      \"rawTextureUuid\": \"9019ffe5-c115-40a1-a47e-1735490dd21d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 10,\n      \"height\": 10,\n      \"rawWidth\": 10,\n      \"rawHeight\": 10,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/tile.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<!--Honghaier Game Editor : Version 1.0 -->\n<plist version=\"1.0\">\n<dict>\n<key>frames</key><dict><key>tile_0</key><dict><key>frame</key><string>{{0,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{0,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>tile_1</key><dict><key>frame</key><string>{{20,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{20,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>tile_2</key><dict><key>frame</key><string>{{40,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{40,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>tile_3</key><dict><key>frame</key><string>{{60,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{60,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>tile_4</key><dict><key>frame</key><string>{{80,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{80,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>tile_5</key><dict><key>frame</key><string>{{100,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{100,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict><key>tile_6</key><dict><key>frame</key><string>{{120,0},{20,20}}</string><key>offset</key><string>{0,0}</string><key>rotated</key><false/><key>sourceColorRect</key><string>{{120,0},{20,20}}</string><key>sourceSize</key><string>{20,20}</string></dict></dict><key>metadata</key><dict><key>format</key><integer>2</integer><key>realTextureFileName</key><string>tile.png</string><key>size</key><string>{140,140}</string><key>TextureFileName</key><string>tile.png</string></dict></dict></plist>"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/tile.plist.meta",
    "content": "{\n  \"ver\": \"1.2.4\",\n  \"uuid\": \"9d178648-1457-4c81-8558-9a0592151af3\",\n  \"rawTextureUuid\": \"7e2ec571-15aa-4573-a47e-e0efb46cb4ff\",\n  \"size\": {\n    \"width\": 140,\n    \"height\": 140\n  },\n  \"type\": \"Texture Packer\",\n  \"subMetas\": {\n    \"tile_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f9ea5161-e603-49e6-abe8-d8ef72b6aa13\",\n      \"rawTextureUuid\": \"7e2ec571-15aa-4573-a47e-e0efb46cb4ff\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"tile_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"33e76ed6-4bd3-43d8-b486-725866b8c99e\",\n      \"rawTextureUuid\": \"7e2ec571-15aa-4573-a47e-e0efb46cb4ff\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"tile_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"76c5b662-6225-4aed-8059-8796a257cf42\",\n      \"rawTextureUuid\": \"7e2ec571-15aa-4573-a47e-e0efb46cb4ff\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 40,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"tile_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d63d9d5b-8eaa-4aa0-bba6-090aff9ac709\",\n      \"rawTextureUuid\": \"7e2ec571-15aa-4573-a47e-e0efb46cb4ff\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 60,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"tile_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e4fc0f05-ec76-4cbd-b447-d3f86a8dc48e\",\n      \"rawTextureUuid\": \"7e2ec571-15aa-4573-a47e-e0efb46cb4ff\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 80,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"tile_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"82262135-79bb-451a-bf3e-a9d22579aa58\",\n      \"rawTextureUuid\": \"7e2ec571-15aa-4573-a47e-e0efb46cb4ff\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 100,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"tile_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ec30ac29-3958-4cf9-a4ea-f1e331e4412c\",\n      \"rawTextureUuid\": \"7e2ec571-15aa-4573-a47e-e0efb46cb4ff\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 120,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/tile.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7e2ec571-15aa-4573-a47e-e0efb46cb4ff\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 140,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tile\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"67abaa00-cb64-4b6c-ab92-f346f2fb5f0b\",\n      \"rawTextureUuid\": \"7e2ec571-15aa-4573-a47e-e0efb46cb4ff\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 140,\n      \"height\": 20,\n      \"rawWidth\": 140,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/tileSet.PNG.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0d35ec41-6724-4ffb-901a-1d95fd324103\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tileSet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3381e1cf-835a-4e98-9e8c-ee9b20962f8d\",\n      \"rawTextureUuid\": \"0d35ec41-6724-4ffb-901a-1d95fd324103\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 10,\n      \"offsetY\": 0,\n      \"trimX\": 20,\n      \"trimY\": 0,\n      \"width\": 60,\n      \"height\": 20,\n      \"rawWidth\": 80,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres/tileall.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"31d91fae-4ced-48b3-a15d-a16abe61e7b3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 200,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tileall\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ea810584-5142-4f5a-8484-667c9f7f5972\",\n      \"rawTextureUuid\": \"31d91fae-4ced-48b3-a15d-a16abe61e7b3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 200,\n      \"height\": 20,\n      \"rawWidth\": 200,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90/tankres.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"c4467a70-40c7-47fe-a62c-a46a680b0cc8\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Res90.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"2b7cd133-2583-4227-a45e-07e5a2bcc1c9\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Scene/game.fire",
    "content": "[\n  {\n    \"__type__\": \"cc.SceneAsset\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_rawFiles\": null,\n    \"scene\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Scene\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [\n      {\n        \"__id__\": 2\n      },\n      {\n        \"__id__\": 195\n      },\n      {\n        \"__id__\": 206\n      },\n      {\n        \"__id__\": 218\n      },\n      {\n        \"__id__\": 221\n      },\n      {\n        \"__id__\": 268\n      },\n      {\n        \"__id__\": 202\n      },\n      {\n        \"__id__\": 192\n      },\n      {\n        \"__id__\": 271\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": null,\n    \"_id\": \"e5cd8642-565c-466c-a684-934482ff6ac0\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"autoReleaseAssets\": false,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Canvas\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 3\n      },\n      {\n        \"__id__\": 5\n      },\n      {\n        \"__id__\": 7\n      },\n      {\n        \"__id__\": 10\n      },\n      {\n        \"__id__\": 13\n      },\n      {\n        \"__id__\": 16\n      },\n      {\n        \"__id__\": 18\n      },\n      {\n        \"__id__\": 29\n      },\n      {\n        \"__id__\": 63\n      },\n      {\n        \"__id__\": 87\n      },\n      {\n        \"__id__\": 89\n      },\n      {\n        \"__id__\": 153\n      },\n      {\n        \"__id__\": 185\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 188\n      },\n      {\n        \"__id__\": 189\n      },\n      {\n        \"__id__\": 190\n      },\n      {\n        \"__id__\": 191\n      },\n      {\n        \"__id__\": 204\n      },\n      {\n        \"__id__\": 205\n      },\n      {\n        \"__id__\": 274\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"2bbDlHtFpKJocy0+PQyxlT\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        568,\n        320,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 4\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"aff5uUbnFD4ZelfU1OMD8Y\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1500,\n      \"height\": 1200\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 3\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"1ccce9c7-e2e0-4227-8f86-f8fb0a40b5bc\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"eff_frame\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 6\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"2aPZgqF5lIpqAA1+9x+Uh9\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 5\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_game\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 8\n      },\n      {\n        \"__id__\": 9\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"7ekSLVfSFBFbGT/07t7xwJ\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1552,\n      \"height\": 320\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -320,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 7\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 7\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": -208,\n    \"_right\": -208,\n    \"_top\": 320,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btn_leave\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 11\n      },\n      {\n        \"__id__\": 12\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"2dqMlfSelILag78JgG5i3K\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 80,\n      \"height\": 80\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -528,\n        280,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 10\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"babef935-f23f-43d0-b29a-c769cc089958\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 10\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 9,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btn_help\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 14\n      },\n      {\n        \"__id__\": 15\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"39CTyfcfNMx7eVpfJc60bF\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 80,\n      \"height\": 80\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        528,\n        280,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 13\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"0173e103-db7b-44ef-b5c5-14f6491150a8\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 13\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 33,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"prefabs\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 17\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"ccYCbj+0dEaJhls29Xg+Qt\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1552,\n      \"height\": 320\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 16\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": -208,\n    \"_right\": -208,\n    \"_top\": 160,\n    \"_bottom\": 160,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"notice\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [\n      {\n        \"__id__\": 19\n      },\n      {\n        \"__id__\": 25\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 27\n      },\n      {\n        \"__id__\": 28\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"d27tRaTSREzot+Oed4jwuB\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -244,\n        286,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_notice\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 18\n    },\n    \"_children\": [\n      {\n        \"__id__\": 20\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 24\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"62IgJlZ1xBv6APmc7eAVRa\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 530,\n      \"height\": 62\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"mask\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 19\n    },\n    \"_children\": [\n      {\n        \"__id__\": 21\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 23\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"37GM7QnCdGooMgkcXoSPuF\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 516,\n      \"height\": 62\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        10,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 20\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 22\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"2dKe2+eW9K8IKW3PW71aP4\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 64,\n      \"height\": 50\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        520,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.RichText\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 21\n    },\n    \"_enabled\": true,\n    \"_N$string\": \"信息\",\n    \"_N$horizontalAlign\": 0,\n    \"_N$fontSize\": 32,\n    \"_N$font\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_N$maxWidth\": 0,\n    \"_N$lineHeight\": 50,\n    \"_N$imageAtlas\": {\n      \"__uuid__\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\"\n    },\n    \"_N$handleTouchEvent\": true\n  },\n  {\n    \"__type__\": \"cc.Mask\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 20\n    },\n    \"_enabled\": true,\n    \"_type\": 0,\n    \"_segements\": 64,\n    \"_N$spriteFrame\": null,\n    \"_N$alphaThreshold\": 1,\n    \"_N$inverted\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 19\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"9b5af999-533e-452c-a11a-d0c005c92130\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon_notice\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 18\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 26\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"6fbKEqIjpCDISKcmvvgjlF\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 74,\n      \"height\": 71\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -3,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 25\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ce9d845c-e5b8-4125-805f-c48743b8114a\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"948b8vnTe1CjLnp5HZycxwU\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 18\n    },\n    \"_enabled\": true,\n    \"msg\": {\n      \"__id__\": 22\n    }\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 18\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 1,\n    \"_left\": 44,\n    \"_right\": 0,\n    \"_top\": 34,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"rankList\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [\n      {\n        \"__id__\": 30\n      },\n      {\n        \"__id__\": 32\n      },\n      {\n        \"__id__\": 34\n      },\n      {\n        \"__id__\": 36\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 58\n      },\n      {\n        \"__id__\": 59\n      },\n      {\n        \"__id__\": 60\n      },\n      {\n        \"__id__\": 61\n      },\n      {\n        \"__id__\": 62\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"f0+BxS0vxHx7L0hbG/vwcN\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 1,\n      \"y\": 1\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 127.71000000000001,\n      \"height\": 44\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        563,\n        230,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"arrow\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 29\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 31\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"cd1nNNUX5CD7K+qvB8lLg4\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 27.71,\n      \"height\": 28\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -111.855,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 30\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 28,\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"▼\",\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 29\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 33\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"aarIP5ZfBNu55JY150SWFI\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 70,\n      \"height\": 28\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -60,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 32\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 28,\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"排名:\",\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"num\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 29\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 35\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"02MQMOOvhHaYLwU1RNaGrt\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 3,\n      \"g\": 233,\n      \"b\": 49,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 14,\n      \"height\": 28\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -15,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 34\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 28,\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"0\",\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"rankList\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 29\n    },\n    \"_children\": [\n      {\n        \"__id__\": 37\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": null,\n    \"_id\": \"04Z6LDPtpILafYIb3HVmZN\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -5,\n        -46,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New ScrollView\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 36\n    },\n    \"_children\": [\n      {\n        \"__id__\": 38\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 56\n      },\n      {\n        \"__id__\": 57\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"709eADqYZIvbN480qID6DR\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 184,\n      \"g\": 184,\n      \"b\": 184,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 200\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -145,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"view\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 37\n    },\n    \"_children\": [\n      {\n        \"__id__\": 39\n      },\n      {\n        \"__id__\": 46\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 55\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"cbKm9dZI1CxJlU7T9+onUm\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 200\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"list\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [\n      {\n        \"__id__\": 40\n      },\n      {\n        \"__id__\": 42\n      },\n      {\n        \"__id__\": 44\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [],\n    \"_prefab\": null,\n    \"_id\": \"e3dwTYeahJabjlHt5W4KS6\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 250,\n      \"height\": 24\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -47,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"rank\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 39\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 41\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"f7b7kC8qtLpK2tXd4Jm6NY\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 247,\n      \"g\": 85,\n      \"b\": 189,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 36,\n      \"height\": 24\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -107.9,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 40\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 24,\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"999\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"name\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 39\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 43\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"7ciqulIlVAzJrYzrGdLhaI\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 95,\n      \"g\": 155,\n      \"b\": 245,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 96,\n      \"height\": 24\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -14,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 42\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 24,\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"我很牛牛\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"gold\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 39\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 45\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"f2ISuEENtKM4PRCiVTrdIG\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 213,\n      \"g\": 221,\n      \"b\": 9,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 67.98,\n      \"height\": 24\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        95,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 44\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 24,\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"1000亿\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"content\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [\n      {\n        \"__id__\": 47\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 54\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"1eKU/sI9lFn5tcGnX4bO/3\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 32\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"title\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 46\n    },\n    \"_children\": [\n      {\n        \"__id__\": 48\n      },\n      {\n        \"__id__\": 50\n      },\n      {\n        \"__id__\": 52\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": null,\n    \"_id\": \"45HP8R/EhPRI9UPwPjRWO4\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 58,\n      \"g\": 213,\n      \"b\": 213,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 24\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -16,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"rank\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 47\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 49\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"aeeA6d37xInpWX+MlKLyyE\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 247,\n      \"g\": 85,\n      \"b\": 189,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 48,\n      \"height\": 24\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -107.9,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 48\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 24,\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"名次\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"name\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 47\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 51\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"58hg1IrtZMTL8fVyotYEq8\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 95,\n      \"g\": 155,\n      \"b\": 245,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 48,\n      \"height\": 24\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -14,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 50\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 24,\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"姓名\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"gold\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 47\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 53\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"37b1yfyQdJuZy9zoHV+fu8\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 213,\n      \"g\": 221,\n      \"b\": 9,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 48,\n      \"height\": 24\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        95,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 52\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 24,\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"金币\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 46\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 32\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 2,\n    \"_N$padding\": 0,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 0,\n    \"_N$paddingRight\": 0,\n    \"_N$paddingTop\": 4,\n    \"_N$paddingBottom\": 4,\n    \"_N$spacingX\": 0,\n    \"_N$spacingY\": 7,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0\n  },\n  {\n    \"__type__\": \"cc.Mask\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 38\n    },\n    \"_enabled\": true,\n    \"_type\": 0,\n    \"_segements\": 64,\n    \"_N$spriteFrame\": null,\n    \"_N$alphaThreshold\": 1,\n    \"_N$inverted\": false\n  },\n  {\n    \"__type__\": \"cc.ScrollView\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 37\n    },\n    \"_enabled\": true,\n    \"content\": {\n      \"__id__\": 46\n    },\n    \"horizontal\": false,\n    \"vertical\": true,\n    \"inertia\": true,\n    \"brake\": 0.75,\n    \"elastic\": true,\n    \"bounceDuration\": 0.23,\n    \"scrollEvents\": [],\n    \"cancelInnerEvents\": true,\n    \"_N$horizontalScrollBar\": null,\n    \"_N$verticalScrollBar\": null\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 37\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ba04946c-b9d3-41b7-8160-6d99973cc159\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 29\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ba04946c-b9d3-41b7-8160-6d99973cc159\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 29\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 127.71000000000001,\n      \"height\": 44\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 1,\n    \"_N$padding\": 0,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 2,\n    \"_N$paddingRight\": 5,\n    \"_N$paddingTop\": 0,\n    \"_N$paddingBottom\": 0,\n    \"_N$spacingX\": 3,\n    \"_N$spacingY\": 0,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 29\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 33,\n    \"_left\": 587.29,\n    \"_right\": 5,\n    \"_top\": 90,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0\n  },\n  {\n    \"__type__\": \"ea89bn3rB5I0JjOqv+rvIUH\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 29\n    },\n    \"_enabled\": true,\n    \"playerNum\": {\n      \"__id__\": 35\n    },\n    \"list\": {\n      \"__id__\": 39\n    },\n    \"ScrollView\": {\n      \"__id__\": 37\n    },\n    \"content\": {\n      \"__id__\": 46\n    },\n    \"arrow\": {\n      \"__id__\": 30\n    }\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 29\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 29\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"playerList\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [\n      {\n        \"__id__\": 64\n      },\n      {\n        \"__id__\": 74\n      },\n      {\n        \"__id__\": 76\n      },\n      {\n        \"__id__\": 78\n      },\n      {\n        \"__id__\": 80\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 82\n      },\n      {\n        \"__id__\": 83\n      },\n      {\n        \"__id__\": 84\n      },\n      {\n        \"__id__\": 85\n      },\n      {\n        \"__id__\": 86\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"cdZqncoJZMWqi9lvbDL4U/\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 158.71,\n      \"height\": 44\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -563,\n        230,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"playerList\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 63\n    },\n    \"_children\": [\n      {\n        \"__id__\": 65\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": null,\n    \"_id\": \"c9sZ+wltBN1b83PEFvQvma\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        2,\n        -46,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New ScrollView\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 64\n    },\n    \"_children\": [\n      {\n        \"__id__\": 66\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 72\n      },\n      {\n        \"__id__\": 73\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"0eRV/9iUBKcK2DT4Tu9s4V\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 184,\n      \"g\": 184,\n      \"b\": 184,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 180,\n      \"height\": 200\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        88,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"view\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 65\n    },\n    \"_children\": [\n      {\n        \"__id__\": 67\n      },\n      {\n        \"__id__\": 69\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 71\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"51bIwB5rtKALaPmiuM9iGn\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 180,\n      \"height\": 200\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"content\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 66\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 68\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"7514fpCT9JyI4rCpbVscy0\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 180,\n      \"height\": 1\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 67\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 180,\n      \"height\": 1\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 2,\n    \"_N$padding\": 0,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 0,\n    \"_N$paddingRight\": 0,\n    \"_N$paddingTop\": 4,\n    \"_N$paddingBottom\": 4,\n    \"_N$spacingX\": 0,\n    \"_N$spacingY\": 7,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"list\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 66\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 70\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"caR3lEN+VKzbtqPkHSYsvO\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 58,\n      \"g\": 213,\n      \"b\": 213,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 164.66,\n      \"height\": 24\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -83,\n        -14,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 69\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 24,\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"Lv99 玩家名字\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Mask\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 66\n    },\n    \"_enabled\": true,\n    \"_type\": 0,\n    \"_segements\": 64,\n    \"_N$spriteFrame\": null,\n    \"_N$alphaThreshold\": 1,\n    \"_N$inverted\": false\n  },\n  {\n    \"__type__\": \"cc.ScrollView\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 65\n    },\n    \"_enabled\": true,\n    \"content\": {\n      \"__id__\": 67\n    },\n    \"horizontal\": false,\n    \"vertical\": true,\n    \"inertia\": true,\n    \"brake\": 0.75,\n    \"elastic\": true,\n    \"bounceDuration\": 0.23,\n    \"scrollEvents\": [],\n    \"cancelInnerEvents\": true,\n    \"_N$horizontalScrollBar\": null,\n    \"_N$verticalScrollBar\": null\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 65\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ba04946c-b9d3-41b7-8160-6d99973cc159\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 63\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 75\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"39PfyJurpIS6LKI/Nnff9y\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 70,\n      \"height\": 28\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        40,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 74\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 28,\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"在线:\",\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"num\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 63\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 77\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"1bU0Gm/FFBOqKVhAgXj9rY\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 3,\n      \"g\": 233,\n      \"b\": 49,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 14,\n      \"height\": 28\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        85,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 76\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 28,\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"9\",\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 63\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 79\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"d8BvP2ZlZI3ItMrq+ATHYS\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 28,\n      \"height\": 28\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        109,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 78\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 28,\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"人\",\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"arrow\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 63\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 81\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"53A/sjiZxJloXC83tnPxG7\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 27.71,\n      \"height\": 28\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        139.855,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 80\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 28,\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"▼\",\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 63\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ba04946c-b9d3-41b7-8160-6d99973cc159\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 63\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 158.71,\n      \"height\": 44\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 1,\n    \"_N$padding\": 0,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 2,\n    \"_N$paddingRight\": 5,\n    \"_N$paddingTop\": 0,\n    \"_N$paddingBottom\": 0,\n    \"_N$spacingX\": 3,\n    \"_N$spacingY\": 0,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 63\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 9,\n    \"_left\": 5,\n    \"_right\": 0,\n    \"_top\": 90,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0\n  },\n  {\n    \"__type__\": \"b0e84Fx8oNKto4NyLP7VepY\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 63\n    },\n    \"_enabled\": true,\n    \"playerNum\": {\n      \"__id__\": 77\n    },\n    \"list\": {\n      \"__id__\": 69\n    },\n    \"ScrollView\": {\n      \"__id__\": 65\n    },\n    \"content\": {\n      \"__id__\": 67\n    },\n    \"arrow\": {\n      \"__id__\": 80\n    }\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 63\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 63\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"buttom\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 88\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"c096xrcfRHTrVcJxdd1MQ3\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -320,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 87\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 4,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"fight\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [\n      {\n        \"__id__\": 90\n      },\n      {\n        \"__id__\": 92\n      },\n      {\n        \"__id__\": 106\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": null,\n    \"_id\": \"edXufBJPVFp7DiZCkrPkD+\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"base\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 89\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 91\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"d7zKk1dwFCEZjgpRTd+L/C\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 118,\n      \"height\": 119\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -188,\n        -183,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 90\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"level_pve_10\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 89\n    },\n    \"_children\": [\n      {\n        \"__id__\": 93\n      },\n      {\n        \"__id__\": 95\n      },\n      {\n        \"__id__\": 97\n      },\n      {\n        \"__id__\": 99\n      },\n      {\n        \"__id__\": 101\n      },\n      {\n        \"__id__\": 103\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 105\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"b1LsbYQXND7qiSt4L9TJAc\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1200,\n      \"height\": 1080\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        92,\n        299,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"layer_1\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 92\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 94\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"7bKWQ4lbZFfax26dQ9X2/z\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1200,\n      \"height\": 1080\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.TiledLayer\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 93\n    },\n    \"_enabled\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"layer_2\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 92\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 96\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"e5ix+aNihO/aYjxBsKhY5T\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1200,\n      \"height\": 1080\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.TiledLayer\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 95\n    },\n    \"_enabled\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"layer_3\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 92\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 98\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"94KOzz48pKXrjB+IoGAa/G\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1200,\n      \"height\": 1080\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.TiledLayer\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 97\n    },\n    \"_enabled\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"layer_4\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 92\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 100\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"c4dY0DTotBE6klx0/2Z9UX\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1200,\n      \"height\": 1080\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.TiledLayer\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 99\n    },\n    \"_enabled\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"layer_5\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 92\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 102\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"19TrFKzMFH3q+VAE0VTwF1\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1200,\n      \"height\": 1080\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.TiledLayer\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 101\n    },\n    \"_enabled\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"objectLayer\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 92\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 104\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"d85coU/05MJam35GEP1t8l\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1200,\n      \"height\": 1080\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.TiledObjectGroup\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 103\n    },\n    \"_enabled\": true\n  },\n  {\n    \"__type__\": \"cc.TiledMap\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 92\n    },\n    \"_enabled\": true,\n    \"_tmxFile\": null\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"tank\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 89\n    },\n    \"_children\": [\n      {\n        \"__id__\": 107\n      },\n      {\n        \"__id__\": 110\n      },\n      {\n        \"__id__\": 143\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 151\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 152\n    },\n    \"_id\": \"58ys67fvBFmYlJGDOdcq3E\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        11,\n        -168,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Sprite(Splash)\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 106\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 108\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 109\n    },\n    \"_id\": \"94SnbH10BLwa9X1uKVmTb6\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 248,\n      \"g\": 0,\n      \"b\": 129,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 5,\n      \"height\": 5\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 107\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"94SnbH10BLwa9X1uKVmTb6\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"ui\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 106\n    },\n    \"_children\": [\n      {\n        \"__id__\": 111\n      },\n      {\n        \"__id__\": 125\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 142\n    },\n    \"_id\": \"85lEtdIj1FmbPjpeoIaqmx\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bullet\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 110\n    },\n    \"_children\": [\n      {\n        \"__id__\": 112\n      },\n      {\n        \"__id__\": 115\n      },\n      {\n        \"__id__\": 118\n      },\n      {\n        \"__id__\": 121\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 124\n    },\n    \"_id\": \"d8hNxjD2BMYbQqSUEjnwOA\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        50,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"zd\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 111\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 113\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 114\n    },\n    \"_id\": \"51P5UYEMRAJ4GBGDJgeq2Z\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 12\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -17.4,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 112\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"51P5UYEMRAJ4GBGDJgeq2Z\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"zd\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 111\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 116\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 117\n    },\n    \"_id\": \"db6cX7Jm1Eqb41Mf6llvih\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 12\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -5.5,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 115\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"db6cX7Jm1Eqb41Mf6llvih\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"zd\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 111\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 119\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 120\n    },\n    \"_id\": \"02IWK58tVAAYsrk22xRsMR\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 12\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        17.2,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 118\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"02IWK58tVAAYsrk22xRsMR\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"zd\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 111\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 122\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 123\n    },\n    \"_id\": \"8cTXfYzbtO2IAwJtqYCscz\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 12\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        4.8,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 121\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"8cTXfYzbtO2IAwJtqYCscz\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"d8hNxjD2BMYbQqSUEjnwOA\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"hp\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 110\n    },\n    \"_children\": [\n      {\n        \"__id__\": 126\n      },\n      {\n        \"__id__\": 129\n      },\n      {\n        \"__id__\": 132\n      },\n      {\n        \"__id__\": 135\n      },\n      {\n        \"__id__\": 138\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 141\n    },\n    \"_id\": \"14AR48wOlKuo92l2nV+v2d\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        40,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-role_slot\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 125\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 127\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 128\n    },\n    \"_id\": \"1diPk8bQlGj6rzDFk+FDXn\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 48,\n      \"height\": 13\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -5.5,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 126\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"1diPk8bQlGj6rzDFk+FDXn\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-life_1\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 125\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 130\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 131\n    },\n    \"_id\": \"4cM59gNSBH+pXzM/xTahnu\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 9,\n      \"height\": 9\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -17.7,\n        -5.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 129\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"4cM59gNSBH+pXzM/xTahnu\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-life_1\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 125\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 133\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 134\n    },\n    \"_id\": \"e3SWGPyMpBb6NmpvM0j3UG\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 9,\n      \"height\": 9\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -6.9,\n        -5.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 132\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"e3SWGPyMpBb6NmpvM0j3UG\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-life_1\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 125\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 136\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 137\n    },\n    \"_id\": \"d7KHJZSoZD17gUbQPRJGeY\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 9,\n      \"height\": 9\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        4.3,\n        -5.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 135\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"d7KHJZSoZD17gUbQPRJGeY\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-life_1\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 125\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 139\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 140\n    },\n    \"_id\": \"71eowZcN5CfLtbSREyh0RI\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 9,\n      \"height\": 9\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        16.8,\n        -5.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 138\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"71eowZcN5CfLtbSREyh0RI\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"14AR48wOlKuo92l2nV+v2d\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"85lEtdIj1FmbPjpeoIaqmx\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"body\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 106\n    },\n    \"_children\": [\n      {\n        \"__id__\": 144\n      },\n      {\n        \"__id__\": 147\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 150\n    },\n    \"_id\": \"2afWHqJoNMyaJkmPXvdH3g\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 64,\n      \"height\": 64\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"danger_tip_1\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 143\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 145\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 146\n    },\n    \"_id\": \"8a95AoMk9EZrubdnI/Myi9\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 49,\n      \"height\": 61\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 144\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"8a95AoMk9EZrubdnI/Myi9\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"transformers\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 143\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 148\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 149\n    },\n    \"_id\": \"d4zESduXBOMa+5D2kiiddl\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"sp.Skeleton\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 147\n    },\n    \"_enabled\": true,\n    \"_paused\": false,\n    \"defaultSkin\": \"skin_1\",\n    \"defaultAnimation\": \"move_level1\",\n    \"loop\": true,\n    \"premultipliedAlpha\": false,\n    \"_N$skeletonData\": null,\n    \"_N$timeScale\": 1,\n    \"_N$debugSlots\": false,\n    \"_N$debugBones\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"d4zESduXBOMa+5D2kiiddl\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"2afWHqJoNMyaJkmPXvdH3g\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"b4f7aryMN1FgKORKquLJ0RU\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 106\n    },\n    \"_enabled\": true,\n    \"body\": {\n      \"__id__\": 143\n    },\n    \"animNode\": {\n      \"__id__\": 147\n    },\n    \"playerTank\": null,\n    \"enemyTank\": null,\n    \"bulletPrefab\": {\n      \"__uuid__\": \"19238b87-a1ea-4151-b416-31f89a22fe15\"\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 106\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"58ys67fvBFmYlJGDOdcq3E\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"gameover\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [\n      {\n        \"__id__\": 154\n      },\n      {\n        \"__id__\": 157\n      },\n      {\n        \"__id__\": 161\n      },\n      {\n        \"__id__\": 165\n      },\n      {\n        \"__id__\": 170\n      },\n      {\n        \"__id__\": 176\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 182\n      },\n      {\n        \"__id__\": 183\n      },\n      {\n        \"__id__\": 184\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"70770iBYlIXLg/zsWeQYC6\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 167,\n      \"g\": 167,\n      \"b\": 167,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 800,\n      \"height\": 500\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 153\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 155\n      },\n      {\n        \"__id__\": 156\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"bbAiE8LiJC+K8BOdmrf3x5\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 690,\n      \"height\": 350\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        20,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 154\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"1ccce9c7-e2e0-4227-8f86-f8fb0a40b5bc\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 154\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 154\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"M\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 153\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 158\n      },\n      {\n        \"__id__\": 159\n      },\n      {\n        \"__id__\": 160\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"e9Geoo89FNmpPavxc2OSq6\",\n    \"_opacity\": 150,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 54,\n      \"g\": 46,\n      \"b\": 10,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 800,\n      \"height\": 500\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 157\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 157\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 157\n    }\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 157\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_title\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 153\n    },\n    \"_children\": [\n      {\n        \"__id__\": 162\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 164\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"b6J67iZWpA3ZSP/vNKDW+v\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 368,\n      \"height\": 76\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        207,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 161\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 163\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"69n/BVAPNFwppsj4y3FOeK\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 160,\n      \"height\": 40\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 162\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 40,\n    \"_fontSize\": 40,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"游戏结束\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 161\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"05f2b6ee-7d42-49c2-ac53-2443ae121bc4\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btn_quit\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 153\n    },\n    \"_children\": [\n      {\n        \"__id__\": 166\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 168\n      },\n      {\n        \"__id__\": 169\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"14doR7Q09KR7R3NZyftXvV\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 155,\n      \"height\": 70\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -210,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 165\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 167\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"9d8xzcF99JHKoE7RFwVO05\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 80,\n      \"height\": 40\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 166\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 40,\n    \"_fontSize\": 40,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"退出\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 165\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"9e523299-1e25-4424-a279-93467d91d335\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 165\n    },\n    \"_enabled\": true,\n    \"transition\": 3,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.1,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 165\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_notice\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 153\n    },\n    \"_children\": [\n      {\n        \"__id__\": 171\n      },\n      {\n        \"__id__\": 173\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 175\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"55QYh5OLJM94N/NRZmhRWQ\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 208,\n      \"height\": 62\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        43,\n        105,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 170\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 172\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"a9xU3KvT9J6pOzBjf/u5z9\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 73.3,\n      \"height\": 40\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 171\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 40,\n    \"_fontSize\": 40,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"10秒\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 170\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 174\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"f0h+ra1HFGBrglu4LjeRS/\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 200,\n      \"height\": 40\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -220,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 173\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 40,\n    \"_fontSize\": 40,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"坚持时间：\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 170\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"9b5af999-533e-452c-a11a-d0c005c92130\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_notice\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 153\n    },\n    \"_children\": [\n      {\n        \"__id__\": 177\n      },\n      {\n        \"__id__\": 179\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 181\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"5aQ7Ia9cFLPKuJ71r7yi6c\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 208,\n      \"height\": 62\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        43,\n        -5,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 176\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 178\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"15ggevEzBNHZcUfTFyVsEX\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 53.3,\n      \"height\": 40\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 177\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 40,\n    \"_fontSize\": 40,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"100\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 176\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 180\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"10b303agNArLomic9amvu0\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 120,\n      \"height\": 40\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -257,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 179\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 40,\n    \"_fontSize\": 40,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"击杀：\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 176\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"9b5af999-533e-452c-a11a-d0c005c92130\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 153\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"9bbda31e-ad49-43c9-aaf2-f7d9896bac69\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 153\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 800,\n      \"height\": 500\n    },\n    \"_resize\": 0,\n    \"_N$layoutType\": 0,\n    \"_N$padding\": 0,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 0,\n    \"_N$paddingRight\": 0,\n    \"_N$paddingTop\": 0,\n    \"_N$paddingBottom\": 0,\n    \"_N$spacingX\": 0,\n    \"_N$spacingY\": 0,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0\n  },\n  {\n    \"__type__\": \"0c897W23v9JcIHHiQZB9tLx\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 153\n    },\n    \"_enabled\": true,\n    \"lbtime\": {\n      \"__id__\": 172\n    },\n    \"lbkill\": {\n      \"__id__\": 178\n    },\n    \"btnLeave\": {\n      \"__id__\": 165\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Sprite(Splash)\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 186\n      },\n      {\n        \"__id__\": 187\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"7fa8WNgcFLY5aVqFLZiVt3\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 100,\n      \"height\": 100\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        1,\n        1,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 185\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"2de3cJWtxJARYN1jIn67+3v\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 185\n    },\n    \"_enabled\": true,\n    \"label\": null,\n    \"text\": \"hello\"\n  },\n  {\n    \"__type__\": \"cc.Canvas\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_designResolution\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_fitWidth\": true,\n    \"_fitHeight\": true\n  },\n  {\n    \"__type__\": \"a4dceAt3WtEPrPMeVkKBT1F\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"btnLeave\": {\n      \"__id__\": 10\n    },\n    \"bgGame\": {\n      \"__id__\": 7\n    }\n  },\n  {\n    \"__type__\": \"cc.AudioSource\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_volume\": 1,\n    \"_mute\": false,\n    \"_loop\": false,\n    \"playOnLoad\": true,\n    \"preload\": false\n  },\n  {\n    \"__type__\": \"6921cVfjmlDn7qEFmSNsnAH\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"player\": {\n      \"__id__\": 151\n    },\n    \"btnShot\": {\n      \"__id__\": 192\n    },\n    \"joystickNode\": {\n      \"__id__\": 195\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnShot\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 193\n      },\n      {\n        \"__id__\": 194\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"91CFHkhVlGD7fZwVo36Va0\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 95,\n      \"height\": 65\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        977,\n        109,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 192\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"2d1edc74-6c03-4391-bd79-30a45cbd840a\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 192\n    },\n    \"_enabled\": true,\n    \"transition\": 3,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": {\n      \"__uuid__\": \"f0048c10-f03e-4c97-b9d3-3506e1d58952\"\n    },\n    \"_N$pressedSprite\": {\n      \"__uuid__\": \"e9ec654c-97a2-4787-9325-e6a10375219a\"\n    },\n    \"pressedSprite\": {\n      \"__uuid__\": \"e9ec654c-97a2-4787-9325-e6a10375219a\"\n    },\n    \"_N$hoverSprite\": {\n      \"__uuid__\": \"e9ec654c-97a2-4787-9325-e6a10375219a\"\n    },\n    \"hoverSprite\": {\n      \"__uuid__\": \"e9ec654c-97a2-4787-9325-e6a10375219a\"\n    },\n    \"_N$disabledSprite\": {\n      \"__uuid__\": \"29158224-f8dd-4661-a796-1ffab537140e\"\n    },\n    \"_N$target\": {\n      \"__id__\": 192\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"js\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 196\n      },\n      {\n        \"__id__\": 198\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 201\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"85B61LKKhP1oLeVlrQ3r5r\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        166,\n        122,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"sprite\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 195\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 197\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"f84Xwdo+tM24YH0Nk1nCqp\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 59,\n      \"height\": 58\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 196\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"7f7bb870-5f30-4247-be34-df41e2ac8440\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"spritebg\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 195\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 199\n      },\n      {\n        \"__id__\": 200\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"d6gY/hC9dFFo7JFjBPp61k\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 49,\n      \"height\": 49\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 198\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"2f0feff1-d417-4340-bfd5-fbf19d473f20\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"8685fFKGrFNf4OCjBFfInu1\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 198\n    },\n    \"_enabled\": true,\n    \"dot\": {\n      \"__id__\": 196\n    },\n    \"_joyCom\": null,\n    \"_playerNode\": null,\n    \"_angle\": null,\n    \"_radian\": null,\n    \"_speed\": 0,\n    \"_speed1\": 1,\n    \"_speed2\": 2,\n    \"_opacity\": 0\n  },\n  {\n    \"__type__\": \"4a61bLfX+hE65Hvt5Ny+w3C\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 195\n    },\n    \"_enabled\": true,\n    \"dot\": {\n      \"__id__\": 196\n    },\n    \"ring\": {\n      \"__id__\": 200\n    },\n    \"stickX\": 0,\n    \"stickY\": 0,\n    \"touchType\": 0,\n    \"directionType\": 0,\n    \"sprite\": {\n      \"__id__\": 202\n    },\n    \"_stickPos\": null,\n    \"_touchLocation\": null,\n    \"touchPos\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"sprite\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 203\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"61fkXEzSFFRqnFc5sBOAoZ\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 49,\n      \"height\": 61\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        530,\n        250,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 202\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"6cfd5b16-4457-4d30-a02a-21af84a93080\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"a2ba725mblGn6xiIXDkEv6R\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"fightNode\": {\n      \"__id__\": 89\n    },\n    \"tankPrefab\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"gameoverUI\": {\n      \"__id__\": 184\n    }\n  },\n  {\n    \"__type__\": \"68dc8EyszFEn5Q+3hmIr1kk\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"itemSF\": [\n      {\n        \"__uuid__\": \"f0712792-9980-480d-824f-ab8b053af27c\"\n      },\n      {\n        \"__uuid__\": \"2038224b-abef-445e-accc-2875cdcd4276\"\n      }\n    ]\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"MASK\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 207\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 213\n      },\n      {\n        \"__id__\": 214\n      },\n      {\n        \"__id__\": 215\n      },\n      {\n        \"__id__\": 216\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 217\n    },\n    \"_id\": \"c7HVF9silP+LJReHuZe86O\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 960\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        568,\n        320,\n        0,\n        0,\n        0,\n        0,\n        1,\n        0,\n        0,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 206\n    },\n    \"_children\": [\n      {\n        \"__id__\": 208\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 211\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 212\n    },\n    \"_id\": \"ddkcFJG6FCj4W6iYLjwrz9\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 390,\n      \"height\": 60\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -160,\n        6,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 207\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 209\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 210\n    },\n    \"_id\": \"89w3VV+GhHfK7/vJUSnkHw\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 442.9,\n      \"height\": 30\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        160,\n        -60,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 208\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 30,\n    \"_fontSize\": 30,\n    \"_lineHeight\": 30,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"(首次加载较为缓慢,请耐心等待!)\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 206\n    },\n    \"asset\": {\n      \"__uuid__\": \"da882197-7cb5-4aaf-a260-71e66df26eab\"\n    },\n    \"fileId\": \"9chRJj8b5FKbtPQI/ayoup\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 207\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 60,\n    \"_fontSize\": 60,\n    \"_lineHeight\": 60,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"拼命加载中...\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 206\n    },\n    \"asset\": {\n      \"__uuid__\": \"da882197-7cb5-4aaf-a260-71e66df26eab\"\n    },\n    \"fileId\": \"f9o7cu1dZEWr4OQCsJ2yRu\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 206\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 206\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 206\n    }\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 206\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 1280,\n    \"_originalHeight\": 720\n  },\n  {\n    \"__type__\": \"693a7ELMkJMyZwXlPzlgrnT\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 206\n    },\n    \"_enabled\": true,\n    \"lab\": {\n      \"__id__\": 211\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 206\n    },\n    \"asset\": {\n      \"__uuid__\": \"da882197-7cb5-4aaf-a260-71e66df26eab\"\n    },\n    \"fileId\": \"1bdP8BAJlMYauHqKWG22cI\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bullet_2\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 219\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 220\n    },\n    \"_id\": \"f6kJjvk4dE/K2Ck/XCuFhW\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 9,\n      \"height\": 22\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 218\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 218\n    },\n    \"asset\": {\n      \"__uuid__\": \"19238b87-a1ea-4151-b416-31f89a22fe15\"\n    },\n    \"fileId\": \"f6kJjvk4dE/K2Ck/XCuFhW\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"tank\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 222\n      },\n      {\n        \"__id__\": 225\n      },\n      {\n        \"__id__\": 258\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 266\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 267\n    },\n    \"_id\": \"56gwdqv69ATaEy4Phj5W17\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        574,\n        81.7,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Sprite(Splash)\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 221\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 223\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 224\n    },\n    \"_id\": \"47DmdoVlRJgLpBMkBCV7gG\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 248,\n      \"g\": 0,\n      \"b\": 129,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 5,\n      \"height\": 5\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 222\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"94SnbH10BLwa9X1uKVmTb6\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"ui\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 221\n    },\n    \"_children\": [\n      {\n        \"__id__\": 226\n      },\n      {\n        \"__id__\": 240\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 257\n    },\n    \"_id\": \"37VGJAuKtBhpHQ+U79FhWH\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bullet\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 225\n    },\n    \"_children\": [\n      {\n        \"__id__\": 227\n      },\n      {\n        \"__id__\": 230\n      },\n      {\n        \"__id__\": 233\n      },\n      {\n        \"__id__\": 236\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 239\n    },\n    \"_id\": \"eaWAHjpAtGPr2Mm029SAe/\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        50,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"zd\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 226\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 228\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 229\n    },\n    \"_id\": \"bbZZk++2BF2pTz3gLjy7Zu\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 12\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -17.4,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 227\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"51P5UYEMRAJ4GBGDJgeq2Z\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"zd\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 226\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 231\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 232\n    },\n    \"_id\": \"51rDo3EwZA347GmRk+EJO2\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 12\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -5.5,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 230\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"db6cX7Jm1Eqb41Mf6llvih\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"zd\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 226\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 234\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 235\n    },\n    \"_id\": \"35UkB805FMHq1kmqF3tx+x\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 12\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        17.2,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 233\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"02IWK58tVAAYsrk22xRsMR\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"zd\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 226\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 237\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 238\n    },\n    \"_id\": \"8fp0NolwJFbqfpS2p+39HG\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 12\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        4.8,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 236\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"8cTXfYzbtO2IAwJtqYCscz\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"d8hNxjD2BMYbQqSUEjnwOA\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"hp\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 225\n    },\n    \"_children\": [\n      {\n        \"__id__\": 241\n      },\n      {\n        \"__id__\": 244\n      },\n      {\n        \"__id__\": 247\n      },\n      {\n        \"__id__\": 250\n      },\n      {\n        \"__id__\": 253\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 256\n    },\n    \"_id\": \"c79irSzEpKE6EVv7iLbQk3\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        40,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-role_slot\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 240\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 242\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 243\n    },\n    \"_id\": \"54nPoGCgJMAo1DkBci3+CN\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 48,\n      \"height\": 13\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -1.2,\n        -5.5,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 241\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"1diPk8bQlGj6rzDFk+FDXn\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-life_1\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 240\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 245\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 246\n    },\n    \"_id\": \"b9uIG8aPlMao8B9gi+JNQc\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 109,\n      \"b\": 9,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 10\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -17.7,\n        -5.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 244\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"4cM59gNSBH+pXzM/xTahnu\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-life_2\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 240\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 248\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 249\n    },\n    \"_id\": \"e8fFUnahhM6I1P3uqEt2L/\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 4,\n      \"g\": 92,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 10\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -6.9,\n        -5.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 247\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"e3SWGPyMpBb6NmpvM0j3UG\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-life_3\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 240\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 251\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 252\n    },\n    \"_id\": \"a00YqbmQVGXJBRGWwhKk/z\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 12,\n      \"g\": 97,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 10\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        4.3,\n        -5.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 250\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"d7KHJZSoZD17gUbQPRJGeY\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-life_4\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 240\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 254\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 255\n    },\n    \"_id\": \"e0xwosPpxLhoYQT9he51Qo\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 129,\n      \"b\": 10,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 10\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        15,\n        -5.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 253\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"71eowZcN5CfLtbSREyh0RI\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"14AR48wOlKuo92l2nV+v2d\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"85lEtdIj1FmbPjpeoIaqmx\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"body\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 221\n    },\n    \"_children\": [\n      {\n        \"__id__\": 259\n      },\n      {\n        \"__id__\": 262\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 265\n    },\n    \"_id\": \"d6tF6THL9PhryfQrRjcqSl\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 64,\n      \"height\": 64\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"tank1\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 258\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 260\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 261\n    },\n    \"_id\": \"557ML7dCNKQoLHMdCAXzg0\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 32,\n      \"height\": 39\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 259\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"22afb0d0-9551-4363-8acd-ee35396e8493\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"557ML7dCNKQoLHMdCAXzg0\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"tank2\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 258\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 263\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 264\n    },\n    \"_id\": \"d4IBf1WJRHLZXRTE0IcCs6\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 180,\n      \"g\": 48,\n      \"b\": 64,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 32,\n      \"height\": 39\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 262\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"22afb0d0-9551-4363-8acd-ee35396e8493\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"d4IBf1WJRHLZXRTE0IcCs6\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"2afWHqJoNMyaJkmPXvdH3g\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"b4f7aryMN1FgKORKquLJ0RU\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 221\n    },\n    \"_enabled\": true,\n    \"body\": {\n      \"__id__\": 258\n    },\n    \"animNode\": null,\n    \"playerTank\": {\n      \"__id__\": 259\n    },\n    \"enemyTank\": {\n      \"__id__\": 262\n    },\n    \"bulletPrefab\": {\n      \"__uuid__\": \"19238b87-a1ea-4151-b416-31f89a22fe15\"\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 221\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"58ys67fvBFmYlJGDOdcq3E\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bullet_2\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 269\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 270\n    },\n    \"_id\": \"ea56Ssha5GartURxOcuOaZ\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 10\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        466.1,\n        75.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 268\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"4372695e-198f-46b1-bc11-0182b59b79a7\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 268\n    },\n    \"asset\": {\n      \"__uuid__\": \"19238b87-a1ea-4151-b416-31f89a22fe15\"\n    },\n    \"fileId\": \"f6kJjvk4dE/K2Ck/XCuFhW\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"item\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 272\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 273\n    },\n    \"_id\": \"63R9pW0j5C2a2FbXS9qJB5\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 46,\n      \"height\": 52\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        386,\n        247,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 271\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"f0712792-9980-480d-824f-ab8b053af27c\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 271\n    },\n    \"asset\": {\n      \"__uuid__\": \"82e7099f-5b0b-454f-a0bb-bc3d57b8167e\"\n    },\n    \"fileId\": \"63R9pW0j5C2a2FbXS9qJB5\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"alignMode\": 1,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/Scene/game.fire.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"e5cd8642-565c-466c-a684-934482ff6ac0\",\n  \"asyncLoadAssets\": false,\n  \"autoReleaseAssets\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Scene/lobby.fire",
    "content": "[\n  {\n    \"__type__\": \"cc.SceneAsset\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_native\": \"\",\n    \"scene\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Scene\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [\n      {\n        \"__id__\": 2\n      },\n      {\n        \"__id__\": 185\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": null,\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_is3DNode\": true,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"autoReleaseAssets\": true,\n    \"_id\": \"6ac1aa23-bc32-4c13-a8dd-bf4f11d7c417\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Canvas\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 3\n      },\n      {\n        \"__id__\": 6\n      },\n      {\n        \"__id__\": 10\n      },\n      {\n        \"__id__\": 75\n      },\n      {\n        \"__id__\": 91\n      },\n      {\n        \"__id__\": 94\n      },\n      {\n        \"__id__\": 128\n      },\n      {\n        \"__id__\": 178\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 181\n      },\n      {\n        \"__id__\": 182\n      },\n      {\n        \"__id__\": 183\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 184\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        568,\n        320,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"aaCQTRbFlGvZwsWk0025NO\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Main Camera\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 4\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 5\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        243.35313846342729,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"cfA+Qe0jtFVLqu6d/TiwAY\"\n  },\n  {\n    \"__type__\": \"cc.Camera\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 3\n    },\n    \"_enabled\": true,\n    \"_cullingMask\": 4294967295,\n    \"_clearFlags\": 7,\n    \"_backgroundColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_depth\": -1,\n    \"_zoomRatio\": 1,\n    \"_targetTexture\": null,\n    \"_fov\": 60,\n    \"_orthoSize\": 10,\n    \"_nearClip\": 1,\n    \"_farClip\": 4096,\n    \"_ortho\": true,\n    \"_rect\": {\n      \"__type__\": \"cc.Rect\",\n      \"x\": 0,\n      \"y\": 0,\n      \"width\": 1,\n      \"height\": 1\n    },\n    \"_renderStages\": 1,\n    \"_alignWithScreen\": true,\n    \"_id\": \"56Zwy/p5xNHbTLSVCNI0My\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"ec9jiIKiRLUY6EO5SpWEmT\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 7\n      },\n      {\n        \"__id__\": 8\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 9\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"07jdIfBSpMA7xmcP0TykNW\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 6\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"43b7e345-af28-4d6f-a98a-6bcc2deb962c\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"23qzaMUWxGQZI237df5eP8\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 6\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 1280,\n    \"_originalHeight\": 720,\n    \"_id\": \"0fIKKnbMRFcaoFXRfvrP72\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"9d6BtRbz1BV6gA/PJG+4Bt\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"top\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [\n      {\n        \"__id__\": 11\n      },\n      {\n        \"__id__\": 50\n      },\n      {\n        \"__id__\": 68\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 72\n      },\n      {\n        \"__id__\": 73\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 74\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 860,\n      \"height\": 86\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        320,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"6eDmsDyIpC9r8+TgiIz3Yt\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"userInfo\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 10\n    },\n    \"_children\": [\n      {\n        \"__id__\": 12\n      },\n      {\n        \"__id__\": 15\n      },\n      {\n        \"__id__\": 18\n      },\n      {\n        \"__id__\": 21\n      },\n      {\n        \"__id__\": 24\n      },\n      {\n        \"__id__\": 27\n      },\n      {\n        \"__id__\": 30\n      },\n      {\n        \"__id__\": 39\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 48\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 49\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -325,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"48Jh6dHh5K4rU/lWRCaGau\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_payerInfo\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 13\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 14\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 158,\n      \"height\": 64\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        156,\n        -43,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"49TfMTwdlGK5Yk2FlqNddT\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 12\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5477c0ae-965b-45dc-987e-06a9bb13edf1\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"4cSPbUprhAqo7CT9KV9qzY\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"52KIQywg1K1ZmiGCkssEyC\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 16\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 17\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 72,\n      \"height\": 72\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        48,\n        -43,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"12bZ03e8FKUbaWw83ZPeQM\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 15\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"f4291eab-d5c4-4f85-9784-466782ce4e77\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"80NlUHSx9Lh5kIxJaXOc4+\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"12bZ03e8FKUbaWw83ZPeQM\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"grade\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 19\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 20\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 35,\n      \"height\": 28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        106,\n        -31,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"79bJnRuxZKmJJcWga+y0sa\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 18\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"0bea8cf1-1661-4fa1-be92-01c5eda39cc9\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"a3zJHZHzhH6bNRulVeo+v/\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"06PtNTYBNFWJQAyhsP6WJX\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"level\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 22\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 23\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 11,\n      \"g\": 229,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 52.64,\n      \"height\": 30.24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        129,\n        -32,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"b0jGTHt+tALZ0UkBBUJlD0\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 21\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"Lv.1\",\n    \"_N$string\": \"Lv.1\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"15pllIi6JIgLfspFafjbLl\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"21IMhaG6hMs6wFvECbUIms\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"nickname\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 25\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 26\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 100,\n      \"height\": 25.2\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        90,\n        -60,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"c9X1v0QhpDHLMy6UVW4R1v\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 24\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"我是小小人\",\n    \"_N$string\": \"我是小小人\",\n    \"_fontSize\": 20,\n    \"_lineHeight\": 20,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"a1/nCKZXNAcoxBBYWkaujZ\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"c26d8l+aBGP5ot3Hjgvckx\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnUserInfo\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 28\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 29\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 200,\n      \"height\": 80\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        110.30000000000001,\n        -43,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"33l/SAbHJJ/qokmZpVD/hq\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 27\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 0,\n    \"transition\": 0,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 27\n    },\n    \"_id\": \"06Q432dMxJDJylLEE37i8s\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"6ciDC58SpJloU8ANyvg2fZ\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"gold\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [\n      {\n        \"__id__\": 31\n      },\n      {\n        \"__id__\": 34\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 37\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 38\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 170,\n      \"height\": 48\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        354,\n        -42,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"2388HAZEJBapXU3R000GTf\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 30\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 32\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 33\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 246,\n      \"b\": 11,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 105,\n      \"height\": 37.8\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -36,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"e6e867eW1OireMIsUTjAOx\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 31\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"8.888亿\",\n    \"_N$string\": \"8.888亿\",\n    \"_fontSize\": 30,\n    \"_lineHeight\": 30,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"dbo1KYlhZFVbydMI3Jd9J1\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"caWBQTKrRJp7MwAm+ovRf3\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon_gold\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 30\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 35\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 36\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 41,\n      \"height\": 41\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -60,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"6auFpuRERHnq+ZA7lgqxPP\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 34\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"e716974f-f6e7-4e72-8824-b9fe2a9b0a2a\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"d5XKAwke1JPpBn794jPQg7\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"34po6JFq1FOaH1HOhzhFpb\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 30\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a6930f2b-007c-4e60-8008-5b8148640bb3\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"c6ph0PIApB8LrnUkCwdBwT\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"5dppfaRrlBdrWl0fJzV4cL\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"diamond\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [\n      {\n        \"__id__\": 40\n      },\n      {\n        \"__id__\": 43\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 46\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 47\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 170,\n      \"height\": 48\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        565,\n        -42,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"d6iY2/JRhAG7+GE7AjNc7o\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 39\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 41\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 42\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 114,\n      \"b\": 249,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 105,\n      \"height\": 37.8\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -36,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"f2mENuqZNEAKGb4rw5NPDp\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 40\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"66.66万\",\n    \"_N$string\": \"66.66万\",\n    \"_fontSize\": 30,\n    \"_lineHeight\": 30,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"85JZKvlXBOz5GHFOFml18b\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"36ZW8mdLBL+oFwC3VhBpg6\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon_diamond\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 39\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 44\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 45\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 49,\n      \"height\": 40\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -60,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"5dm0KRGA9L96vAiCdiH3fl\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 43\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"13d69ba9-cdf8-4b38-aa27-30566838e7ee\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"f4wR6HJoxB/ZceAsZCTQMk\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"8fuw09YZxFMYfBC0RjA/Mm\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 39\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a6930f2b-007c-4e60-8008-5b8148640bb3\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"cd2/+QXuVAyrSZIe/LWipS\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"6eIWWxclxMebdGypW9+SbC\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 11\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 8,\n    \"_left\": 105,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0,\n    \"_id\": \"5bmCD5X61FRabS4gRmkVJZ\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"08KfmLu2JL9Yp03g01pSsX\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"notice\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 10\n    },\n    \"_children\": [\n      {\n        \"__id__\": 51\n      },\n      {\n        \"__id__\": 63\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 66\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 67\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -315,\n        -123,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"8eLuYMb79GdZEIsQMr32ss\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_notice\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 50\n    },\n    \"_children\": [\n      {\n        \"__id__\": 52\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 61\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 62\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 530,\n      \"height\": 62\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"14hTPSbuZJO4qk69UlCGks\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"mask\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 51\n    },\n    \"_children\": [\n      {\n        \"__id__\": 53\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 59\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 60\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 516,\n      \"height\": 62\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        10,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"17R8tYs3FLz7XsAzqwNBHZ\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 52\n    },\n    \"_children\": [\n      {\n        \"__id__\": 54\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 57\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 58\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 64,\n      \"height\": 63\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        520,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"ebW8WlF3RAzaB4AOvFfJhY\"\n  },\n  {\n    \"__type__\": \"cc.PrivateNode\",\n    \"_name\": \"RICHTEXT_CHILD\",\n    \"_objFlags\": 1024,\n    \"_parent\": {\n      \"__id__\": 53\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 55\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 56\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 64,\n      \"height\": 63\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -31.5,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"showInEditor\": false,\n    \"_id\": \"43IYYaVNBMOYEYzVvESI4H\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 54\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": true,\n    \"_string\": \"信息\",\n    \"_N$string\": \"信息\",\n    \"_fontSize\": 32,\n    \"_lineHeight\": 50,\n    \"_enableWrapText\": true,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"9d/98xoaBEppJNiVcx8am8\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"43IYYaVNBMOYEYzVvESI4H\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.RichText\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 53\n    },\n    \"_enabled\": true,\n    \"_fontFamily\": \"Arial\",\n    \"_isSystemFontUsed\": true,\n    \"_N$string\": \"信息\",\n    \"_N$horizontalAlign\": 0,\n    \"_N$fontSize\": 32,\n    \"_N$font\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_N$cacheMode\": 0,\n    \"_N$maxWidth\": 0,\n    \"_N$lineHeight\": 50,\n    \"_N$imageAtlas\": {\n      \"__uuid__\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\"\n    },\n    \"_N$handleTouchEvent\": true,\n    \"_id\": \"49629eT9BB27ZAg1WtNdMV\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"4drdS2e9dEr5n/NTEDCB9O\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Mask\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 52\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_segments\": 64,\n    \"_N$alphaThreshold\": 1,\n    \"_N$inverted\": false,\n    \"_id\": \"5epGJPBH9Mp6rpbnihRqsg\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"f1oTgFlrZNF4rXnjVjXm4a\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 51\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"9b5af999-533e-452c-a11a-d0c005c92130\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"6fFoIr3w9PfLoDIt3NpTVe\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"efLuCMMshJn7EWf+RncHDO\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon_notice\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 50\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 64\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 65\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 74,\n      \"height\": 71\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -3,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"5795HjKNlIi5h7i9GxgaTv\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 63\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ce9d845c-e5b8-4125-805f-c48743b8114a\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"40pHLgyoxMS6juHmKMAgOn\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"4cFGojo+NH7KWgf1Ek2zlT\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"948b8vnTe1CjLnp5HZycxwU\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 50\n    },\n    \"_enabled\": true,\n    \"msg\": {\n      \"__id__\": 57\n    },\n    \"_id\": \"8aIxitmPhH9pGEoGbJIXzT\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"55jDDq8WtFaIRjw4pa2Ecm\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnTurntable\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 10\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 69\n      },\n      {\n        \"__id__\": 70\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 71\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 123,\n      \"height\": 129\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        513,\n        -105,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"efusxLpstF5rqx31FKJlcA\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 68\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"8a+hIAF3pBAJgLm3eVl/66\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 68\n    },\n    \"_enabled\": false,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 0,\n    \"transition\": 0,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 68\n    },\n    \"_id\": \"74k93iAlhKLqZalwxe8H/7\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"bam06lv6ZB0bcQsxon3tD1\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 10\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"714f8522-8124-42d5-a866-e42931aedc8f\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"1epdZsT3lE7JsWTqMCIyTI\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 10\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 1,\n    \"_left\": 360,\n    \"_right\": 360,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0,\n    \"_id\": \"56CR+mmGxBkbRfQKhF/xs8\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"69ZRGn93dObaodUlKH5zWl\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"center \",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [\n      {\n        \"__id__\": 76\n      },\n      {\n        \"__id__\": 83\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 90\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"afCA3VFgJOt5G2qHXTj79L\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"ButtonPVE\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 75\n    },\n    \"_children\": [\n      {\n        \"__id__\": 77\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 80\n      },\n      {\n        \"__id__\": 81\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 82\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 600,\n      \"height\": 80\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -47,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        0\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"3eh7kDFjZJ0au/YOWI0BZ8\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 76\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 78\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 79\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 100,\n      \"height\": 40\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"a0OW5ZhD9LKJJXV/2dMi01\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 77\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"PVE\",\n    \"_N$string\": \"PVE\",\n    \"_fontSize\": 20,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"59JTR7CfhM1L8J1OfUl74F\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"dba5GV5bZBZYcEqDFAJ83K\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 76\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a6930f2b-007c-4e60-8008-5b8148640bb3\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"5epPJsxI5FWKSKJMGUP3si\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 76\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 3,\n    \"transition\": 3,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": {\n      \"__uuid__\": \"a6930f2b-007c-4e60-8008-5b8148640bb3\"\n    },\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 76\n    },\n    \"_id\": \"0cQBQU/8hD+7JjBQwlKf6U\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"87srcB5clHLpgkXsmwTkfm\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"ButtonPVP\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 75\n    },\n    \"_children\": [\n      {\n        \"__id__\": 84\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 87\n      },\n      {\n        \"__id__\": 88\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 89\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 240,\n      \"g\": 250,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 600,\n      \"height\": 80\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -124,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"57Ec3tK4lEKam2pKJsyvnk\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 83\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 85\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 86\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 100,\n      \"height\": 40\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"0bZs1jUe1A2bLQhVRDw7Wb\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 84\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"PVP\",\n    \"_N$string\": \"PVP\",\n    \"_fontSize\": 20,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"5erXpP7jxAjK7VC1JDjWM1\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"4cINXv6VhPxLmqjUfpnSzL\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 83\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a6930f2b-007c-4e60-8008-5b8148640bb3\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"37ab6FTBhJtp2fdGmL6bzv\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 83\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 3,\n    \"transition\": 3,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": {\n      \"__uuid__\": \"a6930f2b-007c-4e60-8008-5b8148640bb3\"\n    },\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 83\n    },\n    \"_id\": \"e1FiQhyp9MZpVjhRM4FRDd\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"aeexT3DP9K+4acj5klghMB\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"9bgRW4NMJLFrJ03KW+iWra\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"buttom\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 92\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 93\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -320,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"1cWd59UadF17Gx+2fFiY1O\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 91\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 4,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0,\n    \"_id\": \"54hCBoLfNHsqgrjoALpPMN\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"26uS0dVOZFybF2P6zRAZOf\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"playerList\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [\n      {\n        \"__id__\": 95\n      },\n      {\n        \"__id__\": 110\n      },\n      {\n        \"__id__\": 113\n      },\n      {\n        \"__id__\": 116\n      },\n      {\n        \"__id__\": 119\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 122\n      },\n      {\n        \"__id__\": 123\n      },\n      {\n        \"__id__\": 124\n      },\n      {\n        \"__id__\": 125\n      },\n      {\n        \"__id__\": 126\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 127\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 158.71,\n      \"height\": 44\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -563,\n        294,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"2a4YEFlc5HlayO75fomNI6\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"playerList\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 94\n    },\n    \"_children\": [\n      {\n        \"__id__\": 96\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 109\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        2,\n        -46,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"a51mlx04FNs7wAJ5CBsl3N\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New ScrollView\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 95\n    },\n    \"_children\": [\n      {\n        \"__id__\": 97\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 106\n      },\n      {\n        \"__id__\": 107\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 108\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 184,\n      \"g\": 184,\n      \"b\": 184,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 180,\n      \"height\": 200\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        88,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"7bizMKFIFPTaXbx4ZBxs1T\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"view\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 96\n    },\n    \"_children\": [\n      {\n        \"__id__\": 98\n      },\n      {\n        \"__id__\": 101\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 104\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 105\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 180,\n      \"height\": 200\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"e3FFUf4VlOF7nfXkFXUTOg\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"content\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 97\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 99\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 100\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 180,\n      \"height\": 1\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"cc2WOYjOBKcbCeop1Cqdwi\"\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 98\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 180,\n      \"height\": 1\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 2,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 0,\n    \"_N$paddingRight\": 0,\n    \"_N$paddingTop\": 4,\n    \"_N$paddingBottom\": 4,\n    \"_N$spacingX\": 0,\n    \"_N$spacingY\": 7,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0,\n    \"_N$affectedByScale\": false,\n    \"_id\": \"16qLL2BSFCYJWPZM4+TOdh\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"7aaaUjtAJNYaPA9rhT8GQ6\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"list\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 97\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 102\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 103\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 58,\n      \"g\": 213,\n      \"b\": 213,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 164.66,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -83,\n        -14,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"93VksPWkFH/Lz1RHzNiTwJ\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 101\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"Lv99 玩家名字\",\n    \"_N$string\": \"Lv99 玩家名字\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"a4S0JFjYFPX7v5wuMydPk2\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"01+q2qaVZN8rT3hRWm9GUm\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Mask\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 97\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_segments\": 64,\n    \"_N$alphaThreshold\": 1,\n    \"_N$inverted\": false,\n    \"_id\": \"493MAqhEhCOaKcB1aqaojG\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"d7vrxgdANEjqTWqQDr6jem\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.ScrollView\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 96\n    },\n    \"_enabled\": true,\n    \"horizontal\": false,\n    \"vertical\": true,\n    \"inertia\": true,\n    \"brake\": 0.75,\n    \"elastic\": true,\n    \"bounceDuration\": 0.23,\n    \"scrollEvents\": [],\n    \"cancelInnerEvents\": true,\n    \"_N$content\": {\n      \"__id__\": 98\n    },\n    \"content\": {\n      \"__id__\": 98\n    },\n    \"_N$horizontalScrollBar\": null,\n    \"_N$verticalScrollBar\": null,\n    \"_id\": \"79deMsgDxFjaW1iLoQz0CE\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 96\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ba04946c-b9d3-41b7-8160-6d99973cc159\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"08e/p6jjhPO7yP4HQIHCJH\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"5aQwzI8a5NTLs7vULbOFoL\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"5fxdDjHpBPSpiVuzbKObGb\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 94\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 111\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 112\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 70,\n      \"height\": 35.28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        40,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"199xd7KtBFYo48WJfBW3Q1\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 110\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"在线:\",\n    \"_N$string\": \"在线:\",\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"295igpeAFKeKRXg65bQE0l\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"807BWxe01LcJCkqGHpeyHJ\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"num\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 94\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 114\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 115\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 3,\n      \"g\": 233,\n      \"b\": 49,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 14,\n      \"height\": 35.28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        85,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"03j/27JdRFaocqfMMzKzrs\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 113\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"9\",\n    \"_N$string\": \"9\",\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"e92yO05VNNs5rp9z7WubNb\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"53s7vP5U5E9b6/l2WiDsA7\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 94\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 117\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 118\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 28,\n      \"height\": 35.28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        109,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"54DXuYwEhO/79Q9OxiQ86s\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 116\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"人\",\n    \"_N$string\": \"人\",\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"be0LA1EXxCQJ8PFcB4Tpsx\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"cfP6HP+KxEjKPuTk7vuRm7\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"arrow\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 94\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 120\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 121\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 27.71,\n      \"height\": 35.28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        139.855,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"1b5JDXuuJIwYCjepGoli2E\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 119\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"▼\",\n    \"_N$string\": \"▼\",\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"30PKziSepCSIXuDrLS7VDS\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"90RNhRlClN0Js5jeV+6US/\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 94\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ba04946c-b9d3-41b7-8160-6d99973cc159\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"3a4OBRmq5NC7XHUiRNbh3H\"\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 94\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 158.71,\n      \"height\": 44\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 1,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 2,\n    \"_N$paddingRight\": 5,\n    \"_N$paddingTop\": 0,\n    \"_N$paddingBottom\": 0,\n    \"_N$spacingX\": 3,\n    \"_N$spacingY\": 0,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0,\n    \"_N$affectedByScale\": false,\n    \"_id\": \"77RQ/6NYhD2ZxXtjOXKRI/\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 94\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 9,\n    \"_left\": 5,\n    \"_right\": 0,\n    \"_top\": 26,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0,\n    \"_id\": \"16ioh1IBlO3qvZ523jOmL9\"\n  },\n  {\n    \"__type__\": \"b0e84Fx8oNKto4NyLP7VepY\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 94\n    },\n    \"_enabled\": true,\n    \"playerNum\": {\n      \"__id__\": 114\n    },\n    \"list\": {\n      \"__id__\": 101\n    },\n    \"ScrollView\": {\n      \"__id__\": 96\n    },\n    \"content\": {\n      \"__id__\": 98\n    },\n    \"arrow\": {\n      \"__id__\": 119\n    },\n    \"_id\": \"24DLVAnH9FQIR5mrOt/8uA\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 94\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 0,\n    \"transition\": 0,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 94\n    },\n    \"_id\": \"60c8oDs0hB/KAwBG6TVE/x\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"a1ihCmO05CWYXnE0Zbd58I\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"rankList\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [\n      {\n        \"__id__\": 129\n      },\n      {\n        \"__id__\": 132\n      },\n      {\n        \"__id__\": 135\n      },\n      {\n        \"__id__\": 138\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 172\n      },\n      {\n        \"__id__\": 173\n      },\n      {\n        \"__id__\": 174\n      },\n      {\n        \"__id__\": 175\n      },\n      {\n        \"__id__\": 176\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 177\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 127.71000000000001,\n      \"height\": 44\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 1,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        563,\n        319,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"834JXyvelEd5wSgpmN8oR9\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"arrow\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 128\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 130\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 131\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 27.71,\n      \"height\": 35.28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -111.855,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"cbZ7ZWq99MyYoehZNAZZJ4\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 129\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"▼\",\n    \"_N$string\": \"▼\",\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"28tVHcDklOOI0BoOm5KI5H\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"49ImGsENlLXpWXpjChoH81\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 128\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 133\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 134\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 70,\n      \"height\": 35.28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -60,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"78MO3UwhhEFqMLQ52XLMUM\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 132\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"排名:\",\n    \"_N$string\": \"排名:\",\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"4fwDusZ8BE4ZbW14mXV/MW\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"861+bz5/1M97snZdkEV8L2\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"num\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 128\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 136\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 137\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 3,\n      \"g\": 233,\n      \"b\": 49,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 14,\n      \"height\": 35.28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -15,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"98x5YDio5LjIOrzc34nDX/\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 135\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"0\",\n    \"_N$string\": \"0\",\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"cfIv+/IelIQr9eTMc1lshz\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"d3LeSNVHlC/Yjsb36isM3S\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"rankList\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 128\n    },\n    \"_children\": [\n      {\n        \"__id__\": 139\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 171\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -5,\n        -46,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"ebongAlUZEK7yWrMWlOhCA\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New ScrollView\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 138\n    },\n    \"_children\": [\n      {\n        \"__id__\": 140\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 168\n      },\n      {\n        \"__id__\": 169\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 170\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 184,\n      \"g\": 184,\n      \"b\": 184,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 200\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -145,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"49nrrR0uVN9pZa24pOSV7s\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"view\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 139\n    },\n    \"_children\": [\n      {\n        \"__id__\": 141\n      },\n      {\n        \"__id__\": 152\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 166\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 167\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 200\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"f9vwYuIE5NRYTenNcOgdx6\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"list\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 140\n    },\n    \"_children\": [\n      {\n        \"__id__\": 142\n      },\n      {\n        \"__id__\": 145\n      },\n      {\n        \"__id__\": 148\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 151\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 250,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -47,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"24keCyyYNJKoQ+2CQC7sWj\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"rank\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 141\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 143\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 144\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 247,\n      \"g\": 85,\n      \"b\": 189,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 36,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -107.9,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"36cviuO55FdIiB5pFicUNh\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 142\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"999\",\n    \"_N$string\": \"999\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"fePW20EkROZqAdwauFw919\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"47Mun9AF1NUovJJTNNY18Q\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"name\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 141\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 146\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 147\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 95,\n      \"g\": 155,\n      \"b\": 245,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 96,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -14,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"1d1kg+bf5K5KRj9UJjHWuP\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 145\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"我很牛牛\",\n    \"_N$string\": \"我很牛牛\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"21efWtjgpPrLUCZ9z1BNB+\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"6bRDSAwWtCY5ZpXRv4nnXb\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"gold\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 141\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 149\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 150\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 213,\n      \"g\": 221,\n      \"b\": 9,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 67.98,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        95,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"ecb5ezZ7tJxYXvB09nrJsi\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 148\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"1000亿\",\n    \"_N$string\": \"1000亿\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"37t3mCddVDnZtLGtmzyxcQ\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"84TC7tDulFHY0cB03LgyEV\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"c5SRwDrQZHW61hKLJ4L+r8\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"content\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 140\n    },\n    \"_children\": [\n      {\n        \"__id__\": 153\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 164\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 165\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 32\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"73aPONb3hMS6mK2L2zXza1\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"title\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 152\n    },\n    \"_children\": [\n      {\n        \"__id__\": 154\n      },\n      {\n        \"__id__\": 157\n      },\n      {\n        \"__id__\": 160\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 163\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 58,\n      \"g\": 213,\n      \"b\": 213,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -16,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"d9Y1CtsRBFuZkvuylqpQhp\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"rank\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 153\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 155\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 156\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 247,\n      \"g\": 85,\n      \"b\": 189,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 48,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -107.9,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"55Gour+eFIl5Z+XPYTxUyn\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 154\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"名次\",\n    \"_N$string\": \"名次\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"9bOwx0EfJC+6WOBTAYfiM3\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"2c5v3xHqBKt5GkQg/xfJtq\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"name\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 153\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 158\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 159\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 95,\n      \"g\": 155,\n      \"b\": 245,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 48,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -14,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"de0EQdvXNMrLW71xmON1Cp\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 157\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"姓名\",\n    \"_N$string\": \"姓名\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"eaeAx4jv1HOL8/SCtM2L4R\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"2dKJgwtfBGY5NPPgpDdXJg\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"gold\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 153\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 161\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 162\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 213,\n      \"g\": 221,\n      \"b\": 9,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 48,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        95,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"16iVsvCdZAaK5yg5ErM+wJ\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 160\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"金币\",\n    \"_N$string\": \"金币\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"36twZ+rWVFq7yh205L34em\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"c0HIrTvblMbLEJXQEEjHy6\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"42+VT7C/pAZrGwec98KydK\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 152\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 32\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 2,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 0,\n    \"_N$paddingRight\": 0,\n    \"_N$paddingTop\": 4,\n    \"_N$paddingBottom\": 4,\n    \"_N$spacingX\": 0,\n    \"_N$spacingY\": 7,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0,\n    \"_N$affectedByScale\": false,\n    \"_id\": \"b0hxBeHLVPAb3TKDSAxezK\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"535LzA6fNObJrbXcIsV6id\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Mask\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 140\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_segments\": 64,\n    \"_N$alphaThreshold\": 1,\n    \"_N$inverted\": false,\n    \"_id\": \"bcdDZ5ngdLjKt/3DIsl1QS\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"82FrnGDfFH0p+Q35yBUXjU\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.ScrollView\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 139\n    },\n    \"_enabled\": true,\n    \"horizontal\": false,\n    \"vertical\": true,\n    \"inertia\": true,\n    \"brake\": 0.75,\n    \"elastic\": true,\n    \"bounceDuration\": 0.23,\n    \"scrollEvents\": [],\n    \"cancelInnerEvents\": true,\n    \"_N$content\": {\n      \"__id__\": 152\n    },\n    \"content\": {\n      \"__id__\": 152\n    },\n    \"_N$horizontalScrollBar\": null,\n    \"_N$verticalScrollBar\": null,\n    \"_id\": \"56FxwQTolPw5AABZd2nHrf\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 139\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ba04946c-b9d3-41b7-8160-6d99973cc159\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"0ckG/qM2VB777wzJW7DluO\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"322DgYTGVNEJR8vK2bS14u\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"echw8dxLhARbHcVvGyvQVG\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 128\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ba04946c-b9d3-41b7-8160-6d99973cc159\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"c2A7WAWPlCUI3+Z8uI/wO2\"\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 128\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 127.71000000000001,\n      \"height\": 44\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 1,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 2,\n    \"_N$paddingRight\": 5,\n    \"_N$paddingTop\": 0,\n    \"_N$paddingBottom\": 0,\n    \"_N$spacingX\": 3,\n    \"_N$spacingY\": 0,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0,\n    \"_N$affectedByScale\": false,\n    \"_id\": \"7dfPrIzcVEMpbRFX6nctEE\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 128\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 33,\n    \"_left\": 587.29,\n    \"_right\": 5,\n    \"_top\": 1,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0,\n    \"_id\": \"80XIvXaVlGRayABg8N+TTp\"\n  },\n  {\n    \"__type__\": \"ea89bn3rB5I0JjOqv+rvIUH\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 128\n    },\n    \"_enabled\": true,\n    \"playerNum\": {\n      \"__id__\": 136\n    },\n    \"list\": {\n      \"__id__\": 141\n    },\n    \"ScrollView\": {\n      \"__id__\": 139\n    },\n    \"content\": {\n      \"__id__\": 152\n    },\n    \"arrow\": {\n      \"__id__\": 129\n    },\n    \"_id\": \"597IN8vbJG5ojCQNpFj+TZ\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 128\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 0,\n    \"transition\": 0,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 128\n    },\n    \"_id\": \"f76CuroVlFpJzR6BavEL15\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"21RvWIFtBF1qtrCcYdmams\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"prefabs\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 179\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 180\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"6bBaIy5M9M1ax6sx7sv3Gq\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 178\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960,\n    \"_id\": \"fdZMP61V1KqZMnymO3s0hb\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"b47OPYM3tBFa69HJfOe8T3\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Canvas\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_designResolution\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_fitWidth\": true,\n    \"_fitHeight\": true,\n    \"_id\": \"d9e4F9jrFJFZIU0lTz1p/m\"\n  },\n  {\n    \"__type__\": \"82d97FmxlNJ2Zpfzr2+TKHm\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"icon\": {\n      \"__id__\": 16\n    },\n    \"nickname\": {\n      \"__id__\": 25\n    },\n    \"level\": {\n      \"__id__\": 22\n    },\n    \"grade\": {\n      \"__id__\": 19\n    },\n    \"gold\": {\n      \"__id__\": 32\n    },\n    \"diamond\": {\n      \"__id__\": 41\n    },\n    \"btnUserInfo\": {\n      \"__id__\": 27\n    },\n    \"btnHalls\": [\n      {\n        \"__id__\": 68\n      }\n    ],\n    \"btnGames\": [\n      {\n        \"__id__\": 76\n      },\n      {\n        \"__id__\": 83\n      }\n    ],\n    \"iconBoys\": [\n      {\n        \"__uuid__\": \"1a8614f1-055a-4ef6-9b8a-c7494b9e21ee\"\n      },\n      {\n        \"__uuid__\": \"f4291eab-d5c4-4f85-9784-466782ce4e77\"\n      },\n      {\n        \"__uuid__\": \"da999093-058c-4060-8758-9ac6c13b20bb\"\n      },\n      {\n        \"__uuid__\": \"b8497473-5d8f-48ac-8bf1-41c00eca0154\"\n      },\n      {\n        \"__uuid__\": \"5a0919bf-4cf7-49e2-bc32-115c0968926e\"\n      },\n      {\n        \"__uuid__\": \"baa15fbd-591c-428f-86d9-95d999912d6f\"\n      }\n    ],\n    \"iconGirls\": [\n      {\n        \"__uuid__\": \"8634744a-ef46-4d3d-94a9-628d0a11396e\"\n      },\n      {\n        \"__uuid__\": \"e5a63e5c-fac7-47fc-a1bf-69aafd6e16b2\"\n      },\n      {\n        \"__uuid__\": \"f84136de-fa2c-40e6-aba3-80ac9ca9c876\"\n      },\n      {\n        \"__uuid__\": \"1ae09d07-5d6c-4c21-8e19-85b40d2902d5\"\n      },\n      {\n        \"__uuid__\": \"1203c8ab-ab77-4419-8cf4-fbead8bccb91\"\n      },\n      {\n        \"__uuid__\": \"eec162c8-8b6a-4457-a777-5e98958a4b28\"\n      }\n    ],\n    \"grades\": [\n      {\n        \"__uuid__\": \"0bea8cf1-1661-4fa1-be92-01c5eda39cc9\"\n      },\n      {\n        \"__uuid__\": \"150d095a-0f5c-4077-a13a-2a77cc79b3a1\"\n      },\n      {\n        \"__uuid__\": \"4c203f6e-7937-41ee-bf31-c77056925ad3\"\n      },\n      {\n        \"__uuid__\": \"18b5e2d3-c4e8-44ff-a587-01a9e9bb04ee\"\n      },\n      {\n        \"__uuid__\": \"1c54a708-fec2-4f5a-8200-42d306cc9ec5\"\n      },\n      {\n        \"__uuid__\": \"0d76e7f9-8ead-488d-8060-23fd9ed5f424\"\n      },\n      {\n        \"__uuid__\": \"7806e9a8-4594-4098-b531-52b6ee3f4660\"\n      },\n      {\n        \"__uuid__\": \"a16bba77-bc9d-4056-a8f5-d129736c834f\"\n      },\n      {\n        \"__uuid__\": \"eaf4957f-e774-4aa4-a349-865cdbe13570\"\n      },\n      {\n        \"__uuid__\": \"71259728-83b9-4ebc-ba45-1775f2825f1d\"\n      }\n    ],\n    \"userInfo\": {\n      \"__id__\": 11\n    },\n    \"_id\": \"787VVA4AtE8YuibHxHO7UL\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"alignMode\": 1,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0,\n    \"_id\": \"f3u2zfuz5MILJnaiJm2VlV\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 2\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"3bIAzylIdCKYklFw7FUjWU\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"MASK\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 186\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 192\n      },\n      {\n        \"__id__\": 193\n      },\n      {\n        \"__id__\": 194\n      },\n      {\n        \"__id__\": 195\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 196\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 960\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        568,\n        320,\n        0,\n        0,\n        0,\n        0,\n        1,\n        0,\n        0,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"ccpGnD4qJF/YGmjsBtrD0b\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 185\n    },\n    \"_children\": [\n      {\n        \"__id__\": 187\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 190\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 191\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 340.86,\n      \"height\": 60\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -160,\n        6,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"94vVM4QhxBvrHu/B+JXlfI\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 186\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 188\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 189\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 426.78,\n      \"height\": 30\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        160,\n        -60,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"b24DOOy7NPPrSeUqtlPP6Y\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 187\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"(首次加载较为缓慢,请耐心等待!)\",\n    \"_N$string\": \"(首次加载较为缓慢,请耐心等待!)\",\n    \"_fontSize\": 30,\n    \"_lineHeight\": 30,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"9faLwqt+lEdamN1/c6r4Pv\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 185\n    },\n    \"asset\": {\n      \"__uuid__\": \"da882197-7cb5-4aaf-a260-71e66df26eab\"\n    },\n    \"fileId\": \"a7gICF+PdJmohmhWGnctxf\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 186\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"拼命加载中...\",\n    \"_N$string\": \"拼命加载中...\",\n    \"_fontSize\": 60,\n    \"_lineHeight\": 60,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"90sUWQ4xhE5p4Y8Qlb/Nw2\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 185\n    },\n    \"asset\": {\n      \"__uuid__\": \"da882197-7cb5-4aaf-a260-71e66df26eab\"\n    },\n    \"fileId\": \"74oA7P6lRJRo8dYusFYVsF\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 185\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"43AcoO7bBFuYyz1t2vhF2v\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 185\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 0,\n    \"transition\": 0,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 185\n    },\n    \"_id\": \"50d0VqZDRBx4RzcZRmO4hO\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 185\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 1280,\n    \"_originalHeight\": 720,\n    \"_id\": \"8ek9T+UiFCWpABgQAfzuoR\"\n  },\n  {\n    \"__type__\": \"693a7ELMkJMyZwXlPzlgrnT\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 185\n    },\n    \"_enabled\": true,\n    \"lab\": {\n      \"__id__\": 190\n    },\n    \"_id\": \"55oJZSzstNC68k796u7wSP\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 185\n    },\n    \"asset\": {\n      \"__uuid__\": \"da882197-7cb5-4aaf-a260-71e66df26eab\"\n    },\n    \"fileId\": \"aaOqbEv3hCQItBI0RvK/O3\",\n    \"sync\": false\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/Scene/lobby.fire.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"6ac1aa23-bc32-4c13-a8dd-bf4f11d7c417\",\n  \"asyncLoadAssets\": false,\n  \"autoReleaseAssets\": true,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Scene/login.fire",
    "content": "[\n  {\n    \"__type__\": \"cc.SceneAsset\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_native\": \"\",\n    \"scene\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Scene\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [\n      {\n        \"__id__\": 2\n      },\n      {\n        \"__id__\": 113\n      },\n      {\n        \"__id__\": 125\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": null,\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_is3DNode\": true,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"autoReleaseAssets\": false,\n    \"_id\": \"22ba6ac9-5d3e-4cae-b3f7-d03ff4163cf2\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Canvas\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 3\n      },\n      {\n        \"__id__\": 5\n      },\n      {\n        \"__id__\": 8\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 111\n      },\n      {\n        \"__id__\": 112\n      }\n    ],\n    \"_prefab\": null,\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        568,\n        320,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"e4XZCyrKFMF61EeohokaUM\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Main Camera\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 4\n      }\n    ],\n    \"_prefab\": null,\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        243.35313846342729,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"e0nKLWilRGH5kQ1p/xVVmI\"\n  },\n  {\n    \"__type__\": \"cc.Camera\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 3\n    },\n    \"_enabled\": true,\n    \"_cullingMask\": 4294967295,\n    \"_clearFlags\": 7,\n    \"_backgroundColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_depth\": -1,\n    \"_zoomRatio\": 1,\n    \"_targetTexture\": null,\n    \"_fov\": 60,\n    \"_orthoSize\": 10,\n    \"_nearClip\": 1,\n    \"_farClip\": 4096,\n    \"_ortho\": true,\n    \"_rect\": {\n      \"__type__\": \"cc.Rect\",\n      \"x\": 0,\n      \"y\": 0,\n      \"width\": 1,\n      \"height\": 1\n    },\n    \"_renderStages\": 1,\n    \"_alignWithScreen\": true,\n    \"_id\": \"cdrrF8t91LPLfexa7ZvBge\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 6\n      },\n      {\n        \"__id__\": 7\n      }\n    ],\n    \"_prefab\": null,\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"00vtDoh4NEiKzZtW0pRNZK\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 5\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a0471109-af41-4687-b692-52806ef166c7\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"cbYvfsTKFDYoiyOyzi3st+\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 5\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 1280,\n    \"_originalHeight\": 720,\n    \"_id\": \"f1pB1v6r9A54TEscCXjHrZ\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"prefabs\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [\n      {\n        \"__id__\": 9\n      },\n      {\n        \"__id__\": 108\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 110\n      }\n    ],\n    \"_prefab\": null,\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"afNpyxbL5Ld7gW6whClxpD\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"signIn\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 8\n    },\n    \"_children\": [\n      {\n        \"__id__\": 10\n      },\n      {\n        \"__id__\": 15\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 105\n      },\n      {\n        \"__id__\": 106\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 107\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"77WYE+fthGbaKk2EWlAHrr\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"M\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 9\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 11\n      },\n      {\n        \"__id__\": 12\n      },\n      {\n        \"__id__\": 13\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 14\n    },\n    \"_opacity\": 150,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"a5AT6uwvhMCaxUVYbsbcMk\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 10\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"8eL99IBopB26+1itgxYJJh\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 10\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 0,\n    \"transition\": 0,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 10\n    },\n    \"_id\": \"3agBKuDrpLwYdFxo3RBQfl\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 10\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960,\n    \"_id\": \"a2U9CUO0FIFqpjJPETPR+0\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"ae5XIARNRJZaJJuVlC/s81\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 9\n    },\n    \"_children\": [\n      {\n        \"__id__\": 16\n      },\n      {\n        \"__id__\": 19\n      },\n      {\n        \"__id__\": 52\n      },\n      {\n        \"__id__\": 85\n      },\n      {\n        \"__id__\": 92\n      },\n      {\n        \"__id__\": 99\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 103\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 104\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 600,\n      \"height\": 450\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -1.1368683772161603e-13,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"12P3wCardLEbF0Ri2XMD5S\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"title\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 15\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 17\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 18\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 115,\n      \"b\": 13,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 176,\n      \"height\": 55.44\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        169,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"1eHS3VsmZG1onlJJlnCafR\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 16\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"账号登录\",\n    \"_N$string\": \"账号登录\",\n    \"_fontSize\": 44,\n    \"_lineHeight\": 44,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"e2ApPugRZAIaV1LQq7zflS\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"32+R9PHA1NJIzoKKz5w6NR\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_inputBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 15\n    },\n    \"_children\": [\n      {\n        \"__id__\": 20\n      },\n      {\n        \"__id__\": 23\n      },\n      {\n        \"__id__\": 38\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 50\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 51\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 535,\n      \"height\": 87\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        72,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"96Nc75VI9N4pUEESUcKz7N\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon_account\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 19\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 21\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 22\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 32,\n      \"height\": 36\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -220,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"a4+rd6td5DQJHKq3i4NGmn\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 20\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5fa82f9b-b4c4-45f1-bdaa-4720894fc694\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"a6egExhflIW78Kd81es/Sv\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"2bdkTz4CNLrZJDQhuAfnPv\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"editboxacc\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 19\n    },\n    \"_children\": [\n      {\n        \"__id__\": 24\n      },\n      {\n        \"__id__\": 28\n      },\n      {\n        \"__id__\": 32\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 36\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 37\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 430,\n      \"height\": 70\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        42,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"3chWodxuxKj7v0VTC7TvCc\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"BACKGROUND_SPRITE\",\n    \"_objFlags\": 512,\n    \"_parent\": {\n      \"__id__\": 23\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 25\n      },\n      {\n        \"__id__\": 26\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 27\n    },\n    \"_opacity\": 45,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 430,\n      \"height\": 70\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"edAPZSKZJJSYU+vupOFduj\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 24\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ff0e91c7-55c6-4086-a39f-cb6e457b8c3b\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"d4BMz6uvpCUJu8LcaMO/ur\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 24\n    },\n    \"_enabled\": true,\n    \"alignMode\": 0,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 160,\n    \"_originalHeight\": 40,\n    \"_id\": \"96q7XNYVRMPJaxZWvcqrfa\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"edAPZSKZJJSYU+vupOFduj\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"TEXT_LABEL\",\n    \"_objFlags\": 512,\n    \"_parent\": {\n      \"__id__\": 23\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 29\n      },\n      {\n        \"__id__\": 30\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 31\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 158,\n      \"height\": 40\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -78,\n        20,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"e5joRQbqxM2Y1S0Ywkz/By\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 28\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": true,\n    \"_string\": \"\",\n    \"_N$string\": \"\",\n    \"_fontSize\": 20,\n    \"_lineHeight\": 25,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"06Ylwk9JVLo74CnW16hnlb\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 28\n    },\n    \"_enabled\": true,\n    \"alignMode\": 0,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 2,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 158,\n    \"_originalHeight\": 40,\n    \"_id\": \"62mYujvEVAO5l3G3+F0M1O\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"e5joRQbqxM2Y1S0Ywkz/By\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"PLACEHOLDER_LABEL\",\n    \"_objFlags\": 512,\n    \"_parent\": {\n      \"__id__\": 23\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 33\n      },\n      {\n        \"__id__\": 34\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 35\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 187,\n      \"g\": 187,\n      \"b\": 187,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 428,\n      \"height\": 70\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -213,\n        35,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"06DHEMSpBAe7WnuQB65txC\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 32\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": true,\n    \"_string\": \"Enter account here...\",\n    \"_N$string\": \"Enter account here...\",\n    \"_fontSize\": 20,\n    \"_lineHeight\": 25,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"c4C0xz6flBAZ8D945lBJUN\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 32\n    },\n    \"_enabled\": true,\n    \"alignMode\": 0,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 2,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 158,\n    \"_originalHeight\": 40,\n    \"_id\": \"20WHvJbeZD3qlCZ7BekL7W\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"06DHEMSpBAe7WnuQB65txC\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.EditBox\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 23\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_string\": \"\",\n    \"returnType\": 0,\n    \"maxLength\": 16,\n    \"_tabIndex\": 0,\n    \"editingDidBegan\": [],\n    \"textChanged\": [],\n    \"editingDidEnded\": [],\n    \"editingReturn\": [],\n    \"_N$textLabel\": {\n      \"__id__\": 29\n    },\n    \"_N$placeholderLabel\": {\n      \"__id__\": 33\n    },\n    \"_N$background\": {\n      \"__id__\": 25\n    },\n    \"_N$inputFlag\": 5,\n    \"_N$inputMode\": 6,\n    \"_N$stayOnTop\": false,\n    \"_id\": \"22EhqS0bFJ05GU6t5Ggls+\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"3chWodxuxKj7v0VTC7TvCc\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"editBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 19\n    },\n    \"_children\": [\n      {\n        \"__id__\": 39\n      },\n      {\n        \"__id__\": 42\n      },\n      {\n        \"__id__\": 45\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 48\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 49\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 430,\n      \"height\": 70\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -184.563,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"8fGnqvgmRGiZV6tbatnAvG\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"BACKGROUND_SPRITE\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 40\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 41\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"f0r29YeUxParFA0LpsghgR\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 39\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": null,\n    \"_type\": 1,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"c3eL3iv8FGhqZe6jwIHv+q\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"f0r29YeUxParFA0LpsghgR\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"TEXT_LABEL\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 43\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 44\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 50.4\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"92Fc1BXJJMnJjPyuog7eqg\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 42\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": true,\n    \"_string\": \"\",\n    \"_N$string\": \"\",\n    \"_fontSize\": 30,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"23noT4qb5OjaAFGHkYnu+y\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"92Fc1BXJJMnJjPyuog7eqg\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"PLACEHOLDER_LABEL\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 46\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 47\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 204,\n      \"g\": 204,\n      \"b\": 204,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 50.4\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"baaRFM0O1Nzrug7Pkdos8I\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 45\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": true,\n    \"_string\": \"请输入账号\",\n    \"_N$string\": \"请输入账号\",\n    \"_fontSize\": 30,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"538WRoIOlOl6c5DYMs7Ak4\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"baaRFM0O1Nzrug7Pkdos8I\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.EditBox\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 38\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_string\": \"\",\n    \"returnType\": 0,\n    \"maxLength\": 16,\n    \"_tabIndex\": 0,\n    \"editingDidBegan\": [],\n    \"textChanged\": [],\n    \"editingDidEnded\": [],\n    \"editingReturn\": [],\n    \"_N$textLabel\": {\n      \"__id__\": 43\n    },\n    \"_N$placeholderLabel\": {\n      \"__id__\": 46\n    },\n    \"_N$background\": {\n      \"__id__\": 40\n    },\n    \"_N$inputFlag\": 5,\n    \"_N$inputMode\": 6,\n    \"_N$stayOnTop\": false,\n    \"_id\": \"a7A8UZnUtOd50Q+NeqW0hU\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"2bcpenoEVOh7mGIliKHhIx\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 19\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"cff7d96e-e4f9-4930-bcf2-797e971ff98e\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"90jH/hPktIYpJRJ5Ghhemf\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"06JsbEku9Pd4ShDoubzFpy\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_inputBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 15\n    },\n    \"_children\": [\n      {\n        \"__id__\": 53\n      },\n      {\n        \"__id__\": 56\n      },\n      {\n        \"__id__\": 71\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 83\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 84\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 535,\n      \"height\": 87\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -33,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"52N8je2/5NCKevrTgKszIg\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon_lock\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 52\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 54\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 55\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 37,\n      \"height\": 39\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -220,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"dfw8pJ6sVHZbK136JRuebQ\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 53\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"6304bd8e-e7e6-4fe0-a027-d92a7c28b4e2\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"dfV8xfCptOHoP9nf5urQhz\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"b8LevJQztLLK4nLdSEgtkD\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"editboxpwd\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 52\n    },\n    \"_children\": [\n      {\n        \"__id__\": 57\n      },\n      {\n        \"__id__\": 61\n      },\n      {\n        \"__id__\": 65\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 69\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 70\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 430,\n      \"height\": 70\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        42,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"36wVUZWXlM4JaSqZ78zmTH\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"BACKGROUND_SPRITE\",\n    \"_objFlags\": 512,\n    \"_parent\": {\n      \"__id__\": 56\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 58\n      },\n      {\n        \"__id__\": 59\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 60\n    },\n    \"_opacity\": 45,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 430,\n      \"height\": 70\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"8fNGvlEWZBVKopjFD7vPqN\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 57\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ff0e91c7-55c6-4086-a39f-cb6e457b8c3b\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"d0cov9+nlCpL0hd23lrLAq\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 57\n    },\n    \"_enabled\": true,\n    \"alignMode\": 0,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 160,\n    \"_originalHeight\": 40,\n    \"_id\": \"a68YC0nlJI1LDJ2Or202Ym\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"8fNGvlEWZBVKopjFD7vPqN\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"TEXT_LABEL\",\n    \"_objFlags\": 512,\n    \"_parent\": {\n      \"__id__\": 56\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 62\n      },\n      {\n        \"__id__\": 63\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 64\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 158,\n      \"height\": 40\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -78,\n        20,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"c3SOLT4PNHe7FAXcncQ6r6\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 61\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": true,\n    \"_string\": \"\",\n    \"_N$string\": \"\",\n    \"_fontSize\": 20,\n    \"_lineHeight\": 25,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"8dlObpbE5BuI+qveBsfcKk\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 61\n    },\n    \"_enabled\": true,\n    \"alignMode\": 0,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 2,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 158,\n    \"_originalHeight\": 40,\n    \"_id\": \"5euhWcnJRL/K1FtQk1TXCH\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"c3SOLT4PNHe7FAXcncQ6r6\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"PLACEHOLDER_LABEL\",\n    \"_objFlags\": 512,\n    \"_parent\": {\n      \"__id__\": 56\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 66\n      },\n      {\n        \"__id__\": 67\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 68\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 187,\n      \"g\": 187,\n      \"b\": 187,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 428,\n      \"height\": 70\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -213,\n        35,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"9dqsMa2TNAY6lQQykxtcou\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 65\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": true,\n    \"_string\": \"Enter password here...\",\n    \"_N$string\": \"Enter password here...\",\n    \"_fontSize\": 20,\n    \"_lineHeight\": 25,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"8dbDac0TFAOry51M8bgFge\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 65\n    },\n    \"_enabled\": true,\n    \"alignMode\": 0,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 2,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 158,\n    \"_originalHeight\": 40,\n    \"_id\": \"94KX+CXHZNqodbVNeICfCu\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"9dqsMa2TNAY6lQQykxtcou\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.EditBox\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 56\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_string\": \"\",\n    \"returnType\": 0,\n    \"maxLength\": 16,\n    \"_tabIndex\": 0,\n    \"editingDidBegan\": [],\n    \"textChanged\": [],\n    \"editingDidEnded\": [],\n    \"editingReturn\": [],\n    \"_N$textLabel\": {\n      \"__id__\": 62\n    },\n    \"_N$placeholderLabel\": {\n      \"__id__\": 66\n    },\n    \"_N$background\": {\n      \"__id__\": 58\n    },\n    \"_N$inputFlag\": 0,\n    \"_N$inputMode\": 6,\n    \"_N$stayOnTop\": false,\n    \"_id\": \"afA4nQVmhOnoWxFBl2cJYT\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"36wVUZWXlM4JaSqZ78zmTH\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"editBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 52\n    },\n    \"_children\": [\n      {\n        \"__id__\": 72\n      },\n      {\n        \"__id__\": 75\n      },\n      {\n        \"__id__\": 78\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 81\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 82\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 430,\n      \"height\": 70\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -188.1,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"f8jhWmFp1Mg4mb7hy2K4eF\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"BACKGROUND_SPRITE\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 71\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 73\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 74\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"47cSwTFwdM3YnqOq3G45Bx\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 72\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": null,\n    \"_type\": 1,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"fbUaY+j11JgIKzVDtQXQav\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"47cSwTFwdM3YnqOq3G45Bx\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"TEXT_LABEL\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 71\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 76\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 77\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 50.4\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"daSFnudAdBB6AGdoo/tb+v\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 75\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": true,\n    \"_string\": \"\",\n    \"_N$string\": \"\",\n    \"_fontSize\": 30,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"feGOEhcmBEZZxJEML6SY56\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"daSFnudAdBB6AGdoo/tb+v\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"PLACEHOLDER_LABEL\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 71\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 79\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 80\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 204,\n      \"g\": 204,\n      \"b\": 204,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 50.4\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"b740bld5dFm4+LgOGKp3Po\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 78\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": true,\n    \"_string\": \"请输入密码\",\n    \"_N$string\": \"请输入密码\",\n    \"_fontSize\": 30,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"de+8uSiWBOmYN0A4fZrySu\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"b740bld5dFm4+LgOGKp3Po\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.EditBox\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 71\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_string\": \"\",\n    \"returnType\": 0,\n    \"maxLength\": 16,\n    \"_tabIndex\": 0,\n    \"editingDidBegan\": [],\n    \"textChanged\": [],\n    \"editingDidEnded\": [],\n    \"editingReturn\": [],\n    \"_N$textLabel\": {\n      \"__id__\": 76\n    },\n    \"_N$placeholderLabel\": {\n      \"__id__\": 79\n    },\n    \"_N$background\": {\n      \"__id__\": 73\n    },\n    \"_N$inputFlag\": 0,\n    \"_N$inputMode\": 6,\n    \"_N$stayOnTop\": false,\n    \"_id\": \"52NTKfn61BcJVVKlyJWbxC\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"f1fkvZTJpO76r3Gy8yR7MT\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 52\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"cff7d96e-e4f9-4930-bcf2-797e971ff98e\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"83vRdjRxVO0LmzVXkc983g\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"0a2N0cjUdMM7gEf3KLko9S\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnAccountSignln\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 15\n    },\n    \"_children\": [\n      {\n        \"__id__\": 86\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 89\n      },\n      {\n        \"__id__\": 90\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 91\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 160,\n      \"b\": 233,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 535,\n      \"height\": 90\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -150,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"a2nTJaHu9GM6ubZj7Vp9Zr\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 85\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 87\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 88\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 107.96,\n      \"height\": 36\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"cdmdaKjFxNaZB9nbhzC1iF\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 86\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"登   录\",\n    \"_N$string\": \"登   录\",\n    \"_fontSize\": 36,\n    \"_lineHeight\": 36,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"e6e+9d9QVPfL18ECnDdWVA\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"damjjgE0ZHKbSmq2SuTKVC\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 85\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"e47fd4ef-6891-48eb-948d-77e82e794052\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"21OMm3xltLvJ8RZ08OZGqz\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 85\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 160,\n      \"b\": 233,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 137,\n      \"b\": 200,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 137,\n      \"b\": 200,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 32,\n      \"g\": 184,\n      \"b\": 254,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 32,\n      \"g\": 184,\n      \"b\": 254,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 85\n    },\n    \"_id\": \"eeg2gK3ipFP5tLKA1xjJOc\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"f3as2l1q9N3JOg+pR4R4gd\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnTouristSignln\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 15\n    },\n    \"_children\": [\n      {\n        \"__id__\": 93\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 96\n      },\n      {\n        \"__id__\": 97\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 98\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 170,\n      \"g\": 25,\n      \"b\": 252,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 535,\n      \"height\": 90\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -150,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"11wjhRrNRCt5HCjeDT1++5\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 92\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 94\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 95\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 126,\n      \"height\": 45.36\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"b8Je1QQtlNQoMZOGr5jsfR\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 93\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"游   客\",\n    \"_N$string\": \"游   客\",\n    \"_fontSize\": 36,\n    \"_lineHeight\": 36,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"19WYlwv6RDM4o+yhyPUbW+\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"f44ywZC+VDd4j7tycqTPXD\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 92\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"e47fd4ef-6891-48eb-948d-77e82e794052\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"07Jk6CfcNCUogO0wMLZti9\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 92\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 170,\n      \"g\": 25,\n      \"b\": 252,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 141,\n      \"g\": 10,\n      \"b\": 217,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 141,\n      \"g\": 10,\n      \"b\": 217,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 191,\n      \"g\": 80,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 191,\n      \"g\": 80,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 92\n    },\n    \"_id\": \"e5YBHk2+hCOJH/judbLyTx\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"6eUF4d/fhME6FLnjcRe/ry\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnRegister\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 15\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 100\n      },\n      {\n        \"__id__\": 101\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 102\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 52,\n      \"g\": 173,\n      \"b\": 5,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 60,\n      \"height\": 63\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        250,\n        183,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"09IWg9W2xCk7bRnJnqZ/tx\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 99\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"注册\",\n    \"_N$string\": \"注册\",\n    \"_fontSize\": 30,\n    \"_lineHeight\": 50,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"21cK1hXsNEo69JCKaLVyUc\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 99\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 52,\n      \"g\": 173,\n      \"b\": 5,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 47,\n      \"g\": 159,\n      \"b\": 3,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 47,\n      \"g\": 159,\n      \"b\": 3,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 60,\n      \"g\": 193,\n      \"b\": 9,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 60,\n      \"g\": 193,\n      \"b\": 9,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 99\n    },\n    \"_id\": \"eeay8iuDFMPZlEkGP5eybB\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"afCYDB57RNYLL0sRWhewcw\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 15\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"72kVEpABBFXbbQtdIg9ceE\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"15ALHLWV1IOJd2GjCN/eJP\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"8c228otOxFL1pRKhr621AqK\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 9\n    },\n    \"_enabled\": true,\n    \"btnTouristSignln\": {\n      \"__id__\": 92\n    },\n    \"btnAccountSignln\": {\n      \"__id__\": 85\n    },\n    \"btnRegister\": {\n      \"__id__\": 99\n    },\n    \"editBoxAccount\": {\n      \"__id__\": 36\n    },\n    \"editBoxPassword\": {\n      \"__id__\": 69\n    },\n    \"viewAnimations\": [\n      {\n        \"__id__\": 16\n      },\n      {\n        \"__id__\": 19\n      },\n      {\n        \"__id__\": 52\n      },\n      {\n        \"__id__\": 92\n      },\n      {\n        \"__id__\": 99\n      }\n    ],\n    \"_id\": \"34vNrEYIdEqYZGzDyPt5tE\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 9\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960,\n    \"_id\": \"f0FQKCGxJL6pS3aQt1vuuP\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 9\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"81/HoEzyJNvbxMVhY8IKJJ\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 8\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 109\n      }\n    ],\n    \"_prefab\": null,\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 108.96,\n      \"height\": 50.4\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -227.68,\n        176.323,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"81xfTbi9tC+bN4rubMJ6dU\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 108\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"v1.0.1\",\n    \"_N$string\": \"v1.0.1\",\n    \"_fontSize\": 40,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": true,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"d44ofPLahGgLBXrMWJ5Jkg\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 8\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960,\n    \"_id\": \"94fDFUg6pPeJhA5JHwKYrY\"\n  },\n  {\n    \"__type__\": \"cc.Canvas\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_designResolution\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_fitWidth\": false,\n    \"_fitHeight\": true,\n    \"_id\": \"74IJOCKh1P+LITV7afVJo+\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"alignMode\": 1,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0,\n    \"_id\": \"falvQXvLJO27H8BYrZtBT5\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"MASK\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 114\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 120\n      },\n      {\n        \"__id__\": 121\n      },\n      {\n        \"__id__\": 122\n      },\n      {\n        \"__id__\": 123\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 124\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 960\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        568,\n        320,\n        0,\n        0,\n        0,\n        0,\n        1,\n        0,\n        0,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"aaOqbEv3hCQItBI0RvK/O3\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 113\n    },\n    \"_children\": [\n      {\n        \"__id__\": 115\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 118\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 119\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 340.86,\n      \"height\": 60\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -160,\n        6,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"74oA7P6lRJRo8dYusFYVsF\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 114\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 116\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 117\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 426.78,\n      \"height\": 30\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        160,\n        -60,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"a7gICF+PdJmohmhWGnctxf\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 115\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"(首次加载较为缓慢,请耐心等待!)\",\n    \"_N$string\": \"(首次加载较为缓慢,请耐心等待!)\",\n    \"_fontSize\": 30,\n    \"_lineHeight\": 30,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"d3My0WiSdOkY5TQ20H6MQ8\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 113\n    },\n    \"asset\": {\n      \"__uuid__\": \"da882197-7cb5-4aaf-a260-71e66df26eab\"\n    },\n    \"fileId\": \"a7gICF+PdJmohmhWGnctxf\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 114\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"拼命加载中...\",\n    \"_N$string\": \"拼命加载中...\",\n    \"_fontSize\": 60,\n    \"_lineHeight\": 60,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"1e9V59FZ5GDLsRQl2zZ32h\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 113\n    },\n    \"asset\": {\n      \"__uuid__\": \"da882197-7cb5-4aaf-a260-71e66df26eab\"\n    },\n    \"fileId\": \"74oA7P6lRJRo8dYusFYVsF\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 113\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"bdY4JXVOJOZbip28GRbKtr\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 113\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 0,\n    \"transition\": 0,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 113\n    },\n    \"_id\": \"f5N4bHleBPtruLVMiNWsd9\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 113\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 1280,\n    \"_originalHeight\": 720,\n    \"_id\": \"71qjrHmaBGC5OeUGtrY8Eo\"\n  },\n  {\n    \"__type__\": \"693a7ELMkJMyZwXlPzlgrnT\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 113\n    },\n    \"_enabled\": true,\n    \"lab\": {\n      \"__id__\": 118\n    },\n    \"_id\": \"f6leJmFfxAqJLECs9psCDi\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 113\n    },\n    \"asset\": {\n      \"__uuid__\": \"da882197-7cb5-4aaf-a260-71e66df26eab\"\n    },\n    \"fileId\": \"aaOqbEv3hCQItBI0RvK/O3\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"init\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 126\n      }\n    ],\n    \"_prefab\": null,\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"42GZpmII5Dq5kzvC+Bv4cQ\"\n  },\n  {\n    \"__type__\": \"a639bGa0axNNr57U2puKm/9\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 125\n    },\n    \"_enabled\": true,\n    \"_id\": \"aaGQ7BsmlMgbfwK+SGSr7W\"\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/Scene/login.fire.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"22ba6ac9-5d3e-4cae-b3f7-d03ff4163cf2\",\n  \"asyncLoadAssets\": false,\n  \"autoReleaseAssets\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Scene/logo.fire",
    "content": "[\n  {\n    \"__type__\": \"cc.SceneAsset\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_rawFiles\": null,\n    \"scene\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Scene\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [\n      {\n        \"__id__\": 2\n      },\n      {\n        \"__id__\": 10\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": null,\n    \"_id\": \"6288a69b-9fff-4215-aa34-fc63346d71b3\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"autoReleaseAssets\": null,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Canvas\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 3\n      },\n      {\n        \"__id__\": 6\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 8\n      },\n      {\n        \"__id__\": 9\n      },\n      {\n        \"__id__\": 22\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"401py6wq9A1778UewnlWrn\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 960\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        360,\n        480,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 4\n      },\n      {\n        \"__id__\": 5\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"97dgK07dFBUo/ZCG+et2Tu\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 960\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 3\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 3\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"logo\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 7\n      }\n    ],\n    \"_prefab\": null,\n    \"_id\": \"4eg/N56lVCAZlQwUMj8Xfg\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 477,\n      \"height\": 190\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 6\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"598a0d41-71ed-4778-9e06-7b8b735bc098\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Canvas\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_designResolution\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 960\n    },\n    \"_fitWidth\": true,\n    \"_fitHeight\": true\n  },\n  {\n    \"__type__\": \"83d3eeZxztJJpcBgn8+Ebjb\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"logo\": {\n      \"__id__\": 6\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"MASK\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 11\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 17\n      },\n      {\n        \"__id__\": 18\n      },\n      {\n        \"__id__\": 19\n      },\n      {\n        \"__id__\": 20\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 21\n    },\n    \"_id\": \"davAF8wXlKMokUX6tqvbZE\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 960\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        360,\n        480,\n        0,\n        0,\n        0,\n        0,\n        1,\n        0,\n        0,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 10\n    },\n    \"_children\": [\n      {\n        \"__id__\": 12\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 15\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 16\n    },\n    \"_id\": \"de4H8ChdtJ5qhV1e0mVQXr\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 340.86,\n      \"height\": 60\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -160,\n        6,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 13\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 14\n    },\n    \"_id\": \"887V7mUXBFAaJOsJ0ied2F\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 426.78,\n      \"height\": 30\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        160,\n        -60,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 12\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 30,\n    \"_fontSize\": 30,\n    \"_lineHeight\": 30,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"(首次加载较为缓慢,请耐心等待!)\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 10\n    },\n    \"asset\": {\n      \"__uuid__\": \"da882197-7cb5-4aaf-a260-71e66df26eab\"\n    },\n    \"fileId\": \"9chRJj8b5FKbtPQI/ayoup\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 11\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 60,\n    \"_fontSize\": 60,\n    \"_lineHeight\": 60,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"拼命加载中...\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 10\n    },\n    \"asset\": {\n      \"__uuid__\": \"da882197-7cb5-4aaf-a260-71e66df26eab\"\n    },\n    \"fileId\": \"f9o7cu1dZEWr4OQCsJ2yRu\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 10\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 10\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"pressedSprite\": null,\n    \"hoverSprite\": null,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 10\n    }\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 10\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 1280,\n    \"_originalHeight\": 720\n  },\n  {\n    \"__type__\": \"693a7ELMkJMyZwXlPzlgrnT\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 10\n    },\n    \"_enabled\": true,\n    \"lab\": {\n      \"__id__\": 15\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 10\n    },\n    \"asset\": {\n      \"__uuid__\": \"da882197-7cb5-4aaf-a260-71e66df26eab\"\n    },\n    \"fileId\": \"1bdP8BAJlMYauHqKWG22cI\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"alignMode\": 1,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/Scene/logo.fire.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"6288a69b-9fff-4215-aa34-fc63346d71b3\",\n  \"asyncLoadAssets\": false,\n  \"autoReleaseAssets\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Scene.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"29f52784-2fca-467b-92e7-8fd9ef8c57b7\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Chat.ts",
    "content": "import vv from \"./vv\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class Turntable extends cc.Component {\n    @property(cc.RichText) chatLab: cc.RichText = null;//文字\n    @property(cc.Node) chatView: cc.Node = null;//发送聊天界面\n    @property(cc.Node) content: cc.Node = null;//聊天信息容器\n    @property(cc.Node) btnArrow: cc.Node = null;//聊天信息箭头\n\n    @property(cc.EditBox) chatEditBox: cc.EditBox = null;//输入框\n    @property(cc.Node) btnSend: cc.Node = null;//发送按钮\n    @property(cc.Node) btnExpression: cc.Node = null;//打开表情按钮\n    @property(cc.Node) bgExpression: cc.Node = null;//表情界面\n    @property([cc.Node]) expressions: cc.Node[] = [];//表情合集\n\n    private interval: number = 0;//发送消息间隔\n\n    onLoad() {\n        this.node.parent = cc.find(\"Canvas/buttom\");\n        this.node.y = -100;\n\n        //调整场景时 显示聊天记录\n        let l = vv.chatInfo.length;\n        if (l > 0) {\n            this.interval = l * 0.2;\n            for (let i = 0; i < l; i++) {\n                this.scheduleOnce(() => {\n                    this.interval -= 0.2;\n                    let node: cc.Node = null;\n                    node = cc.instantiate(this.chatLab.node);\n                    node.parent = this.content;\n                    node.getComponent(cc.RichText).string = vv.msgToBeExpression(vv.chatInfo[i].data);\n                    node.active = true;\n                }, 0.1 * i);\n            }\n        }\n\n        //离线奖励信息显示处理\n        if (vv.needUpdataOffLineReward) {\n            vv.needUpdataOffLineReward = false;\n            //this.updataOffLineReward();\n        }\n    }\n\n    //离线奖励信息显示处理\n    updataOffLineReward() {\n        let lab = \"<color=#99CC2D>您已离线1小时1分<img src='[gold]'/>+[999]<img src='[diam]'/>+[99]<img src='[exp]'/>+[9]</c>\";\n        lab = lab.replace(\"[999]\", vv.userInfo.offLineReward.gold);\n        lab = lab.replace(\"[99]\", vv.userInfo.offLineReward.diamond);\n        lab = lab.replace(\"[9]\", vv.userInfo.offLineReward.exp);\n        let time = vv.userInfo.offLineReward.offLineTime;\n        let a = null;\n        let b = null;\n        if (time >= 1440) {\n            a = Math.floor(time / 1440)\n            b = Math.floor((time - a * 1440) / 24)\n            lab = lab.replace(\"1小时1分\", a + \"天\" + b + \"小时\");\n        }\n        else if (time >= 60) {\n            a = Math.floor(time / 60)\n            b = time - a * 60\n            lab = lab.replace(\"1小时1分\", a + \"小时\" + b + \"分\");\n        }\n        else {\n            lab = lab.replace(\"1小时1分\", time + \"分\");\n        }\n\n        vv.chatInfo.push({ data: lab });\n\n        let node = cc.instantiate(this.chatLab.node);\n        node.parent = this.content;\n\n        node.getComponent(cc.RichText).string = lab;\n        node.active = true;\n    }\n\n    start() {\n        this.scheduleOnce(() => {\n            this.node.runAction(cc.moveTo(0.5, 0, 0).easing(cc.easeOut(0.5)));\n        }, 0.5);\n\n        vv.btnClick(this.btnExpression, () => {//打开表情按钮\n            this.bgExpression.active = !this.bgExpression.active;\n        });\n\n        vv.btnClick(this.btnArrow, () => {//聊天窗口升缩\n            if (this.node.height === 50) {\n                this.node.height = cc.winSize.height / 2;\n                this.chatView.active = true;\n                this.btnArrow.rotation = 180;\n            }\n            else if (this.node.height === cc.winSize.height / 2) {\n                this.node.height = 150;\n                this.chatView.active = false;\n            }\n            else {\n                this.node.height = 50;\n                this.btnArrow.rotation = 0;\n            }\n        });\n\n        vv.btnClick(cc.find(\"Canvas\"), () => {//聊天窗口升缩\n            if (this.node.height !== 50 && this.node.height !== 150) {\n                this.node.height = 50;\n                this.chatView.active = false;\n                this.btnArrow.rotation = 0;\n            }\n        }, true, true);\n\n        for (let i = 0; i < this.expressions.length; i++) {//添加表情点击\n            vv.btnClick(this.expressions[i], () => {\n                this.chatEditBox.string = this.chatEditBox.string.concat(this.expressions[i].name);\n            });\n        }\n\n        vv.btnClick(this.btnSend, () => {//发送按钮\n            let word = this.chatEditBox.string;\n\n            if (!word || word.trim() == \"\") {\n                vv.showTip(\"内容不能为空\");\n                return;\n            }\n            if (word.length < 3) {\n                vv.showTip(\"请输入2个字以上\");\n                return;\n            }\n            if (word.length > 30) {\n                vv.showTip(\"请输入30个字以内\");\n                return;\n            }\n\n            vv.showTip(\"发送成功\");\n            this.chatEditBox.string = \"\";\n            vv.socket.emit('s_chat', { data: word });\n        });\n\n        this.chatEditBox.node.on('editing-return', (event) => {\n            let word = this.chatEditBox.string;\n\n            if (!word || word.trim() == \"\") {\n                vv.showTip(\"内容不能为空\");\n                return;\n            }\n            if (word.length < 3) {\n                vv.showTip(\"请输入2个字以上\");\n                return;\n            }\n            if (word.length > 30) {\n                vv.showTip(\"请输入30个字以内\");\n                return;\n            }\n\n            vv.showTip(\"发送成功\");\n            this.chatEditBox.string = \"\";\n            vv.socket.emit('chat', { data: word });\n        });\n\n        //监听聊天信息\n        let pool = new cc.NodePool();//创建对象池\n\n        vv.eventOn('chat', (data) => {\n            cc.log(\"消息来袭\" + JSON.stringify(data));\n\n            this.interval += 0.2;\n            this.scheduleOnce(() => {\n                this.interval -= 0.2;\n                if (vv.chatInfo.length > 29) {\n                    vv.chatInfo.shift()\n                }\n                vv.chatInfo.push(data);\n\n                if (this.content.childrenCount > 30) pool.put(this.content.children[1]);//向对象池中存入一个节点\n                let node: cc.Node = null;\n                if (pool.size() > 0) {\n                    node = pool.get();\n                }\n                else {\n                    node = cc.instantiate(this.chatLab.node);\n                }\n\n                node.parent = this.content;\n                node.getComponent(cc.RichText).string =`<a href=\"www.baidu.com\" color=\"red\"/>${data.name}</a>`+\":\"+vv.msgToBeExpression(data.data);\n                node.active = true;\n            }, this.interval);\n        }, this);\n    }\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Chat.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"cc6793fa-accf-4b13-82bd-5a4c8dd12268\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Game.ts",
    "content": "import vv from \"./vv\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class NewClass extends cc.Component {\n    @property(cc.Node) btnLeave: cc.Node = null;//退出按钮\n    @property(cc.Node) bgGame: cc.Node = null;//背景图片\n\n\n    onLoad() {\n        vv.screenAdapter();//屏幕适配\n        vv.onScreenSizeChange();//监听屏幕尺寸变化\n\n        let winSize = cc.view.getVisibleSize();\n        if (this.bgGame.width !== winSize.width) {\n            this.bgGame.scale = this.bgGame.width < winSize.width ? winSize.width / this.bgGame.width : this.bgGame.width / winSize.width;\n        }\n        else {\n            this.bgGame.scale = this.bgGame.height < winSize.height ? winSize.height / this.bgGame.height : this.bgGame.height / winSize.height;\n        }\n\n\n    }\n\n    start() {\n        //vv.openPrefab(\"chat\");//聊天\n\n        //退出按钮\n        vv.btnClick(this.btnLeave, () => {\n            vv.pauseTouch();//禁止交互操作\n            vv.loadScene('lobby');//跳转到登录场景\n            vv.socket.emit(\"b_quit\",{})\n        });\n    }\n\n\n\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Script/Game.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"a4dce02d-dd6b-443e-b3cc-79590a053d45\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Hall.ts",
    "content": "import vv from \"./vv\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class NewClass extends cc.Component {\n    @property(cc.Sprite) icon: cc.Sprite = null;//头像\n    @property(cc.Label) nickname: cc.Label = null;//昵称\n    @property(cc.Label) level: cc.Label = null;//等级\n    @property(cc.Sprite) grade: cc.Sprite = null;//段位\n    @property(cc.Label) gold: cc.Label = null;//金币\n    @property(cc.Label) diamond: cc.Label = null;//钻石\n    @property(cc.Node) btnUserInfo: cc.Node = null;//查看玩家信息按钮\n\n    @property([cc.Node]) btnHalls: cc.Node[] = [];//按钮合集\n    @property([cc.Node]) btnGames: cc.Node[] = [];//游戏合集\n\n    @property([cc.SpriteFrame]) iconBoys: cc.SpriteFrame[] = [];//男头像图标合集\n    @property([cc.SpriteFrame]) iconGirls: cc.SpriteFrame[] = [];//女头像图标合集\n    @property([cc.SpriteFrame]) grades: cc.SpriteFrame[] = [];//段位图标合集\n\n    @property(cc.Node) userInfo: cc.Node = null;//玩家信息\n\n    onLoad() {\n        vv.screenAdapter();//屏幕适配\n        vv.onScreenSizeChange();//监听屏幕尺寸变化\n        this.updateUserInfo();//更新玩家信息\n        this.viewAnimation();//大厅动画\n    }\n\n    viewAnimation() {\n        this.userInfo.y += 100;\n        this.userInfo.runAction(cc.moveBy(0.5, 0, -100).easing(cc.easeOut(0.5)));\n\n        //游戏合集\n        // for (let i = 0; i < this.btnGames.length; i++) {\n        //     this.btnGames[i].y -= 500;\n        //     this.scheduleOnce(() => {\n        //         this.btnGames[i].runAction(\n        //             cc.sequence(\n        //                 cc.moveBy(0.3, 0, 500 + 30).easing(cc.easeIn(0.3)),\n        //                 cc.moveBy(0.1, 0, -30)\n        //             )\n        //         );\n        //     }, 0.1 * i);\n        // }\n\n        // this.btnHalls[0].x += 100;\n        // this.btnHalls[0].runAction(cc.moveBy(0.5, -100, 0).easing(cc.easeOut(0.5)));\n    }\n\n    start() {\n        vv.openPrefab(\"chat\");//聊天\n\n        //查看玩家信息按钮\n        vv.btnClick(this.btnUserInfo, () => {\n            vv.openPrefab(\"reviseUserInfo\");//查看玩家信息\n        });\n\n        //大转盘按钮\n        vv.btnClick(this.btnHalls[0], () => {\n            vv.openPrefab(\"turntable\");//大转盘\n        });\n\n        // this.scheduleOnce(() => {\n        //     if (vv.userInfo.nickname === vv.userInfo.userName.slice(0, 8) && vv.userInfo.userName !== \"管理员\") {//创建用户信息\n        //         vv.openPrefab(\"reviseUserInfo\");\n        //     }\n        //     else if (vv.isFreeTurntable && !vv.openedTurntable) {//有免费次数时打开大转盘\n        //         vv.openedTurntable = true;\n        //         vv.openPrefab(\"turntable\");\n        //     }\n        // }, 0.6);\n\n        vv.eventOn('updateUserInfo', (data) => {\n            this.updateUserInfo();//更新玩家信息\n        }, this);\n\n        vv.eventOn('enterFightScene', (data) => {\n            console.info(\"#enterFightScene\")\n            vv.loadScene('game',()=>{\n                vv.eventEmit(\"loadFightSceneEnd\")\n                console.info(\"send loadFightSceneEnd\")\n            });//进入战斗场景\n\n        }, this)\n\n        //游戏合集\n        for (let i = 0; i < this.btnGames.length; i++) {\n            this.btnGames[i].runAction(cc.repeatForever(\n                cc.sequence(\n                    cc.scaleTo(1 + Math.random() / 2, 1.03, 0.97),\n                    cc.scaleTo(1 + Math.random() / 2, 0.97, 1.03)\n                )\n            ));\n\n            vv.btnClick(this.btnGames[i], () => {\n                if (i === 0) {\n                    this.enterPVE()\n                    //vv.loadScene('game');\n                }\n                else {\n                    vv.showTip(\"还未完成\");\n                }\n\n            });\n        }\n    }\n\n    //请求加入战场\n    enterPVE() {\n        vv.socket.emit(\"s_requestBattle\",{stageId:1,battleType:0})//S_RequestBattle\n    }\n\n\n\n    /**更新玩家信息 */\n    updateUserInfo() {\n        cc.log(\"updateUserInfo...lv\",vv.userInfo.level,vv.userInfo.headId)\n        this.icon.spriteFrame = (vv.userInfo.sex === 1 ? this.iconBoys[vv.userInfo.headId - 1] : this.iconGirls[vv.userInfo.headId - 1]);\n        cc.log(\"icon:\",this.icon.spriteFrame)\n        this.nickname.string = vv.userInfo.nickname;\n        //let level = vv.expToLevel(vv.userInfo.exp);\n        let level = vv.userInfo.level\n        this.level.string = \"Lv.\" + level;\n        this.grade.spriteFrame = level > 99 ? this.grades[9] : this.grades[Math.floor(level / 10)];\n        this.gold.string = vv.virtualCoinToCN(vv.userInfo.gold);\n        this.diamond.string = vv.virtualCoinToCN(vv.userInfo.diamond);\n    }\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Hall.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"82d97166-c653-49d9-9a5f-cebdbe4ca1e6\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Init.ts",
    "content": "// Learn TypeScript:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/typescript.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/typescript/index.html\n// Learn Attribute:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/reference/attributes.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/reference/attributes/index.html\n// Learn life-cycle callbacks:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/life-cycle-callbacks.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/life-cycle-callbacks/index.html\nimport vv from \"./vv\";\nconst {ccclass, property} = cc._decorator;\n\n@ccclass\nexport default class Init extends cc.Component {\n\n \n    onLoad () {\n        (<any>window).vv = vv;\n        vv.screenAdapter();//屏幕适配\n        vv.onScreenSizeChange();//监听屏幕尺寸变化\n        cc.game.setFrameRate(30);\n    }\n\n    start () {\n\n    }\n\n    // update (dt) {},\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Script/Init.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"a639b19a-d1ac-4d36-be7b-536a6e2a6ffd\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Login.ts",
    "content": "import vv from \"./vv\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class login extends cc.Component {\n    @property(cc.Node) bgHall: cc.Node = null;//棋牌大厅icon节点\n\n    onLoad() {\n        (<any>window).vv = vv;\n        vv.screenAdapter();//屏幕适配\n        vv.onScreenSizeChange();//监听屏幕尺寸变化\n        cc.game.setFrameRate(30);\n    }\n\n    start() {\n        // if (!cc.find(\"network\")) {\n        //     vv.openPrefab(\"network\", (node: cc.Node) => {\n        //         node.parent = cc.director.getScene();\n        //     });//打开网络连接界面\n        // }\n        //else {\n            vv.openPrefab(\"signIn\");//打开登录界面\n        //}\n    }\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Login.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"9105dd3a-dc14-4463-aa91-ab74a7d6c902\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Logo.ts",
    "content": "import vv from \"./vv\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class logo extends cc.Component {\n    @property(cc.Node) logo: cc.Node = null;\n\n    onLoad() {\n        (<any>window).vv = vv;\n        vv.screenAdapter();//屏幕适配\n        vv.onScreenSizeChange();//监听屏幕尺寸变化\n        cc.game.setFrameRate(30);\n    }\n\n    start() {\n        this.scheduleOnce(() => {\n            vv.loadScene('login', () => {\n                vv.playAudio(\"bg\", true);//播放音频\n            });\n        }, 1);\n    }\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Logo.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"83d3e799-c73b-4926-9701-827f3e11b8db\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/MASK.ts",
    "content": "const { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class MASK extends cc.Component {\n    @property(cc.Label) lab: cc.Label = null;\n\n    onLoad() {\n        this.node.scale = 1;\n    }\n\n    start() {\n        this.node.runAction(\n            cc.sequence(\n                cc.fadeTo(0.6, 0),\n                cc.callFunc(function () {\n                    this.node.scale = 0;\n                }, this, null)\n            )\n        );\n\n        let i = 0;\n        let q = [\".\", \"..\", \"...\"];\n        let p = \"拼命加载中\";\n        this.lab.schedule(() => {\n            this.lab.string = p + q[i];\n            i++;\n            if (i > 2) i = 0;\n        }, 0.4);\n    }\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/MASK.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"693a710b-3242-4cc9-9c17-94fce582b9d3\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Module/loginMod.ts",
    "content": "export class LoginData {\n    GateAddr :string\n    Uid:number\n    Key:string\n}\n\nexport default class loginMod {\n    static logindata :LoginData\n    static SetLoginData(addr:string,uid:number,key:string) {\n        this.logindata = new LoginData()\n        this.logindata.GateAddr =addr\n        this.logindata.Uid = uid\n        this.logindata.Key = key\n    }\n    \n    static GetLoginData() : LoginData {\n        return this.logindata\n    }\n}\n\n\n"
  },
  {
    "path": "ChessCardHall/assets/Script/Module/loginMod.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"5a321aad-c904-4847-a5aa-280e524952d2\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Module.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"3f631d5a-6b9f-4538-afef-022c1311d175\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Network.ts",
    "content": "import vv from \"./vv\";\nimport loginMod from \"./Module/loginMod\";\nimport { gameproto as loginproto } from \"../Libs/gameproto/login\";\nconst { ccclass, property } = cc._decorator;\n\n\n\n\n@ccclass\nexport default class network extends cc.Component {\n    @property(cc.Node) eye: cc.Node = null;//大眼萌\n    @property(cc.Node) network: cc.Node = null;//网络连接界面展示\n    @property(cc.Node) noNetwork: cc.Node = null;//网络无法连接界面展示\n    @property(cc.Node) btnExit: cc.Node = null;//网络无法连接时的退出游戏按钮\n    @property(cc.Node) QQL: cc.Node = null;//游戏敲敲乐界面\n\n    private connectionNum: number = 0;//当前尝试连接次数\n    //private loginData : any;\n    onLoad() {\n        this.node.scale = 1;\n        this.network.addComponent(connectingAction);//网络连接中动画\n    }\n\n    start() {\n        cc.game.addPersistRootNode(this.node);//设置为常驻节点,切换场景不会消失\n        this.scheduleOnce(() => {\n\n            vv.showTip(\"开始连接服务器\");\n            this.QQL.active = false;//关闭小游戏\n            this.node.scale = 0;//隐藏网络连接界面\n\n            //if (!vv.userInfo) vv.openPrefab(\"signIn\");//打开登录界面\n            //this.connectionNetwork();//建立服务器连接\n            //this.loginHttp();\n            this.connectionNetworkWs();\n        }, 0.5);\n\n        //退出游戏按钮监听\n        this.btnExit.once('click', (event) => {\n            cc.game.end();//退出游戏\n        });\n    }\n\n\n    //建立服务器连接websocket\n    connectionNetworkWs() {\n        var logindata = loginMod.GetLoginData()\n        console.info(\"###connect to gate:\"+logindata.GateAddr)\n        var decoder = new TextDecoder('utf-8')\n        var socket :WebSocket = new WebSocket(\"ws://\"+logindata.GateAddr);\n        socket.binaryType = 'arraybuffer';\n        vv.wssocket = socket\n        socket.onopen = ()=> {\n            vv.showTip(\"连接成功\");\n            console.warn(\"=============connected\")\n            //发送验证\n            vv.wssend(\"login\",{\"PlatformUid\":logindata.Uid,\"Key\":logindata.Key})\n\n        }\n        socket.onerror = (ev: Event)=> {\n            console.warn(\"=============onerror:\",ev)\n        }\n        socket.onclose = (ev: CloseEvent)=> {\n            console.warn(\"=============onclose:\",ev.reason)\n            vv.showTip(\"断开连接\");\n            this.connectionNum = 0;//重连数重置\n            this.node.scale = 1;//打开网络连接界面\n            this.QQL.active = true;//打开小游戏\n\n            if (cc.sys.isBrowser) {//游览器的处理\n                this.network.active = true;\n                this.noNetwork.active = false;\n            }\n            else {//设备上的处理\n                this.noNetwork.active = true;\n                this.eye.color = new cc.Color(146, 7, 131);\n                this.network.active = false;\n            }\n        }\n        socket.onmessage = (ev: MessageEvent)=> {\n            var raw = decoder.decode(ev.data)\n            console.warn(`=============onmessage raw:${raw}`)\n            vv.wsDistributeNetMessage(raw)\n        }\n\n        //验证完成\n        vv.wson(\"login\",(msg)=>{\n            console.warn(\"###login result:\"+(msg.errCode==undefined))\n            let data = {}\n            data[0]=(msg.errCode==undefined)\n            data[1]={}\n            vv.eventEmit('signIn', data);\n        })\n        vv.wson(\"logininfo\",(msg)=>{\n            console.warn(\"###login info:\"+msg.nickname,msg.headId,msg)\n            let tmsg = msg as loginproto.LoginInfo\n            vv.userInfo = msg\n        })\n        vv.wson(\"updateAttr\",(msg)=>{\n            console.warn(\"###updateAttr:\"+msg.key+\"=\"+msg.val)\n            vv.userInfo[msg.key] = msg.val\n            vv.eventEmit('updateUserInfo');//更新大厅信息\n        })\n        //加入战场请求C_RequestBattle\n        vv.wson(\"requestBattle\",(msg)=>{\n            console.warn(\"###requestBattle请求完成:\"+msg.errCode)\n            \n            if (msg.errCode!=undefined) {\n                vv.showTip(`加入战场失败:code=${msg.errCode}`)\n            } else {\n                vv.showTip(\"加入战斗已申请\")\n            }\n        })\n        //战斗开始C_StartBattle\n        vv.wson(\"readyBattle\",(msg)=>{\n            vv.showTip(\"战场准备就绪!\")\n            console.warn(\"###startBattle:\"+msg.errCode)\n            vv.eventEmit('enterFightScene');\n            \n        })\n        this.connectionNetwork()\n    }\n\n    //建立服务器连接 socket.io\n    connectionNetwork() {\n        //vv.socket = io.connect(this.loginData.gateWsAddr);//建立服务器连接\n        /*\n        vv.socket = io.connect('ws://127.0.0.1:8080/');//建立服务器连接\n        \n        vv.socket.on('connect', (msg) => {//连接成功\n            vv.showTip(\"连接成功\");\n            this.QQL.active = false;//关闭小游戏\n            this.node.scale = 0;//隐藏网络连接界面\n\n            if (!vv.userInfo) vv.openPrefab(\"signIn\");//打开登录界面\n            if (this.connectionNum === 0) vv.socket.emit('sysOs', { os: cc.sys.os, deviceResolution: cc.view.getVisibleSize() });//向服务器发送系统基础信息\n        });\n\n        vv.socket.on('disconnect', (msg) => {//断开连接\n            vv.showTip(\"断开连接\");\n            this.connectionNum = 0;//重连数重置\n            this.node.scale = 1;//打开网络连接界面\n            this.QQL.active = true;//打开小游戏\n\n            if (cc.sys.isBrowser) {//游览器的处理\n                this.network.active = true;\n                this.noNetwork.active = false;\n            }\n            else {//设备上的处理\n                this.noNetwork.active = true;\n                this.eye.color = new cc.Color(146, 7, 131);\n                this.network.active = false;\n            }\n        });\n        */\n        vv.socket.on('reconnecting', (msg) => {//正在重连\n            this.connectionNum++;\n            vv.showTip(\"第\" + this.connectionNum + \"次重连\");\n            if (this.connectionNum === 1) this.QQL.active = true;//打开小游戏\n            if (this.connectionNum === 3) {//重连3次,打开网络无法连接界面展示\n                this.network.active = false;\n                this.noNetwork.active = true;\n            }\n        });\n\n        vv.socket.on('notice', (data) => {//通知\n            vv.eventEmit('notice', data);\n        });\n\n        vv.socket.on('chat', (data) => {//聊天\n            vv.eventEmit('chat', data);\n        });\n\n        vv.socket.on('tourist', (data) => {//游客登录\n            vv.eventEmit('tourist', data);\n        });\n\n        vv.socket.on('signIn', (data) => {//账号登录\n            vv.eventEmit('signIn', data);\n        });\n\n        vv.socket.on('register', (data) => {//账号注册\n            vv.eventEmit('register', data);\n        });\n\n        vv.socket.on('reviseUserInfo', (data) => {//修改用户信息\n            let l = {}\n            l[0]=(data.errCode==undefined)\n            l[1]=data.msg\n\n            vv.eventEmit('reviseUserInfo', l);\n        });\n\n        vv.socket.on('turntable', (data) => {//大转盘信息\n            vv.eventEmit('turntable', data);\n        });\n\n        vv.socket.on('loadTurntableInfo', (data) => {//读取大转盘中奖记录\n            vv.eventEmit('loadTurntableInfo', data);\n        });\n\n        vv.socket.on('getRankList', (data) => {//获取排行榜列表\n            vv.eventEmit('getRankList', data);\n        });\n\n        vv.socket.on('getPlayerList', (data) => {//获取玩游戏人数和列表\n            vv.eventEmit('getPlayerList', data);\n        });\n\n        vv.socket.on('updataPlayerList', (data) => {//刷新玩游戏人数和列表\n            vv.eventEmit('updataPlayerList', data);\n        });\n    }\n}\n\n//网络连接中动画\nclass connectingAction extends cc.Component {\n    @property(cc.Node) eye: cc.Node = null;\n\n    onEnable() {\n        this.unscheduleAllCallbacks();\n        //文字动画\n        for (let i = 0; i < this.node.childrenCount; i++) {\n            this.node.children[i].scale = 1;\n            this.scheduleOnce(() => {\n                this.node.children[i].stopAllActions();\n                this.node.children[i].runAction(\n                    cc.repeatForever(\n                        cc.sequence(\n                            cc.scaleTo(0.3, 1.2, 1.2),\n                            cc.scaleTo(0.3, 1, 1),\n                            cc.delayTime(0.5),\n                        )\n                    )\n                );\n            }, 0.2 * i);\n        }\n\n        //眼睛动画\n        if (!this.eye) this.eye = this.node.parent.getChildByName('eye');\n        this.eye.stopAllActions();\n        this.eye.runAction(\n            cc.repeatForever(\n                cc.sequence(\n                    cc.tintTo(2, 246, 7, 131),\n                    cc.tintTo(2, 246, 7, 31),\n                    cc.tintTo(2, 146, 7, 31),\n                    cc.tintTo(2, 146, 7, 131)\n                )\n            )\n        );\n    }\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Network.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"6d658036-eefe-4b75-84d1-c6c9f9f6ee65\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Notice.ts",
    "content": "import vv from \"./vv\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class Notice extends cc.Component {\n    @property(cc.RichText) msg: cc.RichText = null;\n    private msgs = [];//存放消息队列\n\n    onLoad() {\n        this.node.scale = 0;\n    }\n\n    start() {\n        vv.eventOn('notice', (data) => {\n            cc.log(\"服务器通知:\" + JSON.stringify(data));\n            data.data = data.data.replace(\"nickname\", vv.userInfo.nickname);\n            this.msgs.push(data);\n            if (this.msgs.length === 1) this.showNotice();\n        }, this);\n    }\n\n    showNotice() {\n        let msg = vv.msgToBeExpression(this.msgs[0].data);\n        this.msg.string = msg;\n        this.msg.node.x = 520;\n        this.node.scale = 1;\n        this.msg.node.runAction(\n            cc.sequence(\n                cc.moveTo(0.5, 24, 0),\n                cc.delayTime(1.5),\n                cc.moveBy((this.msg.node.width + 24) / 50, -this.msg.node.width - 24, 0),\n                cc.callFunc(() => {\n                    this.msgs.shift();\n                    if (this.msgs.length === 0) this.node.scale = 0;\n                    else this.showNotice();\n                })\n            )\n        )\n    }\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Notice.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"948b8be7-4ded-428c-b9e9-e47672731c14\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/PlayerList.ts",
    "content": "import vv from \"./vv\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class NewClass extends cc.Component {\n    @property(cc.Label) playerNum: cc.Label = null;//在线玩家人数\n    @property(cc.Node) list: cc.Node = null;\n    @property(cc.Node) ScrollView: cc.Node = null;\n    @property(cc.Node) content: cc.Node = null;\n    @property(cc.Node) arrow: cc.Node = null;\n\n    start() {\n        let pool = new cc.NodePool();\n\n        vv.socket.emit('getPlayerList');\n\n        vv.eventOn('getPlayerList', (data) => {\n            cc.log(\"获取玩家列表:\" + data);\n            this.playerNum.string = data.length;//更新在线玩家人数\n\n            for (let i = 0; i < data.length; i++) {\n                data[i] = data[i].split('|');\n                let node: cc.Node = cc.instantiate(this.list);\n                node.getComponent(cc.Label).string = \"Lv\" + vv.expToLevel(data[i][1]) + \"  \" + data[i][0];\n                node.parent = this.content;\n                node.name = data[i][0];\n                node.zIndex = -data[i][1];\n                node.active = true;\n            }\n        }, this);\n\n        vv.eventOn('updataPlayerList', (data) => {\n            cc.log(\"玩家列表刷新:\" + data);\n            this.playerNum.string = data.length;//更新在线玩家人数\n\n            this.content.destroyAllChildren()\n\n            for (let i = 0; i < data.length; i++) {\n                data[i] = data[i].split('|');\n                let node: cc.Node = null;\n                if (pool.size() > 0) {\n                    node = pool.get();\n                }\n                else {\n                    node = cc.instantiate(this.list);\n                }\n                node.getComponent(cc.Label).string = \"Lv\" + vv.expToLevel(data[i][1]) + \" \" + data[i][0];\n                node.parent = this.content;\n                node.name = data[i][0];\n                node.zIndex = -data[i][1];\n                node.active = true;\n            }\n        }, this);\n\n        vv.btnClick(this.node, () => {\n            if (!this.ScrollView.active) {\n                this.ScrollView.active = true;\n                this.arrow.rotation = 180;\n            }\n            else {\n                this.ScrollView.active = false;\n\n                this.arrow.rotation = 0;\n            }\n        }, true)\n    }\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Script/PlayerList.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"b0e84171-f283-4ab6-8e0d-c8b3fb55ea58\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/QQL.ts",
    "content": "import vv from \"./vv\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class qql extends cc.Component {\n    @property([cc.Node]) yans: cc.Node[] = [];\n    @property(cc.Label) lianji: cc.Label = null;\n    @property(cc.Label) time: cc.Label = null;//时间\n    @property([cc.SpriteFrame]) img: cc.SpriteFrame[] = [];\n    @property(cc.Node) timeOver: cc.Node = null;//时间到提示\n    @property(cc.Node) btnOnceAgain: cc.Node = null;//再来一次\n\n    private scrore: number = 0;//得分\n    private positions: cc.Vec2[] = [];//记录4个位置\n    private times: number = 0;//出现次数\n    private time1: number = 0.5;//生成间隔\n    private time2: number[] = [0.2, 0.3, 0, 1, 0.4, 0.5];//随机间隔\n    private time3: number = 20;//每局时间\n\n    onLoad() {\n        for (let i = 0; i < 4; i++) {\n            this.positions[i] = this.yans[i].position;\n            this.yans[i].on('click', (event) => {\n                this.yans[i].stopAllActions();\n                this.yans[i].scale = 0;\n\n                if (this.yans[i].tag === 0) {\n                    vv.playAudio(\"qql_lose\");\n                    this.scrore--;\n                    if (this.scrore < 0) {\n                        this.scrore = 0;\n                    }\n                }\n                else {\n                    vv.playAudio(\"qql_win\");\n                    this.scrore++;\n                }\n\n                this.lianji.string = this.scrore + \"击\";\n                this.lianji.node.stopAllActions();\n                this.lianji.node.runAction(\n                    cc.sequence(\n                        cc.scaleTo(0.1, 1.3, 1.3),\n                        cc.scaleTo(0.1, 1, 1)\n                    )\n                );\n            });\n        }\n\n        vv.btnClick(this.btnOnceAgain, () => {\n            this.onEnable();\n        });\n    }\n\n    onEnable() {\n        this.scrore = 0;\n        this.time3 = 20;\n        this.timeOver.y = -50;\n        this.timeOver.opacity = 255;\n        this.node.y = -300;\n        this.unscheduleAllCallbacks();\n        this.timeOver.active = true;\n        this.btnOnceAgain.active = false;\n        this.node.runAction(cc.moveTo(0.4, 0, 0));\n\n        let schedule = () => {\n            this.time.string = String(this.time3) + \"S\";\n            if (this.time3 === 0) {\n                this.unschedule(schedule);\n\n                this.timeOver.runAction(\n                    cc.sequence(\n                        cc.moveTo(1, 0, 250),\n                        cc.delayTime(1),\n                        cc.callFunc(function () {\n                            cc.fadeTo(0.3, 0)\n                        }, this, null)\n                    )\n                );\n\n                this.scheduleOnce(() => {\n                    this.timeOver.active = false;\n                    this.btnOnceAgain.active = true;\n                }, 3);\n                return;\n            }\n            this.time3--;\n        };\n        this.schedule(schedule, 1);\n\n        for (let i = 0; i < 4; i++) {\n            this.yans[i].stopAllActions();\n            this.yans[i].scale = 0;\n        }\n\n        let j = 0;\n\n        let fun = () => {\n            this.scheduleOnce(() => {\n                if (this.time3 === 0) return;\n\n                this.times++;\n                this.time1 -= Math.floor(this.times / 5) * 0.1;\n                if (this.time1 < 0.3) this.time1 = 0.3;\n\n\n                let doing = () => {\n                    let random1: number = Math.floor(Math.random() * 4);\n                    if (this.yans[random1].scale === 0) {\n                        let random2: number = Math.floor(Math.random() * 3);\n                        this.yans[random1].tag === random2 ? null : this.yans[random1].getComponent(cc.Sprite).spriteFrame = this.img[random2];\n                        this.yans[random1].tag = random2;\n                        this.yans[random1].runAction(\n                            cc.sequence(\n                                cc.scaleTo(0.2, 1, 1),\n                                cc.delayTime(0.5 + this.time1),\n                                cc.scaleTo(0.1, 0, 0)\n                            )\n                        );\n                    }\n                    else {\n                        doing();\n                    }\n                };\n\n                doing();\n\n                fun();\n            }, this.time1 + this.time2[j]);\n            j++;\n            if (j >= this.time2.length) j = 0;\n        };\n\n        fun();\n    }\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/QQL.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"d0af0ca5-8346-4f8f-8f00-0677bc93cce3\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/RankList.ts",
    "content": "import vv from \"./vv\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class NewClass extends cc.Component {\n    @property(cc.Label) playerNum: cc.Label = null;//我的排名\n    @property(cc.Node) list: cc.Node = null;\n    @property(cc.Node) ScrollView: cc.Node = null;\n    @property(cc.Node) content: cc.Node = null;\n    @property(cc.Node) arrow: cc.Node = null;\n\n    start() {\n        let pool = new cc.NodePool();\n\n        vv.socket.emit('getRankList');\n\n        vv.eventOn('getRankList', (data) => {\n            cc.log(\"获取排行列表:\" + JSON.stringify(data));\n\n            for (let i = 0; i < data.length; i++) {\n                if (vv.userInfo.userId === data[i].userId) this.playerNum.string = data[i].rank;\n                let node: cc.Node = cc.instantiate(this.list);\n                node.getChildByName(\"rank\").getComponent(cc.Label).string = data[i].rank;\n                node.getChildByName(\"name\").getComponent(cc.Label).string = data[i].nickname;\n                node.getChildByName(\"gold\").getComponent(cc.Label).string = vv.virtualCoinToCN(data[i].gold);\n                node.parent = this.content;\n                node.active = true;\n            }\n        }, this);\n\n        vv.btnClick(this.node, () => {\n            if (!this.ScrollView.active) {\n                this.ScrollView.active = true;\n                this.arrow.rotation = 180;\n            }\n            else {\n                this.ScrollView.active = false;\n\n                this.arrow.rotation = 0;\n            }\n        }, true)\n    }\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Script/RankList.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"ea89b9f7-ac1e-48d0-98ce-aaffabbc8507\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Register.ts",
    "content": "import vv from \"./vv\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class Signln extends cc.Component {\n    @property(cc.Node) btnRegister: cc.Node = null;//立即注册按钮\n    @property(cc.EditBox) editBoxAccount: cc.EditBox = null;//账号输入框\n    @property(cc.EditBox) editBoxPassword: cc.EditBox = null;//密码输入框\n    @property([cc.Node]) viewAnimations: cc.Node[] = [];//界面动画节点集合\n\n    onLoad() {\n        //界面内元素初始动画\n        let l = this.viewAnimations.length;\n        for (let i = 0; i < l; i++) {\n            this.viewAnimations[i].active = false;\n            this.viewAnimations[i].y -= 30;\n            this.viewAnimations[i].opacity = 150;\n\n            this.scheduleOnce(() => {\n                this.viewAnimations[i].active = true;\n                this.viewAnimations[i].runAction(\n                    cc.spawn(\n                        cc.fadeTo(0.1, 255),\n                        cc.moveBy(0.1, 0, 30),\n                    )\n                );\n            }, i * 0.04);\n        }\n    }\n\n    start() {\n        //账号注册监听\n        vv.btnClick(this.btnRegister, () => {\n            let userName = this.editBoxAccount.string;\n            if (!userName || userName.trim() == \"\") {\n                vv.showTip(\"账号不能为空\");\n                return;\n            }\n            let password = this.editBoxPassword.string;\n            if (!password || password.trim() == \"\") {\n                vv.showTip(\"密码不能为空\");\n                return;\n            }\n\n            vv.pauseTouch();//禁止交互操作\n\n            //vv.socket.emit('register', JSON.stringify({ userName: userName, password: password }));//向服务器发送注册请求\n            this.registHttp(userName,password)\n        });\n\n        //监听服务器返回注册请求信息\n        vv.eventOn('register', (data) => {\n            if (data[0]) {\n                vv.showTip(\"注册成功\");\n                vv.resumeTouch();//恢复交互操作\n\n                //把注册账号登记到登录界面的输入框\n                let SignIn = this.node.parent.getChildByName('signIn').getComponent('SignIn');\n                SignIn.editBoxAccount.string = this.editBoxAccount.string;\n                SignIn.editBoxPassword.string = this.editBoxPassword.string;\n                SignIn.btnTouristSignln.active = false;\n                SignIn.btnAccountSignln.active = true;\n\n                this.node.destroy();\n            }\n            else {\n                vv.showTip(data[1]);\n                vv.resumeTouch();//恢复交互操作\n            }\n        }, this);\n    }\n\n    //regist\n    registHttp(acc,pwd :string) {\n            console.log(`=============regist http...${acc}...${pwd}`);\n            let path :string = vv.GetServerURL()\n            var url = `${path}/regist?a=${acc}&p=${pwd}`\n            var self = this;\n            var xhr = cc.loader.getXMLHttpRequest();\n            xhr.onreadystatechange = ()=>{\n                if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) {\n                    var response = xhr.responseText;\n                    console.log(`=============regist result:${response}`);\n                    if(response==\"success\") {\n                        vv.eventEmit(\"register\",[true])\n                    } else {\n                        vv.eventEmit(\"register\",[false,response])\n                    }\n                } else {\n                    vv.eventEmit(\"register\",[false,`网络异常:status=${xhr.status}`])\n                }\n            };\n            xhr.open(\"GET\", url, true);\n            xhr.send();\n    }\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Register.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"a1aa8f0e-324e-4d8e-a1b8-4ca565288909\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/ReviseUserInfo.ts",
    "content": "import vv from \"./vv\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class NewClass extends cc.Component {\n    @property(cc.Node) btnCreate: cc.Node = null;//创建按钮\n    @property(cc.Node) btnClose: cc.Node = null;//关闭按钮\n    @property(cc.Node) toggleGroup: cc.Node = null;//12个头像的父节点\n    @property([cc.Node]) toggles: cc.Node[] = [];//12个头像\n    @property(cc.EditBox) editBoxNickname: cc.EditBox = null;//昵称输入框\n    @property([cc.Node]) viewAnimations: cc.Node[] = [];//界面动画节点集合\n    @property(cc.Node) btnDice: cc.Node = null;//换名字按钮\n\n    private sex: number = null;//性别\n    private headId: number = null;//头像编号\n    private needOpenTurntable: boolean = false;\n\n    onLoad() {\n        this.editBoxNickname.string = vv.userInfo.nickname?vv.userInfo.nickname:\"\";\n        this.sex = vv.userInfo.sex;\n        this.headId = vv.userInfo.headId;\n        //cc.find(String(vv.userInfo.sex) + String(vv.userInfo.headId), this.toggleGroup).getComponent(cc.Toggle).isChecked = true;\n\n        //界面渐入动画\n        this.node.opacity = 100;\n        this.node.runAction(cc.fadeTo(0.2, 255));\n\n        //界面内元素初始动画\n        let l = this.viewAnimations.length;\n        for (let i = 0; i < l; i++) {\n            this.viewAnimations[i].active = false;\n            this.viewAnimations[i].y -= 30;\n            this.viewAnimations[i].opacity = 150;\n\n            this.scheduleOnce(() => {\n                this.viewAnimations[i].active = true;\n                this.viewAnimations[i].runAction(\n                    cc.spawn(\n                        cc.fadeTo(0.1, 255),\n                        cc.moveBy(0.1, 0, 30),\n                    )\n                );\n            }, i * 0.04 + 0.1);\n        }\n    }\n\n    start() {\n        for (let i = 0; i < this.toggles.length; i++) {\n            this.toggles[i].on('toggle', (event,o) => {\n                //vv.playAudio(\"click\")\n                this.sex = Number(event.target.name[0]);\n                this.headId = Number(event.target.name[1]);\n                cc.log(\"select:\", this.sex,this.headId,event,o)\n            },this.toggles[i]);\n        }\n\n        //创建按钮\n        vv.btnClick(this.btnCreate, () => {\n            let nickname = this.editBoxNickname.string;\n\n            if (!nickname || nickname.trim() == \"\") { vv.showTip(\"姓名不能为空\"); return; }\n            if (nickname.length < 2) { vv.showTip(\"姓名长度不能少于2位\"); return; }\n            if (nickname.length > 8) { vv.showTip(\"姓名长度不能大于4位\"); return; }\n            if (nickname.indexOf(\" \") > -1) { vv.showTip(\"姓名不能包含空格\"); return; }\n            if (!/^[\\u4e00-\\u9fa5]{0,}$/.test(nickname)) { vv.showTip(\"姓名必须为汉字\"); return; }\n\n            vv.pauseTouch();//禁止交互操作\n            vv.socket.emit('s_reviseUserInfo', { userId: vv.userInfo.userId, nickname: this.editBoxNickname.string, sex: this.sex, headId: this.headId });\n        });\n\n        vv.eventOn('reviseUserInfo', (data) => {\n            cc.log(\"修改资料:\" + JSON.stringify(data));\n            if (data[0]) {\n                vv.showTip(\"修改成功\");\n                cc.log(\"修改成功:\",this.sex,this.headId)\n                vv.userInfo.nickname = this.editBoxNickname.string;\n                vv.userInfo.sex = this.sex;\n                vv.userInfo.headId = this.headId;\n\n                vv.resumeTouch();//恢复交互操作\n                vv.eventEmit('updateUserInfo');//更新大厅信息\n                this.node.destroy();\n            }\n            else {\n                vv.showTip(data[1]);\n                vv.resumeTouch();//恢复交互操作\n            }\n        }, this);\n\n        let xings = \"赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯昝管卢莫\";\n\n        let mings = \"旭梅萍元雪晓莉明燕敏俊飞文斌卫国伟九庆以莲留强晓敏汝彬台铭帆伟东明骏世鹏仕辉丹慧乔昆仑万里雪中锋绍雄秋萍丽娟发前云霞自伟依林旭虎玮柏组红心林鹏海涛醒绍平玉洁方雄志伟双丽明汉琴珍美明君海英涛文武艳小刚霞高强浩志豪军林小敏叶东自富喜少云忠义小燕自坤静雯文建开勇海林轲仕茂秀莲仁贵远青开凤玲伟军存瑞明浩文昌大伟岸英德琴光国佑军盛露少青祖美发祥钱钟森永发运瑞丽敏自珍家宝建联迪慧章盛锦素巨建生平明霞孟刚丽娟海峰松伟秋林明琴枝山\";\n\n        let fun = () => {\n            let xing = xings[Math.floor(Math.random() * 168)]\n            let ming = mings[Math.floor(Math.random() * 209)]\n            if (Math.random() > 0.3) ming += mings[Math.floor(Math.random() * 209)]\n            this.editBoxNickname.string = xing + ming;\n        }\n\n        vv.btnClick(this.btnDice, () => {\n            fun()\n        });\n\n        vv.btnClick(this.btnClose, () => {\n            this.node.destroy()\n        });\n    }\n\n    onDestroy() {\n        if (vv.isFreeTurntable && !vv.openedTurntable) {//有免费次数时打开大转盘\n            vv.openedTurntable = true;\n            vv.openPrefab(\"turntable\");\n        }\n    }\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/ReviseUserInfo.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"2734949d-7ab3-4977-919e-8d491422334b\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/SignIn.ts",
    "content": "import vv from \"./vv\";\nimport loginMod from \"./Module/loginMod\";\nimport { gameproto as loginproto } from \"../Libs/gameproto/login\";\nimport { gameproto as codeproto } from \"../Libs/gameproto/gamecode\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class Signln extends cc.Component {\n    @property(cc.Node) btnTouristSignln: cc.Node = null;//游客登录按钮\n    @property(cc.Node) btnAccountSignln: cc.Node = null;//账号登录按钮\n    @property(cc.Node) btnRegister: cc.Node = null;//打开注册界面按钮\n    @property(cc.EditBox) editBoxAccount: cc.EditBox = null;//账号输入框\n    @property(cc.EditBox) editBoxPassword: cc.EditBox = null;//密码输入框\n    @property([cc.Node]) viewAnimations: cc.Node[] = [];//界面动画节点集合\n\n    onLoad() {\n        //读取登录账号,并登记到输入框\n        var userData = JSON.parse(cc.sys.localStorage.getItem('userData'));\n        if (userData&&userData.userName) {\n            this.editBoxAccount.string = \"\"+userData.userName;\n            this.editBoxPassword.string =\"\"+userData.password;\n            this.btnTouristSignln.active = false;\n            this.btnAccountSignln.active = true;\n            this.viewAnimations[3] = this.btnAccountSignln;\n        }\n\n        //界面渐入动画\n        this.node.opacity = 100;\n        this.node.runAction(cc.fadeTo(0.2, 255));\n\n        //界面内元素初始动画\n        let l = this.viewAnimations.length;\n        for (let i = 0; i < l; i++) {\n            this.viewAnimations[i].active = false;\n            this.viewAnimations[i].y -= 30;\n            this.viewAnimations[i].opacity = 150;\n\n            this.scheduleOnce(() => {\n                this.viewAnimations[i].active = true;\n                this.viewAnimations[i].runAction(\n                    cc.spawn(\n                        cc.fadeTo(0.1, 255),\n                        cc.moveBy(0.1, 0, 30),\n                    )\n                );\n            }, i * 0.04 + 0.1);\n        }\n\n        //屏幕适配\n        cc.find(\"M\", this.node).setContentSize(cc.winSize);\n    }\n\n    start() {\n        //游客登录和账号登录按钮的切换处理\n        this.signlnBtnSwitch();\n\n        //游客登录\n        vv.btnClick(this.btnTouristSignln, () => {\n\n            vv.showTip(\"暂时不支持游客登录，请先注册\")\n            return\n            vv.pauseTouch();//禁止交互操作\n            var userDataTourist = cc.sys.localStorage.getItem('userDataTourist');\n            if (userDataTourist) {\n                vv.socket.emit('signIn', userDataTourist);\n                this.editBoxAccount.string = JSON.parse(userDataTourist).userName;\n                this.editBoxPassword.string = JSON.parse(userDataTourist).password;\n            }\n            else {\n                vv.socket.emit('tourist');\n            }\n        });\n\n        vv.eventOn('tourist', (data) => {\n            cc.log(\"游客验证:\" + JSON.stringify(data));\n            if (data[0]) {\n                vv.showTip(\"游客登录成功,默认密码:1234\");\n                vv.userInfo = data[1];\n                this.editBoxAccount.string = data[1].userName;\n                this.editBoxPassword.string = data[1].password;\n\n                this.scheduleOnce(() => {\n                    vv.initUseData();\n                    vv.loadScene('lobby');\n                }, 0.5);\n\n                //保存游客账号\n                cc.sys.localStorage.setItem('userDataTourist', JSON.stringify({ userName: vv.userInfo.userName, password: vv.userInfo.password }));\n                //保存登录账号\n                cc.sys.localStorage.setItem('userData', JSON.stringify({ userName: vv.userInfo.userName, password: vv.userInfo.password }));\n            }\n            else {\n                vv.showTip(data[1]);\n                vv.resumeTouch();//恢复交互操作\n            }\n        }, this);\n\n        //账号登录\n        vv.btnClick(this.btnAccountSignln, () => {\n            let userName = this.editBoxAccount.string;\n            if (!userName || userName.trim() == \"\") {\n                vv.showTip(\"账号不能为空\");\n                return;\n            }\n            let password = this.editBoxPassword.string;\n            if (!password || password.trim() == \"\") {\n                vv.showTip(\"密码不能为空\");\n                return;\n            }\n\n            vv.pauseTouch();//禁止交互操作\n\n            // let user = {\n            //     userName: userName,\n            //     password: password\n            // };\n            // vv.socket.emit('signIn', JSON.stringify(user));\n            this.loginHttp(userName,password)\n        });\n\n        vv.eventOn('signIn', (data) => {\n            cc.log(\"登录验证:\" + JSON.stringify(data));\n            if (data[0]) {\n                vv.showTip(\"登录成功\");\n                //vv.userInfo = data[1];\n                this.scheduleOnce(() => {\n                    vv.initUseData();\n                    vv.loadScene('lobby');\n                }, 0.5);\n\n                //保存登录账号\n                //cc.sys.localStorage.setItem('userData', JSON.stringify({ userName: vv.userInfo.userName, password: vv.userInfo.password }));\n            }\n            else {\n                vv.showTip(data[1]);\n                vv.resumeTouch();//恢复交互操作\n            }\n        }, this);\n\n        //创建账号\n        vv.btnClick(this.btnRegister, () => {\n            vv.openPrefab(\"register\");//打开创建账号界面\n        });\n    }\n\n    /**游客登录和账号登录按钮的切换处理 */\n    signlnBtnSwitch() {\n        let update = () => {\n            //如果输入框全部为空,则显示游客登录按钮\n            if (this.editBoxAccount.string.length === 0 && this.editBoxPassword.string.length === 0) {\n                this.btnTouristSignln.active = true;\n                this.btnAccountSignln.active = false;\n            }\n            else {\n                this.btnTouristSignln.active = false;\n                this.btnAccountSignln.active = true;\n            }\n        }\n\n        this.editBoxAccount.node.on('text-changed', (event) => {//输入框文字变化监听\n            update();\n        });\n        this.editBoxPassword.node.on('text-changed', (event) => {//输入框失去焦点监听\n            update();\n        });\n        this.editBoxAccount.node.on('editing-did-ended', (event) => {//输入框文字变化监听\n            update();\n        });\n        this.editBoxPassword.node.on('editing-did-ended', (event) => {//输入框失去焦点监听\n            update();\n        });\n    }\n\n\n    //加载网络\n    loadNetwork() {\n        vv.openPrefab(\"network\", (node: cc.Node) => {\n            node.parent = cc.director.getScene();\n        });//打开网络连接界面\n    }\n    //login\n    loginHttp(acc,pwd :string) {\n            let path :string = vv.GetServerURL()\n            \n            var url = `${path}/login?a=${acc}&p=${pwd}`\n            console.log(`=============login http...${url}`);\n            var self = this;\n            var xhr = cc.loader.getXMLHttpRequest();\n            xhr.onreadystatechange = ()=>{\n                if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) {\n                    var response = xhr.responseText;\n                    console.log(`=============login result:${response}`);\n                    \n                    var d = JSON.parse(response);\n                    var loginData = d as loginproto.UserLoginResult\n                    //var s :gameproto.UserLoginResult = loginData ;\n                    console.log(`=============login rrrrrr:${loginData.gateTcpAddr} ${loginData.gateWsAddr}  ${loginData.result}`);\n\n                    if (loginData.result!=undefined&&loginData.result!=0) {\n                        vv.showTip(`登录失败 code=${loginData.result}`);\n                        vv.resumeTouch();//恢复交互操作\n                        return \n                    }\n                    cc.sys.localStorage.setItem('userData', JSON.stringify({ userName: acc, password: pwd}));\n                    loginMod.SetLoginData(loginData.gateWsAddr as string,loginData.uid as number,loginData.key as string)\n                    //this.connectionNetworkWs();\n                    this.loadNetwork()\n                }\n            };3\n            xhr.open(\"GET\", url, true);\n            xhr.send();\n    }\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Script/SignIn.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"8c228a2d-3b11-4bd6-944a-86beb6d40a8a\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/Bullet.ts",
    "content": "// Learn TypeScript:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/typescript.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/typescript/index.html\n// Learn Attribute:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/reference/attributes.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/reference/attributes/index.html\n// Learn life-cycle callbacks:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/life-cycle-callbacks.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/life-cycle-callbacks/index.html\n\nconst {ccclass, property} = cc._decorator;\n\n@ccclass\nexport default class Bullet extends cc.Component {\n\n    @property(cc.Label)\n    label: cc.Label = null;\n\n    @property\n    text: string = 'hello';\n\n\n    moveVec :cc.Vec2\n    // LIFE-CYCLE CALLBACKS:\n\n    // onLoad () {},\n\n    \n    start () {\n\n    }\n\n    update (dt:number) {\n        let n = this.moveVec.mul(dt)\n        this.node.position = this.node.position.addSelf(n)\n    }\n\n    SetMoveVec(moveVec :cc.Vec2) {\n        this.moveVec = moveVec\n        this.node.rotation = cc.Vec2.UP.signAngle(moveVec)*180/Math.PI\n    }\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/Bullet.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"5672dd92-3056-44f4-83e9-4241290c3f6c\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/Controller.ts",
    "content": "// Learn TypeScript:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/typescript.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/typescript/index.html\n// Learn Attribute:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/reference/attributes.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/reference/attributes/index.html\n// Learn life-cycle callbacks:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/life-cycle-callbacks.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/life-cycle-callbacks/index.html\nimport Tank from \"./Tank\"\nimport vv from \"./../vv\";\nimport { gameproto } from \"../../Libs/gameproto/gamemsg\";\nconst {ccclass, property} = cc._decorator;\n\n@ccclass\nexport default class Controller extends cc.Component {\n\n    @property(Tank)\n    player: Tank = null;//玩家\n\n\n    moveVec : cc.Vec2;//方向控制\n    angel:number;\n\n    @property(cc.Node)\n    btnShot: cc.Node = null;//射击按钮\n    \n\n    @property(cc.Node)\n    joystickNode: cc.Node = null;//joysticknode\n    // LIFE-CYCLE CALLBACKS:\n\n    onLoad () {\n        this.moveVec = new cc.Vec2(0,1)\n    }\n\n    start () {\n        // 初始化键盘输入监听\n        this.setInputControl();\n        vv.btnClick(this.btnShot, () => {\n            this.shoot()\n        });\n    }\n\n    update (dt) {\n        \n        var js = this.joystickNode.getComponent(\"GameJoystick\")\n        var pos = js.getTouchPos() as cc.Vec2\n        var a = pos.signAngle(cc.Vec2.UP)*180/Math.PI //cc.pAngleSigned(pos,cc.Vec2.UP)*180/3.14\n        if (pos.equals(cc.Vec2.ZERO)) {\n            a = this.angel\n        }\n        \n        //console.warn(\"angle:\",a)\n        var msg = {angle:a}//new gameproto.Move()\n        vv.socket.emit(\"b_move\",msg)\n        // if(this.player) {\n        //     this.player.setMoveVec(this.moveVec)\n        // }\n\n    }\n\n    shoot() {\n        //this.player.shoot()\n        vv.socket.emit(\"b_shot\",{})\n    }\n    \n \n    setInputControl() {\n        cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);\n    }\n\n    onDestroy () {\n        cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);\n        \n    }\n    \n    \n    onKeyDown(event) {\n        switch(event.keyCode) {\n            case cc.macro.KEY.a:\n                this.moveVec = new cc.Vec2(-1,0)\n                this.angel = -90\n                break;\n            case cc.macro.KEY.d:\n                this.moveVec= new cc.Vec2(1,0)\n                this.angel = 90\n                break;\n            case cc.macro.KEY.w:\n                this.moveVec = new cc.Vec2(0,1)\n                this.angel = 0\n                break;\n            case cc.macro.KEY.s:\n                this.moveVec = new cc.Vec2(0,-1)\n                this.angel = 180\n                break; \n            case cc.macro.KEY.space:\n                this.shoot()\n                break;\n        }\n    }\n}\n\n\n"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/Controller.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"6921c55f-8e69-439f-ba84-16648db27007\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/GameOverUI.ts",
    "content": "// Learn TypeScript:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/typescript.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/typescript/index.html\n// Learn Attribute:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/reference/attributes.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/reference/attributes/index.html\n// Learn life-cycle callbacks:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/life-cycle-callbacks.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/life-cycle-callbacks/index.html\nimport vv from \"./../vv\";\nimport TankGame from \"./TankGame\"\nimport { gameproto } from \"../../Libs/gameproto/gamemsg\";\nconst {ccclass, property} = cc._decorator;\n\n@ccclass\nexport default class GameOverUI extends cc.Component {\n\n    @property(cc.Label)\n    lbtime: cc.Label = null;\n\n    @property(cc.Label)\n    lbkill: cc.Label = null;\n\n    // LIFE-CYCLE CALLBACKS:\n\n    // onLoad () {},\n    @property(cc.Node) btnLeave: cc.Node = null;//退出按钮\n    start () {\n        //退出按钮\n        vv.btnClick(this.btnLeave, () => {\n            vv.pauseTouch();//禁止交互操作\n            vv.loadScene('lobby');//跳转到登录场景\n            vv.socket.emit(\"b_quit\",{})\n        });\n    }\n\n    // update (dt) {},\n\n    DumpUI(time:number,kill:number) {\n        this.lbtime.string=`${time}秒`\n        this.lbkill.string=`${kill}`\n    }\n\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/GameOverUI.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"0c8975b6-deff-4970-81c7-890641f6d2f1\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/Item.ts",
    "content": "// Learn TypeScript:\n//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/typescript.html\n//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/typescript.html\n// Learn Attribute:\n//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html\n//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/reference/attributes.html\n// Learn life-cycle callbacks:\n//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html\n//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/life-cycle-callbacks.html\nimport ResMgr from \"./ResMgr\";\nconst {ccclass, property} = cc._decorator;\n\n@ccclass\nexport default class Item extends cc.Component {\n\n    // LIFE-CYCLE CALLBACKS:\n\n     onLoad () {\n\n     }\n\n    start () {\n        this.node.runAction(cc.repeatForever(\n            cc.sequence(\n                cc.scaleTo(1 + Math.random() / 2, 1.03, 0.97),\n                cc.scaleTo(1 + Math.random() / 2, 0.97, 1.03)\n            )\n        ));\n\n    }\n\n    // update (dt) {}\n\n    SetType(id:number) {\n        let s = ResMgr.getItemSpriteFrame(id)\n        console.warn(\"SetType:\",s)\n        let sp = this.getComponent(cc.Sprite);\n        sp.spriteFrame = s\n    }\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/Item.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"09071058-cd16-419a-a704-52d4340a7262\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/Player.ts",
    "content": "// Learn TypeScript:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/typescript.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/typescript/index.html\n// Learn Attribute:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/reference/attributes.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/reference/attributes/index.html\n// Learn life-cycle callbacks:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/life-cycle-callbacks.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/life-cycle-callbacks/index.html\n\nconst {ccclass, property} = cc._decorator;\n\n@ccclass\nexport default class Player extends cc.Component {\n\n    @property(cc.Label)\n    label: cc.Label = null;\n\n    // LIFE-CYCLE CALLBACKS:\n\n    // onLoad () {},\n\n    start () {\n\n    }\n\n    // update (dt) {},\n\n    \n}\n"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/Player.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"ee56b8bf-4f52-4816-88d7-32fa236bda0a\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/ResMgr.ts",
    "content": "// Learn TypeScript:\n//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/typescript.html\n//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/typescript.html\n// Learn Attribute:\n//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html\n//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/reference/attributes.html\n// Learn life-cycle callbacks:\n//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html\n//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/life-cycle-callbacks.html\n\nconst {ccclass, property} = cc._decorator;\n\n@ccclass\nexport default class ResMgr extends cc.Component {\n    public static instance:ResMgr\n    @property([cc.SpriteFrame])\n    itemSF :cc.SpriteFrame[]=[]\n    \n    onLoad () {\n        ResMgr.instance = this\n    }\n\n    start () {\n\n    }\n\n    // update (dt) {}\n\n    static getItemSpriteFrame(id:number):cc.SpriteFrame {\n        console.log(\"sf size:\",ResMgr.instance.itemSF.length)\n        return ResMgr.instance.itemSF[id-1]\n    }\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/ResMgr.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"68dc8132-b331-449f-943e-de1988af5924\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/Tank.ts",
    "content": "import Bullet from \"./Bullet\";\nimport util from \"./util\";\nimport TankGame from \"./TankGame\"\nimport { gameproto } from \"../../Libs/gameproto/gamemsg\";\n// Learn TypeScript:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/typescript.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/typescript/index.html\n// Learn Attribute:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/reference/attributes.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/reference/attributes/index.html\n// Learn life-cycle callbacks:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/life-cycle-callbacks.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/life-cycle-callbacks/index.html\n\nconst {ccclass, property} = cc._decorator;\n\n@ccclass\nexport default class Tank extends cc.Component {\n\n    //基础信息\n    id :number\n    name :string\n\n    snapList :Array<gameproto.IFighterSnapInfo>\n\n\n    @property(cc.Node)\n    body: cc.Node = null;\n\n    //@property\n    //speed:number = 10\n\n    @property(cc.Node)\n    animNode: cc.Node = null;\n\n    @property(cc.Node)\n    playerTank: cc.Node = null;\n    @property(cc.Node)\n    enemyTank: cc.Node = null;\n\n    @property(cc.Prefab)\n    bulletPrefab : cc.Prefab\n\n    //ui hp\n    HPs : cc.Node[] = []\n\n    moveVec :cc.Vec2 = cc.Vec2.ZERO\n    // LIFE-CYCLE CALLBACKS:\n\n    // onLoad () {},\n\n    hp :number\n\n\n    start () {\n        for (let i = 0; i < 4; i++) {\n            let path = `ui/hp/Bar_B-life_${i+1}`\n            let node = cc.find(path,this.node)\n            //console.info(\"$$$$$$$$$$$$$$$$$$$$$$$$$$$find:\",node)\n            this.HPs.push(node)\n        }\n        this.dumpUI()\n    }\n\n    update (dt) {\n        \n        //let n = this.moveVec.normalize()\n        //let v = n.mul(this.speed*dt)\n        //let v = this.moveVec\n        //this.node.position = this.node.position.addSelf(v)\n        //console.log(\"move:n=\",n,\" v=\",v)\n    }\n\n    faceTo(dir:cc.Vec2) {\n     \n        let r = cc.Vec2.UP.signAngle(dir)*180/Math.PI//new cc.Vec2(10,10)\n        //console.log(\"faceto:\",dir,\" rotato=\",r)\n        this.body.angle = r\n    }\n\n    setMoveVec(vec:cc.Vec2) {\n        this.moveVec = vec\n        this.faceTo(vec)\n    }\n\n    shootAnim() :boolean {\n        \n        //anim\n        //let ske = this.animNode.getComponent(sp.Skeleton)//动画有问题，先不弄\n        //ske.setAnimation(0,\"atk_level1\",false)\n        \n        return true\n    }\n\n    stop() {\n\n    }\n\n    shoot() :boolean {\n        \n        //bullet\n        //let pool = new cc.NodePool();//创建对象池\n        //pool.get put\n        let bulletnode = cc.instantiate(this.bulletPrefab)\n        let bullet = bulletnode.addComponent(Bullet)\n        let bulletSpeed = 300\n        bulletnode.parent = TankGame.GetRoot()\n        bulletnode.position = this.node.position\n        \n        bullet.SetMoveVec(this.moveVec.normalize().mul(bulletSpeed))\n        \n        return true\n    }\n\n    initData(info :gameproto.IFighterInfo,isPlayer :boolean) {\n        this.id = info.id\n        this.name = info.name\n        this.node.position = util.FV2Vec(info.pos)\n        this.hp = info.hp\n        this.faceTo(util.FV2Vec(info.vel))\n        this.moveVec = util.FV2Vec(info.vel)\n\n        this.playerTank.active = isPlayer\n        this.enemyTank.active = !isPlayer\n    }\n\n    updateSnap(info:gameproto.IFighterSnapInfo) {\n        this.node.position = util.FV2Vec(info.pos)\n        this.faceTo(util.FV2Vec(info.vel))\n        this.moveVec = util.FV2Vec(info.vel)\n        //console.info(\"update pos:\",info.pos)\n    }\n\n    BeHit(lose:number) {\n        this.hp-=lose\n        console.info(\"BeHit :\",this.id)\n        this.dumpUI()\n    }\n    AddHP(add:number) {\n        this.hp+=add\n        console.info(\"AddHP :\",this.id)\n        this.dumpUI()\n    }\n    dumpUI() {\n        for (let i = 0; i < this.HPs.length; i++) {\n            const element = this.HPs[i];\n            element.active = (i<this.hp)\n        }\n    }\n\n    OnDead(enemyId:number) {\n        console.info(\"OnDead :\",this.id)\n\n    }\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/Tank.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"b4f7aaf2-30dd-4580-a391-2aab8b274454\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/TankGame.ts",
    "content": "// Learn TypeScript:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/typescript.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/typescript/index.html\n// Learn Attribute:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/reference/attributes.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/reference/attributes/index.html\n// Learn life-cycle callbacks:\n//  - [Chinese] http://www.cocos.com/docs/creator/scripting/life-cycle-callbacks.html\n//  - [English] http://www.cocos2d-x.org/docs/editors_and_tools/creator-chapters/scripting/life-cycle-callbacks/index.html\nimport vv from \"./../vv\";\nimport { gameproto } from \"../../Libs/gameproto/gamemsg\";\nimport Tank from \"./Tank\";\nimport Bullet from \"./Bullet\";\nimport GameOverUI from \"./GameOverUI\";\nimport Item from \"./Item\";\nconst {ccclass, property} = cc._decorator;\n\n@ccclass\nexport default class TankGame extends cc.Component {\n\n    static instance :TankGame\n    //战场节点\n    @property(cc.Node)\n    fightNode: cc.Node = null;\n    @property(cc.Prefab)\n    tankPrefab : cc.Prefab\n    @property(GameOverUI)\n    gameoverUI :GameOverUI\n\n    //所有单位\n    tankMap:{[index:number]:Tank;}={}\n\n    //移动包\n    snaps : gameproto.Snap[] = []\n\n    //地图对象\n    entityMap:{[index:number]:cc.Node;}={}\n\n    selfId: number//自己的id\n    // LIFE-CYCLE CALLBACKS:\n \n    onLoad () {\n        TankGame.instance = this\n\n        vv.eventOn(\"loadFightSceneEnd\",(msg)=>{\n            console.warn(\"###loadFightSceneEnd:\")\n            this.loadFightSceneEnd()\n        },this)\n\n        vv.wson(\"battleStart\",(msg)=>{this.onBattleStart(msg)})\n        vv.wson(\"newStage\",(msg)=>{this.onNewStage(msg)})\n        vv.wson(\"snap\",(msg)=>{this.onSnap(msg)})\n        vv.wson(\"shot\",(msg)=>{this.onShot(msg)})\n        vv.wson(\"addEntity\",(msg)=>{this.onAddEntity(msg)})\n        vv.wson(\"removeEntity\",(msg)=>{this.onRemoveEntity(msg)})\n        vv.wson(\"hit\",(msg)=>{this.onHit(msg)})\n        vv.wson(\"addhp\",(msg)=>{this.onAddHP(msg)})\n        vv.wson(\"dead\",(msg)=>{this.onDead(msg)})\n        vv.wson(\"gameover\",(msg)=>{this.onGameOver(msg)})\n    \n    }\n\n    start () {\n        // vv.eventOn('enterFightScene', (data) => {\n        //     vv.loadScene('game',this.loadFightSceneEnd);//进入战斗场景\n        //     console.info(\"#enterFightScene\")\n        // }, this)\n\n    }\n\n    update (dt:number) {\n        //一帧的时间\n        const FRAME_TIME = 20*5\n       \n        if (this.snaps.length>0) {\n            let l = this.snaps.pop()\n            for (const info of l.infos) {\n                let t = this.getTank(info.id)\n                if (t!=null) {\n                    t.updateSnap(info)\n                    if (t.id==this.selfId) {\n                        //console.warn(\"##self:\",info.pos.x,info.pos.y)\n                    }\n                }\n            }\n        }\n        \n     }\n\n    //战斗根节点\n    static GetRoot() : cc.Node {\n        return TankGame.instance.fightNode\n    }\n\n\n    //战斗场景加载完成\n    loadFightSceneEnd() {\n        console.info(\"#send b_ready\")\n        vv.socket.emit(\"b_ready\",{})//战斗准备\n    }\n\n    //生成一个坦克\n    spawnTankA(info:gameproto.IFighterInfo) {\n        let tanknode = cc.instantiate(this.tankPrefab)\n        //let tank = tanknode.addComponent(Bullet)\n        let tank = tanknode.getComponent(Tank) \n        tanknode.parent = TankGame.GetRoot()\n        tank.initData(info,this.selfId==info.id)\n        this.tankMap[tank.id]=tank\n        //return tank\n    }\n\n    onBattleStart(msg:gameproto.BattleStart) {\n        this.selfId = msg.self.id\n        console.info(\"onBattleStart:\",msg.self.id,msg.fighters)\n        for (const f of msg.fighters) {\n            this.spawnTankA(f)\n        }\n        vv.showTip(\"WASD移动，空格发弹。祝好运~\",cc.Color.YELLOW)\n    }\n\n    onNewStage(msg:gameproto.NewStage) {\n        console.info(\"NewStage:\",msg.stage,msg.fighters.length)\n        vv.showTip(`Start Stage ${msg.stage}`)\n        for (const f of msg.fighters) {\n            let t = this.getTank(f.id)\n            if (t==null) {\n                this.spawnTankA(f)\n            }\n        }\n        \n    }\n\n\n\n    //gameproto.Snap\n    onSnap(msg:gameproto.Snap) {\n        //console.info(\"onSnap:\",msg.infos)\n        this.snaps.push(msg)\n    }\n\n    \n    //gameproto.Shot\n    onShot(msg:gameproto.Shot) {\n        console.info(\"onShot:\",msg.id)\n        let t = this.getTank(msg.id)\n        if (t) {\n            t.shootAnim()\n        }\n    }\n\n    \n\n\n    //销毁\n    destoryTank(id:number) {\n        console.info(\"destoryTank:\",id)\n        let tank = this.getTank(id)\n        if (tank!=null) {\n            tank.node.destroy()\n            console.info(\"destoryTank now:\",id)\n        }\n        delete this.tankMap[id]\n    }\n\n    //获取一个tank\n    getTank(id:number) :Tank {\n        if (this.tankMap[id]==undefined) {\n            return null\n        }\n        return this.tankMap[id]\n    }\n\n\n    //gameproto.Snap\n    onAddEntity(msg:gameproto.AddEntity) {\n        if(msg.etype==undefined||msg.etype==0) {\n            cc.loader.loadRes(\"Prefab/bullet_2\" , (err, prefab) => {\n                if (err) {\n                    console.error(\"onAddEntity fail:\",err)\n                    return;\n                }\n    \n                let bulletnode = cc.instantiate(prefab) as cc.Node\n                let bullet = bulletnode.addComponent(Bullet)\n                let bulletSpeed = 300\n                bulletnode.parent = TankGame.GetRoot()\n                bulletnode.position = new cc.Vec2(msg.pos.x,msg.pos.y) \n        \n                let vel = new cc.Vec2(msg.vel.x,msg.vel.y)\n                bullet.SetMoveVec(vel)\n                this.entityMap[msg.id]=bulletnode\n            });\n        } else {\n            cc.loader.loadRes(\"Prefab/item\" , (err, prefab) => {\n                if (err) {\n                    console.error(\"onAddEntity fail:\",err)\n                    return;\n                }\n    \n                console.warn(\"add item:\",msg.etype)\n                let newnode = cc.instantiate(prefab) as cc.Node\n                let item = newnode.addComponent(Item)\n                item.SetType(msg.etype)\n\n        \n                newnode.parent = TankGame.GetRoot()\n                newnode.position = new cc.Vec2(msg.pos.x,msg.pos.y) \n\n                this.entityMap[msg.id]=newnode\n            });\n        }\n\n    }\n   \n    onRemoveEntity(msg:gameproto.RemoveEntity) {\n        let bl = this.entityMap[msg.id]\n        if (bl!=undefined&&bl!=null) {\n            bl.destroy()\n        }\n        delete this.entityMap[msg.id]\n    }\n\n    onHit(msg:gameproto.Hit) {\n        let tank = this.getTank(msg.targetId)\n        if (tank!=undefined&&tank!=null) {\n            tank.BeHit(msg.loseHP)\n        }\n    }\n\n    onAddHP(msg:gameproto.AddHP) {\n        let tank = this.getTank(msg.id)\n        if (tank!=undefined&&tank!=null) {\n            tank.AddHP(msg.add)\n        }\n    }\n\n    onDead(msg:gameproto.Dead) {\n        console.info(\"onDead:\",msg.id)\n        let tank = this.getTank(msg.id)\n        if (tank!=undefined&&tank!=null) {\n            tank.OnDead(msg.enemyId)\n            this.destoryTank(tank.id)\n        }\n    }\n    \n    \n\n    onGameOver(msg:gameproto.GameOver) {\n        console.info(\"GameOver:\",msg.time,msg.stage,msg.kill)\n        let kill = 0\n        if (msg.kill!=undefined) {\n            kill = msg.kill\n        }\n        vv.showTip(`游戏结束，你坚持了[${msg.time}]秒`)\n\n        this.fightNode.active = false\n        this.gameoverUI.DumpUI(msg.time,kill)\n        this.gameoverUI.node.active = true\n    }\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/TankGame.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"a2ba7db9-99b9-469f-ac62-2170e412fe91\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/TankGameType.ts",
    "content": ""
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/TankGameType.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"891009ab-bc24-41ec-97f3-99846bc61e36\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/test.ts",
    "content": "\nvar l = [\"1\",\"2\"]\nl.push(\"111\")\nconsole.info(l)\n\nlet p = l.pop()\nconsole.info(l,p,l.length)"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/test.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"aaed0ba0-4ed9-47ab-a321-f8b2b5212168\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/util.ts",
    "content": "import { gameproto } from \"../../Libs/gameproto/gamemsg\";\n\nconst {ccclass, property} = cc._decorator;\n\n\nexport default class util {\n    \n    static FV2Vec(fv :gameproto.IFVector):cc.Vec2 {\n        return new cc.Vec2(fv.x?fv.x:0,fv.y?fv.y:0)\n    }\n\n    static Vec2FV(v2 :cc.Vec2):gameproto.IFVector {\n        return v2\n    }\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame/util.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"6020b653-adc4-4310-8727-c04fb961a471\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/TankGame.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"17f633ab-aa90-48b2-9510-54f6ea07f4a0\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Test.ts",
    "content": "// Learn TypeScript:\n//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/typescript.html\n//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/typescript.html\n// Learn Attribute:\n//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html\n//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/reference/attributes.html\n// Learn life-cycle callbacks:\n//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html\n//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/life-cycle-callbacks.html\n\nconst {ccclass, property} = cc._decorator;\n\n@ccclass\nexport default class NewClass extends cc.Component {\n\n    @property(cc.Label)\n    label: cc.Label = null;\n\n    @property\n    text: string = 'hello';\n\n    // LIFE-CYCLE CALLBACKS:\n\n    // onLoad () {}\n\n    start () {\n        this.node.position = new cc.Vec2(2,2)\n    }\n\n    update (dt) {\n        \n        //console.warn(\"####################at \",this.node.position.x,this.node.position.y)\n    }\n}\n"
  },
  {
    "path": "ChessCardHall/assets/Script/Test.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"2de3c256-b712-4045-8375-8c89faefedef\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Turntable.ts",
    "content": "import vv from \"./vv\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class Turntable extends cc.Component {\n    @property(cc.Node) Reward: cc.Node = null;//奖励圆盘\n    @property(cc.Node) guang: cc.Node = null;//圆盘的灯光\n    @property(cc.Node) list: cc.Node = null;//中奖名单\n    @property(cc.Node) myList: cc.Node = null;//我的中奖纪录\n    @property(cc.Node) btnGet: cc.Node = null;//抽奖按钮\n    @property(cc.Node) free: cc.Node = null;//抽奖按钮免费标记\n    @property(cc.Node) spend: cc.Node = null;//抽奖按钮花费标记\n    @property(cc.Label) price: cc.Label = null;//当前抽奖价格\n\n    @property([cc.Node]) viewAnimations: cc.Node[] = [];//界面动画节点集合\n\n    private turntableReward: any = [];\n    private correctAngle: number = 25.7;\n    private lastPosition: number = 0;\n    private HallJS: any = null;\n    private color1: cc.Color = new cc.Color(11, 229, 255);\n    private color2: cc.Color = new cc.Color(255, 114, 249);\n\n    onLoad() {\n        this.HallJS = cc.find(\"Canvas\").getComponent(\"Hall\")\n\n        //界面初始化\n        let time = new Date(vv.userInfo.lastGetFreeTurntable);\n        let newTime = new Date();\n        if (!vv.isFreeTurntable) {\n            this.free.active = false;\n            this.spend.active = true;\n        }\n\n        //界面动画\n        this.viewAnimations[0].y -= 100;\n        this.viewAnimations[0].opacity = 0;\n        this.viewAnimations[1].y -= 240;\n        this.viewAnimations[1].opacity = 0;\n        this.viewAnimations[2].scale = 0;\n\n        this.viewAnimations[2].runAction(cc.sequence(\n            cc.spawn(\n                cc.scaleTo(0.3, 1, 1),\n                cc.rotateBy(0.3, 360)\n            ),\n            cc.callFunc(() => {\n                this.viewAnimations[1].opacity = 100;\n                this.viewAnimations[1].runAction(cc.sequence(\n                    cc.spawn(\n                        cc.fadeTo(0.3, 255),\n                        cc.moveBy(0.3, 0, 240),\n\n                    ),\n                    cc.callFunc(() => {\n                        vv.socket.emit('loadTurntableInfo');//读取大转盘中奖记录\n                        this.viewAnimations[0].opacity = 100;\n                        this.viewAnimations[0].runAction(\n                            cc.spawn(\n                                cc.fadeTo(0.2, 255),\n                                cc.moveBy(0.2, 0, 100),\n                            )\n                        );\n                    })\n                ));\n            })\n        ));\n    }\n\n    start() {\n        vv.eventOn('loadTurntableInfo', (data) => {\n            cc.log(\"转盘中奖记录:\" + JSON.stringify(data));\n            this.showWinningList(data);\n        }, this);\n\n        this.schedule(() => {\n            this.guang.active = !this.guang.active;\n        }, 0.5);\n\n        //点击抽奖按钮\n        this.scheduleOnce(() => {\n            vv.btnClick(this.btnGet, () => {\n                this.btnGet.pauseSystemEvents(true);//暂停节点监听\n                vv.socket.emit('turntable');\n            });\n\n            vv.eventOn('turntable', (data) => {\n                cc.log(\"中奖结果:\" + JSON.stringify(data));\n                if (!data[0]) {\n                    vv.showTip(data[1]);\n                    this.btnGet.resumeSystemEvents(true);//恢复节点监听\n                }\n                else {\n                    this.rewardRun(data[1]);\n                }\n\n            }, this);\n        }, 1);\n    }\n\n    //显示中奖名单\n    showWinningList(data) {\n        if (!data) return;\n        for (let i = 0; i < data.length; i++) {\n            this.scheduleOnce(() => {\n                let node: cc.Node = cc.instantiate(this.list);\n                let layout: cc.Node = node.getChildByName('layout');\n                layout.opacity = 100;\n                layout.y = -30;\n                let time: cc.Node = layout.getChildByName('time');\n                let name: cc.Node = layout.getChildByName('name');\n                let reward: cc.Node = layout.getChildByName('reward');\n                if (data[i].id === 0) reward.color = this.color1;\n                if (data[i].id === 5) reward.color = this.color2;\n\n                let n = new Date(data[i].time);\n\n                time.getComponent(cc.Label).string = vv.timeDifference(n, data.nowTime);;\n                name.getComponent(cc.Label).string = data[i].nickname;\n                reward.getComponent(cc.Label).string = data[i].des;\n                node.parent = this.list.parent;\n                node.active = true;\n                layout.runAction(cc.spawn(\n                    cc.moveTo(0.2, 0, 0),\n                    cc.fadeTo(0.2, 255)\n                ));\n            }, 0.1 * i);\n        }\n    }\n\n    //转盘转动动画\n    rewardRun(data) {\n        if (this.spend.active) {\n            vv.userInfo.diamond -= 10;\n            this.HallJS.diamond.string = vv.userInfo.diamond;\n        }\n\n        if (data.type === 1) {//更新金币\n            vv.userInfo.gold += data.num;\n        }\n        else if (data.type === 2) {//更新钻石\n            vv.userInfo.diamond += data.num;\n        }\n        else if (data.type === 3) {//更新经验\n            vv.userInfo.exp += data.num;\n        }\n\n        vv.isFreeTurntable = false;\n        this.free.active = false;\n        this.spend.active = true;\n\n        this.Reward.runAction(cc.sequence(\n            cc.rotateBy(4, 1800 + 51.43 * data.id + this.correctAngle - this.lastPosition * 51.43).easing(cc.easeInOut(2)),\n            cc.callFunc(() => {\n                this.correctAngle = 0;\n                this.lastPosition = data.id;\n\n                let icon: string = null;\n                if (data.type === 1) {//更新金币\n                    icon = \"<img src='[gold]'/> x \";\n                    this.HallJS.gold.string = vv.virtualCoinToCN(vv.userInfo.gold);\n                }\n                else if (data.type === 2) {//更新钻石\n                    icon = \"<img src='[diam]'/> x \";\n                    this.HallJS.diamond.string = vv.virtualCoinToCN(vv.userInfo.diamond);\n                }\n                else if (data.type === 3) {//更新经验\n                    icon = \"<img src='[exp]'/> x \";\n                    let level = vv.expToLevel(vv.userInfo.exp);\n                    this.HallJS.level.string = \"Lv.\" + level;\n                    this.HallJS.grade.spriteFrame = level > 99 ? this.HallJS.grades[9] : this.HallJS.grades[Math.floor(level / 10)];\n                }\n\n                vv.showTip(icon + data.num);\n                vv.playAudio(\"win\");\n                this.btnGet.resumeSystemEvents(true);//恢复节点监听\n\n                let node: cc.Node = cc.instantiate(this.myList);\n                let time: cc.Node = node.getChildByName('time');\n                let reward: cc.Node = node.getChildByName('reward');\n                if (data.id === 0) reward.color = this.color1;\n                if (data.id === 5) reward.color = this.color2;\n                reward.getComponent(cc.Label).string = data.des;\n                let t = new Date();\n                let hour = t.getHours();\n                let minute = t.getMinutes();\n                let second = t.getSeconds();\n                time.getComponent(cc.Label).string = (hour < 10 ? \"0\" + hour : hour) + \":\" + (minute < 10 ? \"0\" + minute : minute) + \":\" + (second < 10 ? \"0\" + second : second);\n                node.parent = this.myList.parent;\n                node.zIndex = -node.parent.childrenCount;\n                node.active = true;\n            })\n        ));\n    }\n\n    onDestroy() {\n        this.HallJS.gold.string = vv.virtualCoinToCN(vv.userInfo.gold);\n        this.HallJS.diamond.string = vv.virtualCoinToCN(vv.userInfo.diamond);\n        let level = vv.expToLevel(vv.userInfo.exp);\n        this.HallJS.level.string = \"Lv.\" + level;\n        this.HallJS.grade.spriteFrame = level > 99 ? this.HallJS.grades[9] : this.HallJS.grades[Math.floor(level / 10)];\n    }\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/Turntable.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"dbeb6b2a-3f7c-466a-be1d-45fa8ef262e4\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/vv.ts",
    "content": "/** 全局工具类 */\ntype NetCallBackFunc = (msgId:string,msg:any) => void;\nexport class FakeSocket {\n    on(msgId:string,fun:Function){\n        vv.wson(msgId,fun)\n    }\n\n    emit(msgId:string,msg?:any){\n        vv.wssend(msgId,msg)\n    }\n}\nexport default class vv {\n    /** socket连接 */\n    static socket: FakeSocket = new FakeSocket();\n    //static socket: any = null;\n    static wssocket: WebSocket = null;\n    /** 用户数据 */\n    static userInfo: any = null;\n    /** 聊天数据 */\n    static chatInfo: any = [];\n    /** 是否有免费大转盘 */\n    static isFreeTurntable: boolean = false;\n    /** 是否打开过大转盘 */\n    static openedTurntable: boolean = false;\n    /** 是否刷新离线奖励 */\n    static needUpdataOffLineReward: boolean = true;\n\n    /** 当前显示的提示框数量 */\n    static showTipState: boolean[] = [false, false, false, false, false, false, false, false];\n\n    /** 预制体是否正在打开中 */\n    static prefabOpening: boolean = false;\n\n    /** 清空用户数据 */\n    static emptyUseData() {\n        this.userInfo = null;\n        this.isFreeTurntable = false;\n    }\n\n    /** 初始化用户数据 */\n    static initUseData() {\n        let time: number = 0//Date.parse(vv.userInfo.lastGetFreeTurntable);\n        let newTime: Date = new Date();\n        newTime.setHours(0);\n        newTime.setMinutes(0);\n        newTime.setSeconds(0);\n        newTime.setMilliseconds(0)\n\n        // if (!vv.userInfo.lastGetFreeTurntable) {\n        //     vv.isFreeTurntable = true;\n        // }\n        // else if (newTime.getTime() !== time) {\n        //     vv.isFreeTurntable = true;\n        // }\n    }\n\n    static GetServerURL() :string {\n        return \"http://127.0.0.1:9900\"\n        //return \"http://magicsea.top:9900\"\n    }\n\n    /** 根据经验计算出等级 */\n    static expToLevel(exp: number): number {\n        let level: number = 1;\n        let i = 0;\n\n        while (exp > 0) {\n            exp = exp - 10 * i - 10;\n            if (exp >= 0) {\n                level++;\n            }\n            else { \n                if (level > 100) level = 100;\n                return level;\n            }\n\n            i++;\n        }\n\n        return level;\n    }\n\n    /** 计算出虚拟币中文单位 */\n    static virtualCoinToCN(num: number): string {\n        if (num < 10000) return String(num)\n        else if (num < 100000) return Math.floor(num / 10) / 1000 + \"万\"\n        else if (num < 1000000) return Math.floor(num / 100) / 100 + \"万\"\n        else if (num < 10000000) return Math.floor(num / 1000) / 10 + \"万\"\n        else if (num < 100000000) return Math.floor(num / 10000) + \"万\"\n        else if (num < 1000000000) return Math.floor(num / 100000) / 1000 + \"亿\"\n        else if (num < 10000000000) return Math.floor(num / 1000000) / 100 + \"亿\"\n        else if (num < 100000000000) return Math.floor(num / 10000000) / 10 + \"亿\"\n        else if (num < 1000000000000) return Math.floor(num / 100000000) + \"亿\"\n        else return \"9999亿+\"\n    }\n\n    /** 计算距离现在时间差 */\n    static timeDifference(time: Date, nowTime?: Date): string {\n        let t = nowTime ? nowTime : new Date();\n        let newTime = Math.floor((t.getTime() - time.getTime()) / 1000);\n\n        if (newTime < 60) {\n            return newTime + \"秒前\";\n        }\n        else if (newTime < 60 * 60) {\n            return Math.floor(newTime / 60) + \"分钟前\";\n        }\n        else if (newTime < 60 * 60 * 24) {\n            return Math.floor(newTime / (60 * 60)) + \"小时前\";\n        }\n        else {\n            return Math.floor(newTime / (60 * 60 * 24)) + \"天前\";\n        }\n    }\n\n    /** 屏幕适配 */\n    static screenAdapter() {\n        if (cc.sys.os === cc.sys.OS_WINDOWS) return;\n\n        let canvas: cc.Canvas = cc.find(\"Canvas\").getComponent(cc.Canvas);\n        let winSize: cc.Size = cc.view.getVisibleSize();\n        if (winSize.height / winSize.width >= 960 / 720) {\n            canvas.fitWidth = true;\n            canvas.fitHeight = false;\n        }\n        else {\n            canvas.fitHeight = true;\n            canvas.fitWidth = false;\n        }\n    }\n\n    /** 监听屏幕尺寸变化 */\n    static onScreenSizeChange() {\n        let bg: cc.Node = cc.find(\"Canvas/bg\");\n        if (bg) {\n            bg.on('size-changed', (event) => {\n                this.screenAdapter();//屏幕适配\n            });\n        }\n    }\n\n    /** 禁止交互操作 */\n    static pauseTouch() {\n        cc.find(\"MASK\").scale = 1;\n    }\n\n    /** 恢复交互操作 */\n    static resumeTouch() {\n        cc.find(\"MASK\").scale = 0;\n    }\n\n    /** 跳转场景 */\n    static loadScene(sceneName: string, cb?: Function) {\n        let MASK = cc.find(\"MASK\");\n        let lab = cc.find(\"MASK/lab\");\n        MASK.scale = 1;\n        MASK.runAction(cc.sequence(\n            cc.fadeTo(0.6, 255),\n            cc.callFunc(() => {\n                cc.director.loadScene(sceneName, () => {\n                    this.showTipState = [false, false, false, false, false, false, false, false];\n                    if (cb) cb();\n                });\n\n                lab.getComponent(cc.Label).scheduleOnce(() => {\n                    lab.active = true;\n                }, 0.5);\n            })\n        ));\n    }\n\n    /** 事件监听 */\n    static eventOn(event: string, cb: Function, target: object) {\n        cc.find(\"Canvas\").on(event, function (event) {\n            cb(event);\n        }, target);\n    }\n\n    /** 事件发射 */\n    static eventEmit(event: string, data?: any) {\n        cc.find(\"Canvas\").emit(event, data);\n        //cc.find(\"Canvas\").emit(event, data,target);\n    }\n\n    /** 播放音频 */\n    static playAudio(url: string, loop?: boolean) {\n        if (!url) {\n            cc.log(\"playAudio err: url is null\");\n            return;\n        }\n\n        if (!loop) loop = false;\n\n        cc.log(\"play audio  pre：\",url)\n        let path = \"Audio/\" + url + \".mp3\"\n        cc.loader.loadRes(path, cc.AudioClip, (err, audioClip)=> {\n            cc.audioEngine.play(audioClip,loop,1)\n            });\n        cc.log(\"play audio：\",path)\n      \n        //let audioID = cc.audioEngine.play(cc.url.raw(\"resources/Audio/\" + url + \".mp3\"), loop, 1);\n\n        //return audioID;\n    }\n\n    /** 提示框 font:显示的文字 color:文字的颜色(默认:120,120,120)  fontSize:文字大小(默认30号) */\n    static showTip(font: string, color?: cc.Color, fontSize?: number) {\n        if (!font) {\n            cc.log(\"提示文字不能为空\");\n            return;\n        }\n\n        let id = this.showTipState.indexOf(false);\n        if (id === -1) return;\n        this.showTipState[id] = true;\n\n        cc.loader.loadRes(\"Prefab/tip\", (err, prefab) => {\n            if (err) {\n                cc.log(\"加载预制体出错: \" + err);\n                return;\n            }\n            let node = cc.instantiate(prefab);\n            node.x = cc.winSize.width / 2;\n            node.y = cc.winSize.height + node.height / 2;\n            node.getChildByName('tip').getComponent(cc.RichText).string = font;\n            node.parent = cc.director.getScene();\n\n            node.runAction(cc.sequence(\n                cc.moveBy(0.3, 0, -(node.height + 3) * id - node.height - 10).easing(cc.easeOut(0.3)),\n                cc.delayTime(0.6),\n                cc.callFunc(() => {\n                    this.showTipState[id] = false;\n                }),\n                cc.fadeOut(0.6),\n                cc.callFunc(() => {\n                    node.destroy();\n                })\n            ));\n        });\n    }\n\n    /** 添加按钮点击处理 */\n    static btnClick(node: cc.Node, cb?: Function, noScale?: boolean, noPlayAudio?: boolean) {\n        node.on('touchend', (event) => {\n            if (!noPlayAudio) this.playAudio(\"click\");\n            if (cb) cb()\n        });\n\n        if (!noScale) {\n            node.on('touchstart', (event) => {\n                node.scale = 1.05;\n            });\n\n            node.on('touchend', (event) => {\n                node.scale = 1;\n\n            });\n\n            node.on('touchcancel', (event) => {\n                node.scale = 1;\n            });\n        }\n    }\n\n    /** 转换消息成表情 */\n    static msgToBeExpression(word: string): string {\n        cc.log(word)\n        if (word.indexOf(\"[\") > -1) {\n            let k = [\"[笑]\", \"[哭]\", \"[色]\", \"[汗]\", \"[怒]\", \"[晕]\", \"[哈]\", \"[冷]\"];\n            let s = [\"[xiao]\", \"[ku]\", \"[se]\", \"[han]\", \"[nu]\", \"[yun]\", \"[ha]\", \"[leng]\"];\n            for (let i = 0; i < k.length; i++) {\n                while (word.indexOf(k[i]) > -1) {\n                    word = word.replace(k[i], \"<img src='\" + s[i] + \"'/>\");\n                }\n            }\n        }\n        return word;\n    }\n\n    /** 打开预制体 url:路径地址,resources\\Prefab开始 cb:回调函数 */\n    static openPrefab(url: string, cb?: Function): cc.Node {\n        if (!url) return;\n\n        if (this.prefabOpening) {\n            cc.log(\"打开预制体出错: 预制体正在打开中\");\n            return;\n        }\n\n        if (cc.find(\"Canvas/prefabs/\" + url)) {\n            cc.log(\"打开预制体出错: 预制体已经打开\");\n            return;\n        }\n\n        this.prefabOpening = true;\n\n        cc.loader.loadRes(\"Prefab/\" + url, (err, prefab) => {\n            if (err) return;\n\n            let node: cc.Node = cc.instantiate(prefab);\n            node.parent = cc.find(\"Canvas/prefabs\");\n            if (cb) cb(node);\n\n            let btnClose: cc.Node = cc.find(\"btnClose\", node);\n            if (btnClose) this.btnClick(btnClose, () => { node.destroy() });\n\n            let MASK: cc.Node = node.getChildByName('MASK');\n            if (MASK) this.btnClick(MASK, () => { node.destroy() });\n\n            this.prefabOpening = false;\n            return node;\n        });\n    }\n\n\n    //发送websocket消息\n    static wssend(msgId:string,o?:any) {\n        var msg = JSON.stringify({Id:msgId,Msg:JSON.stringify(o)})\n        if (msgId!=\"b_move\") {\n            console.warn(\"==============send:\"+msg)\n        }\n\n        this.wssocket.send(msg)\n    }\n\n    static mapNetHandle:{[index:string]:Function;}={}\n    //网络消息分发\n    static wsDistributeNetMessage(raw:string) {\n        var obj = JSON.parse(raw)\n        var id = obj.Id as string\n        var msg = JSON.parse(obj.Msg)\n        if (id!=\"snap\") {\n            console.warn(\"=============onmessage id:\"+id+\"  msg:\"+msg)\n        }\n       \n        var element = this.mapNetHandle[id]\n        if (element!=null) {\n            //console.warn(\"$$$\"+typeof(element)+\"   \\n\"+element)\n            element(msg)\n        }\n        else \n        {\n            console.error(\"================no handle event:\"+id)\n            for (const key in this.mapNetHandle) {\n               console.warn(\"=>id:\"+key+\"  fun:\"+this.mapNetHandle[key])\n            }\n        }\n    }\n    //网络消息事件\n    static wson(msgId:string,callback:Function) {\n        this.mapNetHandle[msgId]=callback\n        //console.warn(\"=============wson id:\"+msgId+\"  func:\"+typeof(callback))\n    }\n}"
  },
  {
    "path": "ChessCardHall/assets/Script/vv.ts.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"36706600-4927-449f-832c-a6b5a5d0d7ed\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Script.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"e40500f9-f86b-4b7a-86d9-0ed512dd239f\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/chat/AutoAtlas.pac",
    "content": "{\n    \"__type__\": \"cc.SpriteAtlas\"\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/chat/AutoAtlas.pac.meta",
    "content": "{\n  \"ver\": \"1.2.0\",\n  \"uuid\": \"ed8727fd-9f94-45a9-8ad9-029b04aa5148\",\n  \"maxWidth\": 1024,\n  \"maxHeight\": 1024,\n  \"padding\": 2,\n  \"allowRotation\": true,\n  \"forceSquared\": false,\n  \"powerOfTwo\": true,\n  \"algorithm\": \"MaxRects\",\n  \"format\": \"png\",\n  \"quality\": 80,\n  \"contourBleed\": false,\n  \"paddingBleed\": false,\n  \"filterUnused\": true,\n  \"packable\": false,\n  \"premultiplyAlpha\": false,\n  \"filterMode\": \"bilinear\",\n  \"platformSettings\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/chat/arrow_chat.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3f4ab62b-35f9-4851-9e0b-86ad0b0cd1c5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 80,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"arrow_chat\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"16083852-e7d4-4859-8d27-7da66bb94803\",\n      \"rawTextureUuid\": \"3f4ab62b-35f9-4851-9e0b-86ad0b0cd1c5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 12,\n      \"trimY\": 23,\n      \"width\": 56,\n      \"height\": 34,\n      \"rawWidth\": 80,\n      \"rawHeight\": 80,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/chat/bgExpression.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"93359f64-461f-40a8-8202-cb9746e2297b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 200,\n  \"height\": 120,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bgExpression\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"bca48fb7-6520-4372-b684-a89b5d7528e3\",\n      \"rawTextureUuid\": \"93359f64-461f-40a8-8202-cb9746e2297b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 200,\n      \"height\": 120,\n      \"rawWidth\": 200,\n      \"rawHeight\": 120,\n      \"borderTop\": 30,\n      \"borderBottom\": 30,\n      \"borderLeft\": 30,\n      \"borderRight\": 30,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/chat/bg_chat.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"aa42d300-8599-4ac9-8713-9aa3f981f29d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 50,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_chat\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ba04946c-b9d3-41b7-8160-6d99973cc159\",\n      \"rawTextureUuid\": \"aa42d300-8599-4ac9-8713-9aa3f981f29d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 50,\n      \"height\": 50,\n      \"rawWidth\": 50,\n      \"rawHeight\": 50,\n      \"borderTop\": 15,\n      \"borderBottom\": 15,\n      \"borderLeft\": 15,\n      \"borderRight\": 15,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/chat/bg_chatEditBox.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e47de9be-1278-4997-920e-41d2292a028f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 208,\n  \"height\": 62,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_chatEditBox\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"fec9a2b7-bb60-418e-ae0b-fb410823c97a\",\n      \"rawTextureUuid\": \"e47de9be-1278-4997-920e-41d2292a028f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 208,\n      \"height\": 62,\n      \"rawWidth\": 208,\n      \"rawHeight\": 62,\n      \"borderTop\": 20,\n      \"borderBottom\": 20,\n      \"borderLeft\": 30,\n      \"borderRight\": 30,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/chat/btn_chat.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"757aab3c-8b5c-461e-b206-581e14792403\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 80,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn_chat\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d0e8d4b1-3078-4be9-acd7-8c0fd7a2d843\",\n      \"rawTextureUuid\": \"757aab3c-8b5c-461e-b206-581e14792403\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -0.5,\n      \"offsetY\": 0,\n      \"trimX\": 10,\n      \"trimY\": 15,\n      \"width\": 59,\n      \"height\": 50,\n      \"rawWidth\": 80,\n      \"rawHeight\": 80,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/chat/expression.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n    <dict>\n        <key>frames</key>\n        <dict>\n            <key>[diam].png</key>\n            <dict>\n                <key>frame</key>\n                <string>{{204,2},{49,40}}</string>\n                <key>offset</key>\n                <string>{0,0}</string>\n                <key>rotated</key>\n                <false/>\n                <key>sourceColorRect</key>\n                <string>{{0,0},{49,40}}</string>\n                <key>sourceSize</key>\n                <string>{49,40}</string>\n            </dict>\n            <key>[exp].png</key>\n            <dict>\n                <key>frame</key>\n                <string>{{204,44},{47,40}}</string>\n                <key>offset</key>\n                <string>{1,0}</string>\n                <key>rotated</key>\n                <false/>\n                <key>sourceColorRect</key>\n                <string>{{2,0},{47,40}}</string>\n                <key>sourceSize</key>\n                <string>{49,40}</string>\n            </dict>\n            <key>[gold].png</key>\n            <dict>\n                <key>frame</key>\n                <string>{{204,86},{41,41}}</string>\n                <key>offset</key>\n                <string>{0,0}</string>\n                <key>rotated</key>\n                <false/>\n                <key>sourceColorRect</key>\n                <string>{{0,0},{41,41}}</string>\n                <key>sourceSize</key>\n                <string>{41,41}</string>\n            </dict>\n            <key>[ha].png</key>\n            <dict>\n                <key>frame</key>\n                <string>{{2,198},{96,92}}</string>\n                <key>offset</key>\n                <string>{4,-1}</string>\n                <key>rotated</key>\n                <false/>\n                <key>sourceColorRect</key>\n                <string>{{8,7},{96,92}}</string>\n                <key>sourceSize</key>\n                <string>{104,104}</string>\n            </dict>\n            <key>[han].png</key>\n            <dict>\n                <key>frame</key>\n                <string>{{2,292},{92,92}}</string>\n                <key>offset</key>\n                <string>{5,-2}</string>\n                <key>rotated</key>\n                <false/>\n                <key>sourceColorRect</key>\n                <string>{{11,8},{92,92}}</string>\n                <key>sourceSize</key>\n                <string>{104,104}</string>\n            </dict>\n            <key>[ku].png</key>\n            <dict>\n                <key>frame</key>\n                <string>{{2,2},{96,100}}</string>\n                <key>offset</key>\n                <string>{4,2}</string>\n                <key>rotated</key>\n                <true/>\n                <key>sourceColorRect</key>\n                <string>{{8,0},{96,100}}</string>\n                <key>sourceSize</key>\n                <string>{104,104}</string>\n            </dict>\n            <key>[leng].png</key>\n            <dict>\n                <key>frame</key>\n                <string>{{100,194},{96,92}}</string>\n                <key>offset</key>\n                <string>{4,-1}</string>\n                <key>rotated</key>\n                <false/>\n                <key>sourceColorRect</key>\n                <string>{{8,7},{96,92}}</string>\n                <key>sourceSize</key>\n                <string>{104,104}</string>\n            </dict>\n            <key>[nu].png</key>\n            <dict>\n                <key>frame</key>\n                <string>{{104,2},{96,98}}</string>\n                <key>offset</key>\n                <string>{4,2}</string>\n                <key>rotated</key>\n                <true/>\n                <key>sourceColorRect</key>\n                <string>{{8,1},{96,98}}</string>\n                <key>sourceSize</key>\n                <string>{104,104}</string>\n            </dict>\n            <key>[se].png</key>\n            <dict>\n                <key>frame</key>\n                <string>{{2,100},{96,96}}</string>\n                <key>offset</key>\n                <string>{4,-1}</string>\n                <key>rotated</key>\n                <false/>\n                <key>sourceColorRect</key>\n                <string>{{8,5},{96,96}}</string>\n                <key>sourceSize</key>\n                <string>{104,104}</string>\n            </dict>\n            <key>[xiao].png</key>\n            <dict>\n                <key>frame</key>\n                <string>{{100,288},{94,92}}</string>\n                <key>offset</key>\n                <string>{5,-2}</string>\n                <key>rotated</key>\n                <false/>\n                <key>sourceColorRect</key>\n                <string>{{10,8},{94,92}}</string>\n                <key>sourceSize</key>\n                <string>{104,104}</string>\n            </dict>\n            <key>[yun].png</key>\n            <dict>\n                <key>frame</key>\n                <string>{{100,100},{96,92}}</string>\n                <key>offset</key>\n                <string>{4,-1}</string>\n                <key>rotated</key>\n                <false/>\n                <key>sourceColorRect</key>\n                <string>{{8,7},{96,92}}</string>\n                <key>sourceSize</key>\n                <string>{104,104}</string>\n            </dict>\n        </dict>\n        <key>metadata</key>\n        <dict>\n            <key>format</key>\n            <integer>2</integer>\n            <key>realTextureFileName</key>\n            <string>expression.png</string>\n            <key>size</key>\n            <string>{256,512}</string>\n            <key>smartupdate</key>\n            <string>$TexturePacker:SmartUpdate:3fbec00344b6880aeddf2ea7be2c0631:1/1$</string>\n            <key>textureFileName</key>\n            <string>expression.png</string>\n        </dict>\n    </dict>\n</plist>\n"
  },
  {
    "path": "ChessCardHall/assets/Texture/chat/expression.plist.meta",
    "content": "{\n  \"ver\": \"1.2.4\",\n  \"uuid\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\",\n  \"rawTextureUuid\": \"e841f7f0-dd10-44e5-90e7-06e63783430e\",\n  \"size\": {\n    \"width\": 256,\n    \"height\": 512\n  },\n  \"type\": \"Texture Packer\",\n  \"subMetas\": {\n    \"[diam].png\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f7cb652b-cd23-4e9f-8dbd-f3eda4aaf3db\",\n      \"rawTextureUuid\": \"e841f7f0-dd10-44e5-90e7-06e63783430e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 204,\n      \"trimY\": 2,\n      \"width\": 49,\n      \"height\": 40,\n      \"rawWidth\": 49,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"[exp].png\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"668be236-dfa9-4297-ad0f-0b9cb26e90f5\",\n      \"rawTextureUuid\": \"e841f7f0-dd10-44e5-90e7-06e63783430e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 1,\n      \"offsetY\": 0,\n      \"trimX\": 204,\n      \"trimY\": 44,\n      \"width\": 47,\n      \"height\": 40,\n      \"rawWidth\": 49,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"[gold].png\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8e4aae08-2bba-4532-b7fc-bdcff5472fc7\",\n      \"rawTextureUuid\": \"e841f7f0-dd10-44e5-90e7-06e63783430e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 204,\n      \"trimY\": 86,\n      \"width\": 41,\n      \"height\": 41,\n      \"rawWidth\": 41,\n      \"rawHeight\": 41,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"[ha].png\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5a2860d5-bd96-4e3f-9508-779e663e95ba\",\n      \"rawTextureUuid\": \"e841f7f0-dd10-44e5-90e7-06e63783430e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 4,\n      \"offsetY\": -1,\n      \"trimX\": 2,\n      \"trimY\": 198,\n      \"width\": 96,\n      \"height\": 92,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"[han].png\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"437c0af9-ba74-4e16-b09f-74c4181a616e\",\n      \"rawTextureUuid\": \"e841f7f0-dd10-44e5-90e7-06e63783430e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 5,\n      \"offsetY\": -2,\n      \"trimX\": 2,\n      \"trimY\": 292,\n      \"width\": 92,\n      \"height\": 92,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"[ku].png\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"489258a6-9f52-46eb-87d2-f6b6e74e1a16\",\n      \"rawTextureUuid\": \"e841f7f0-dd10-44e5-90e7-06e63783430e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": true,\n      \"offsetX\": 4,\n      \"offsetY\": 2,\n      \"trimX\": 2,\n      \"trimY\": 2,\n      \"width\": 96,\n      \"height\": 100,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"[leng].png\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cec85e47-2f47-4292-aef4-fd41a5c93ae8\",\n      \"rawTextureUuid\": \"e841f7f0-dd10-44e5-90e7-06e63783430e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 4,\n      \"offsetY\": -1,\n      \"trimX\": 100,\n      \"trimY\": 194,\n      \"width\": 96,\n      \"height\": 92,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"[nu].png\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a4aa7f22-2fdc-467f-bbda-9fab0f3d52b6\",\n      \"rawTextureUuid\": \"e841f7f0-dd10-44e5-90e7-06e63783430e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": true,\n      \"offsetX\": 4,\n      \"offsetY\": 2,\n      \"trimX\": 104,\n      \"trimY\": 2,\n      \"width\": 96,\n      \"height\": 98,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"[se].png\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"848e334e-722a-4588-aab6-03c812f196bf\",\n      \"rawTextureUuid\": \"e841f7f0-dd10-44e5-90e7-06e63783430e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 4,\n      \"offsetY\": -1,\n      \"trimX\": 2,\n      \"trimY\": 100,\n      \"width\": 96,\n      \"height\": 96,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"[xiao].png\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"20e45d0a-cb4c-4c87-bde4-467cb22553aa\",\n      \"rawTextureUuid\": \"e841f7f0-dd10-44e5-90e7-06e63783430e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 5,\n      \"offsetY\": -2,\n      \"trimX\": 100,\n      \"trimY\": 288,\n      \"width\": 94,\n      \"height\": 92,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    },\n    \"[yun].png\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ce0303f9-542a-4800-8a42-98e34f088066\",\n      \"rawTextureUuid\": \"e841f7f0-dd10-44e5-90e7-06e63783430e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 4,\n      \"offsetY\": -1,\n      \"trimX\": 100,\n      \"trimY\": 100,\n      \"width\": 96,\n      \"height\": 92,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"spriteType\": \"normal\",\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/chat/expression.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e841f7f0-dd10-44e5-90e7-06e63783430e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 256,\n  \"height\": 512,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"expression\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"66d1f1c8-43f8-4dc8-9be6-f591cd727c3a\",\n      \"rawTextureUuid\": \"e841f7f0-dd10-44e5-90e7-06e63783430e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -0.5,\n      \"offsetY\": 63,\n      \"trimX\": 2,\n      \"trimY\": 2,\n      \"width\": 251,\n      \"height\": 382,\n      \"rawWidth\": 256,\n      \"rawHeight\": 512,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/chat.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"e1190430-8333-4955-b863-a994c5d8fd39\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/common/AutoAtlas.pac",
    "content": "{\n    \"__type__\": \"cc.SpriteAtlas\"\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/common/AutoAtlas.pac.meta",
    "content": "{\n  \"ver\": \"1.2.0\",\n  \"uuid\": \"aec7d561-670a-4993-8d6b-b786333ebab7\",\n  \"maxWidth\": 1024,\n  \"maxHeight\": 1024,\n  \"padding\": 2,\n  \"allowRotation\": true,\n  \"forceSquared\": false,\n  \"powerOfTwo\": true,\n  \"algorithm\": \"MaxRects\",\n  \"format\": \"png\",\n  \"quality\": 80,\n  \"contourBleed\": false,\n  \"paddingBleed\": false,\n  \"filterUnused\": true,\n  \"packable\": false,\n  \"premultiplyAlpha\": false,\n  \"filterMode\": \"bilinear\",\n  \"platformSettings\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/common/bg_notice.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1655fbf1-236a-49cf-ba6e-7e2e7421ba8f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 208,\n  \"height\": 62,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_notice\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9b5af999-533e-452c-a11a-d0c005c92130\",\n      \"rawTextureUuid\": \"1655fbf1-236a-49cf-ba6e-7e2e7421ba8f\",\n      \"trimType\": \"custom\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 208,\n      \"height\": 62,\n      \"rawWidth\": 208,\n      \"rawHeight\": 62,\n      \"borderTop\": 20,\n      \"borderBottom\": 20,\n      \"borderLeft\": 20,\n      \"borderRight\": 20,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/common/btn_leave.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f3ea848b-952d-435f-9e47-ef638512e7fc\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 80,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn_leave\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"babef935-f23f-43d0-b29a-c769cc089958\",\n      \"rawTextureUuid\": \"f3ea848b-952d-435f-9e47-ef638512e7fc\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 12,\n      \"trimY\": 13,\n      \"width\": 56,\n      \"height\": 54,\n      \"rawWidth\": 80,\n      \"rawHeight\": 80,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/common/icon_notice.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"697d6bef-8d5d-4c1b-832d-2789a3135996\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 74,\n  \"height\": 71,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_notice\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ce9d845c-e5b8-4125-805f-c48743b8114a\",\n      \"rawTextureUuid\": \"697d6bef-8d5d-4c1b-832d-2789a3135996\",\n      \"trimType\": \"custom\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 74,\n      \"height\": 71,\n      \"rawWidth\": 74,\n      \"rawHeight\": 71,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/common.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"7c789db3-ce4f-47d0-bf5e-763d023be9dc\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/AutoAtlas.pac",
    "content": "{\n    \"__type__\": \"cc.SpriteAtlas\"\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/AutoAtlas.pac.meta",
    "content": "{\n  \"ver\": \"1.2.0\",\n  \"uuid\": \"56f2f17e-30c7-4033-8049-37256d611231\",\n  \"maxWidth\": 1024,\n  \"maxHeight\": 1024,\n  \"padding\": 2,\n  \"allowRotation\": true,\n  \"forceSquared\": false,\n  \"powerOfTwo\": true,\n  \"algorithm\": \"MaxRects\",\n  \"format\": \"png\",\n  \"quality\": 80,\n  \"contourBleed\": false,\n  \"paddingBleed\": false,\n  \"filterUnused\": false,\n  \"packable\": false,\n  \"premultiplyAlpha\": false,\n  \"filterMode\": \"bilinear\",\n  \"platformSettings\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/bar_time.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2e8cf062-214a-449a-a92e-0dc97123a8ec\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 110,\n  \"height\": 110,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bar_time\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a7ea18b5-d163-4280-8be8-4fe072a2b3cf\",\n      \"rawTextureUuid\": \"2e8cf062-214a-449a-a92e-0dc97123a8ec\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 110,\n      \"height\": 110,\n      \"rawWidth\": 110,\n      \"rawHeight\": 110,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/bg_cardType.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"574bc111-743e-4c02-a1e7-30f502dd6416\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 169,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_cardType\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1f5d4a52-310e-4723-a996-2d7516805c11\",\n      \"rawTextureUuid\": \"574bc111-743e-4c02-a1e7-30f502dd6416\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 169,\n      \"height\": 40,\n      \"rawWidth\": 169,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/bg_choose.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"518423f7-8a65-45f6-bcd3-acf84f0f8c30\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 71,\n  \"height\": 62,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_choose\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3d7de305-e1e8-41d4-8e5d-891dc70f4152\",\n      \"rawTextureUuid\": \"518423f7-8a65-45f6-bcd3-acf84f0f8c30\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 71,\n      \"height\": 62,\n      \"rawWidth\": 71,\n      \"rawHeight\": 62,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/bg_gold.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9e505627-4922-4f7f-ab2d-c1769450dfab\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 111,\n  \"height\": 25,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_gold\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"357f5a59-421f-4c51-9be1-725ace429915\",\n      \"rawTextureUuid\": \"9e505627-4922-4f7f-ab2d-c1769450dfab\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 111,\n      \"height\": 25,\n      \"rawWidth\": 111,\n      \"rawHeight\": 25,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/bg_player.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"8a5f6e3f-d4b2-461b-be5d-93a0afd692a4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 90,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_player\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"92effbac-83b7-4fad-ae26-647d350ed99e\",\n      \"rawTextureUuid\": \"8a5f6e3f-d4b2-461b-be5d-93a0afd692a4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 90,\n      \"height\": 90,\n      \"rawWidth\": 90,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/bg_time.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4c20af6e-ad82-48e6-bf2c-96e87805676a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 110,\n  \"height\": 110,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_time\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cc2c5d92-09b8-4000-8929-0ac509b22dc4\",\n      \"rawTextureUuid\": \"4c20af6e-ad82-48e6-bf2c-96e87805676a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 110,\n      \"height\": 110,\n      \"rawWidth\": 110,\n      \"rawHeight\": 110,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/bg_userInfo.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f9c2fde0-a6a6-48c0-8215-7e7bb105d0af\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 71,\n  \"height\": 62,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_userInfo\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"29552e58-1e02-42cb-9c98-2fc834cf0669\",\n      \"rawTextureUuid\": \"f9c2fde0-a6a6-48c0-8215-7e7bb105d0af\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 1,\n      \"trimY\": 1,\n      \"width\": 69,\n      \"height\": 60,\n      \"rawWidth\": 71,\n      \"rawHeight\": 62,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/btn1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3ce5b795-0f6c-4834-b1c5-94b56ed6767b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 155,\n  \"height\": 70,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9e523299-1e25-4424-a279-93467d91d335\",\n      \"rawTextureUuid\": \"3ce5b795-0f6c-4834-b1c5-94b56ed6767b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 155,\n      \"height\": 70,\n      \"rawWidth\": 155,\n      \"rawHeight\": 70,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/btn2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b793caab-4408-4c24-b99d-af4e812c5386\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 206,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3e9d9d19-3d36-417c-9ebe-3ddc18c45860\",\n      \"rawTextureUuid\": \"b793caab-4408-4c24-b99d-af4e812c5386\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 206,\n      \"height\": 75,\n      \"rawWidth\": 206,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/btn3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"706e59ec-8621-408a-bb54-44f518e70e24\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 206,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"75372a10-dae8-484e-9a1a-b52b1d027639\",\n      \"rawTextureUuid\": \"706e59ec-8621-408a-bb54-44f518e70e24\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 206,\n      \"height\": 75,\n      \"rawWidth\": 206,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/btn4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"77be9fde-e572-47c6-b3f1-21654470bb56\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 124,\n  \"height\": 72,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"61ee34a5-ebe3-4923-be4d-2e536e54653a\",\n      \"rawTextureUuid\": \"77be9fde-e572-47c6-b3f1-21654470bb56\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 124,\n      \"height\": 72,\n      \"rawWidth\": 124,\n      \"rawHeight\": 72,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/btn5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bddfadb3-769a-4beb-af2c-b2791aaeb9c1\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 120,\n  \"height\": 69,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"25172957-540e-47a8-bae7-d112557c4e27\",\n      \"rawTextureUuid\": \"bddfadb3-769a-4beb-af2c-b2791aaeb9c1\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 120,\n      \"height\": 69,\n      \"rawWidth\": 120,\n      \"rawHeight\": 69,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/btn6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3edd3452-7c72-42b7-9c47-a770a2f924f8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 120,\n  \"height\": 69,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"10a72097-83f8-4d67-9e15-93318828dda6\",\n      \"rawTextureUuid\": \"3edd3452-7c72-42b7-9c47-a770a2f924f8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 120,\n      \"height\": 69,\n      \"rawWidth\": 120,\n      \"rawHeight\": 69,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/btn_help.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5ae669ac-1305-4964-8fea-bb63b9685e44\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 80,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn_help\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0173e103-db7b-44ef-b5c5-14f6491150a8\",\n      \"rawTextureUuid\": \"5ae669ac-1305-4964-8fea-bb63b9685e44\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 9,\n      \"trimY\": 11,\n      \"width\": 62,\n      \"height\": 58,\n      \"rawWidth\": 80,\n      \"rawHeight\": 80,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game/btn_ready.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"08fa0e81-a09b-4f40-8da2-1b87b728df33\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 155,\n  \"height\": 70,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn_ready\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"36c75be1-74b8-4c27-b6ab-aa07bba356c3\",\n      \"rawTextureUuid\": \"08fa0e81-a09b-4f40-8da2-1b87b728df33\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 155,\n      \"height\": 70,\n      \"rawWidth\": 155,\n      \"rawHeight\": 70,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/game.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"9c0732f5-6481-4631-8ca3-5f10fa82b3b7\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/hall/AutoAtlas.pac",
    "content": "{\n    \"__type__\": \"cc.SpriteAtlas\"\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/hall/AutoAtlas.pac.meta",
    "content": "{\n  \"ver\": \"1.2.0\",\n  \"uuid\": \"bc05f0a9-5c10-4d17-9e83-0187826ed832\",\n  \"maxWidth\": 1024,\n  \"maxHeight\": 1024,\n  \"padding\": 2,\n  \"allowRotation\": true,\n  \"forceSquared\": false,\n  \"powerOfTwo\": true,\n  \"algorithm\": \"MaxRects\",\n  \"format\": \"png\",\n  \"quality\": 80,\n  \"contourBleed\": false,\n  \"paddingBleed\": false,\n  \"filterUnused\": false,\n  \"packable\": false,\n  \"premultiplyAlpha\": false,\n  \"filterMode\": \"bilinear\",\n  \"platformSettings\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/hall/bg.jpg.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"700116a1-ecf8-4384-a6ec-105ac77cae26\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 720,\n  \"height\": 960,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a0471109-af41-4687-b692-52806ef166c7\",\n      \"rawTextureUuid\": \"700116a1-ecf8-4384-a6ec-105ac77cae26\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 720,\n      \"height\": 960,\n      \"rawWidth\": 720,\n      \"rawHeight\": 960,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/hall/bg_payerInfo.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"dc108c71-7fed-41c1-a924-35d35d34cfd5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 158,\n  \"height\": 64,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_payerInfo\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5477c0ae-965b-45dc-987e-06a9bb13edf1\",\n      \"rawTextureUuid\": \"dc108c71-7fed-41c1-a924-35d35d34cfd5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 158,\n      \"height\": 64,\n      \"rawWidth\": 158,\n      \"rawHeight\": 64,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/hall/bg_topUI.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"23b74023-ca65-41be-9909-a15bf1de949a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 343,\n  \"height\": 86,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_topUI\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"714f8522-8124-42d5-a866-e42931aedc8f\",\n      \"rawTextureUuid\": \"23b74023-ca65-41be-9909-a15bf1de949a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 343,\n      \"height\": 86,\n      \"rawWidth\": 343,\n      \"rawHeight\": 86,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 130,\n      \"borderRight\": 130,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/hall/bg_virtualCoin .png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3a0882a2-597e-4ac6-9d61-d576e25c2111\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 84,\n  \"height\": 48,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_virtualCoin \": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a6930f2b-007c-4e60-8008-5b8148640bb3\",\n      \"rawTextureUuid\": \"3a0882a2-597e-4ac6-9d61-d576e25c2111\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 84,\n      \"height\": 48,\n      \"rawWidth\": 84,\n      \"rawHeight\": 48,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 25,\n      \"borderRight\": 25,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/hall/btn_add.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bbe28316-4eda-497b-920e-c769c3f0d186\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 80,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn_add\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"88d8f367-25b1-485e-a5a7-ab815d8fa59f\",\n      \"rawTextureUuid\": \"bbe28316-4eda-497b-920e-c769c3f0d186\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 18,\n      \"trimY\": 18,\n      \"width\": 44,\n      \"height\": 44,\n      \"rawWidth\": 80,\n      \"rawHeight\": 80,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/hall.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"4069d536-5578-4e41-9c12-414bbfff11bb\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/loading.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"55463f30-baa0-4bad-b6e7-0184414c754f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 48,\n  \"height\": 47,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"loading\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b15e37e5-5c65-4272-b5d9-32f01f45ab22\",\n      \"rawTextureUuid\": \"55463f30-baa0-4bad-b6e7-0184414c754f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 48,\n      \"height\": 47,\n      \"rawWidth\": 48,\n      \"rawHeight\": 47,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/login/AutoAtlas.pac",
    "content": "{\n    \"__type__\": \"cc.SpriteAtlas\"\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/login/AutoAtlas.pac.meta",
    "content": "{\n  \"ver\": \"1.2.0\",\n  \"uuid\": \"3f8afa8d-0a7a-4fc3-87d2-8f0343d18a7d\",\n  \"maxWidth\": 1024,\n  \"maxHeight\": 1024,\n  \"padding\": 2,\n  \"allowRotation\": true,\n  \"forceSquared\": false,\n  \"powerOfTwo\": true,\n  \"algorithm\": \"MaxRects\",\n  \"format\": \"png\",\n  \"quality\": 80,\n  \"contourBleed\": false,\n  \"paddingBleed\": false,\n  \"filterUnused\": false,\n  \"packable\": false,\n  \"premultiplyAlpha\": false,\n  \"filterMode\": \"bilinear\",\n  \"platformSettings\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/login/bg_hall.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"59bcd65d-1c13-4046-8e66-2de8ff57624b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 306,\n  \"height\": 306,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_hall\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b96b8f6e-2559-4db6-9759-445f4b8314b3\",\n      \"rawTextureUuid\": \"59bcd65d-1c13-4046-8e66-2de8ff57624b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 306,\n      \"height\": 306,\n      \"rawWidth\": 306,\n      \"rawHeight\": 306,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/login/bg_inputBox.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e3e626d5-901e-4c9a-b6d7-794fb42b344b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 100,\n  \"height\": 87,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_inputBox\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cff7d96e-e4f9-4930-bcf2-797e971ff98e\",\n      \"rawTextureUuid\": \"e3e626d5-901e-4c9a-b6d7-794fb42b344b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 100,\n      \"height\": 87,\n      \"rawWidth\": 100,\n      \"rawHeight\": 87,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 20,\n      \"borderRight\": 20,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/login/bg_white.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a464a848-67e5-481f-9843-aba4f37ac28d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 96,\n  \"height\": 96,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_white\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\",\n      \"rawTextureUuid\": \"a464a848-67e5-481f-9843-aba4f37ac28d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 96,\n      \"height\": 96,\n      \"rawWidth\": 96,\n      \"rawHeight\": 96,\n      \"borderTop\": 30,\n      \"borderBottom\": 30,\n      \"borderLeft\": 30,\n      \"borderRight\": 30,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/login/btn_close.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f7edcbc1-62d8-4b40-a11a-608971d62296\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 80,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn_close\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"456e7c94-de74-47a4-8c43-08b1049c37ae\",\n      \"rawTextureUuid\": \"f7edcbc1-62d8-4b40-a11a-608971d62296\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -0.5,\n      \"offsetY\": 0.5,\n      \"trimX\": 14,\n      \"trimY\": 14,\n      \"width\": 51,\n      \"height\": 51,\n      \"rawWidth\": 80,\n      \"rawHeight\": 80,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/login/btn_white.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1251e101-2b42-4150-bc0f-18b54c9f46a2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 100,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn_white\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e47fd4ef-6891-48eb-948d-77e82e794052\",\n      \"rawTextureUuid\": \"1251e101-2b42-4150-bc0f-18b54c9f46a2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 100,\n      \"height\": 90,\n      \"rawWidth\": 100,\n      \"rawHeight\": 90,\n      \"borderTop\": 20,\n      \"borderBottom\": 20,\n      \"borderLeft\": 20,\n      \"borderRight\": 20,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/login/icon_account.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"932c81f0-a87b-42b6-8d8f-b196a4b8d691\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 32,\n  \"height\": 36,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_account\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5fa82f9b-b4c4-45f1-bdaa-4720894fc694\",\n      \"rawTextureUuid\": \"932c81f0-a87b-42b6-8d8f-b196a4b8d691\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 32,\n      \"height\": 36,\n      \"rawWidth\": 32,\n      \"rawHeight\": 36,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/login/icon_lock.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6f133800-37b5-445b-8344-bd733d1c10f6\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 37,\n  \"height\": 39,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_lock\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6304bd8e-e7e6-4fe0-a027-d92a7c28b4e2\",\n      \"rawTextureUuid\": \"6f133800-37b5-445b-8344-bd733d1c10f6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 37,\n      \"height\": 39,\n      \"rawWidth\": 37,\n      \"rawHeight\": 39,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/login/label_hall.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a926ea41-c9d6-42b1-9f0d-88a84c1c2e3e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 183,\n  \"height\": 48,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"label_hall\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"319097fd-6a37-4fa5-b8fa-d7391d0924e4\",\n      \"rawTextureUuid\": \"a926ea41-c9d6-42b1-9f0d-88a84c1c2e3e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 183,\n      \"height\": 48,\n      \"rawWidth\": 183,\n      \"rawHeight\": 48,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/login.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"0aab5ae0-9ec2-49ee-b390-c78ac2a0d730\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/logo/logo.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6c79d5e9-e42b-41d4-8e84-512033291e10\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 477,\n  \"height\": 190,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"logo\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"598a0d41-71ed-4778-9e06-7b8b735bc098\",\n      \"rawTextureUuid\": \"6c79d5e9-e42b-41d4-8e84-512033291e10\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 477,\n      \"height\": 190,\n      \"rawWidth\": 477,\n      \"rawHeight\": 190,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/logo.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"b401baac-db58-4439-921a-d0c9f10bfde1\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/network/AutoAtlas.pac",
    "content": "{\n    \"__type__\": \"cc.SpriteAtlas\"\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/network/AutoAtlas.pac.meta",
    "content": "{\n  \"ver\": \"1.2.0\",\n  \"uuid\": \"270e83e4-898f-4695-aa42-89e2246c340d\",\n  \"maxWidth\": 1024,\n  \"maxHeight\": 1024,\n  \"padding\": 2,\n  \"allowRotation\": true,\n  \"forceSquared\": false,\n  \"powerOfTwo\": true,\n  \"algorithm\": \"MaxRects\",\n  \"format\": \"png\",\n  \"quality\": 80,\n  \"contourBleed\": false,\n  \"paddingBleed\": false,\n  \"filterUnused\": false,\n  \"packable\": false,\n  \"premultiplyAlpha\": false,\n  \"filterMode\": \"bilinear\",\n  \"platformSettings\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/network/QQL_bg.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2f7e307a-f5d4-4ee2-9b74-a6d37860239b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 498,\n  \"height\": 218,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"QQL_bg\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3532831b-c467-4cb1-a641-02e3aa613fb5\",\n      \"rawTextureUuid\": \"2f7e307a-f5d4-4ee2-9b74-a6d37860239b\",\n      \"trimType\": \"custom\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 498,\n      \"height\": 218,\n      \"rawWidth\": 498,\n      \"rawHeight\": 218,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/network/QQL_yan1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ff20d33d-64a2-491a-878d-615e5288b555\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 91,\n  \"height\": 79,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"QQL_yan1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"adb6b296-85af-402d-937f-82ec5cb49ba4\",\n      \"rawTextureUuid\": \"ff20d33d-64a2-491a-878d-615e5288b555\",\n      \"trimType\": \"custom\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 91,\n      \"height\": 79,\n      \"rawWidth\": 91,\n      \"rawHeight\": 79,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/network/QQL_yan2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d354cf50-75ee-449d-ac7d-e84da7260d61\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 91,\n  \"height\": 79,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"QQL_yan2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"662aee62-519e-4c0e-aace-f4f86aadcabf\",\n      \"rawTextureUuid\": \"d354cf50-75ee-449d-ac7d-e84da7260d61\",\n      \"trimType\": \"custom\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 91,\n      \"height\": 79,\n      \"rawWidth\": 91,\n      \"rawHeight\": 79,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/network/bg_network.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9bc25c43-c0b7-4d43-b3e0-b3937b6e3147\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 184,\n  \"height\": 184,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_network\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e5762cd4-6cee-482b-850f-abdd1cfbd1d4\",\n      \"rawTextureUuid\": \"9bc25c43-c0b7-4d43-b3e0-b3937b6e3147\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 184,\n      \"height\": 184,\n      \"rawWidth\": 184,\n      \"rawHeight\": 184,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/network/btn_close_small.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"20137a01-5cce-42b2-84bd-09883e174f43\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 80,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn_close_small\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"953547b3-b433-4047-866e-66f008fc87f9\",\n      \"rawTextureUuid\": \"20137a01-5cce-42b2-84bd-09883e174f43\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -0.5,\n      \"offsetY\": 0.5,\n      \"trimX\": 27,\n      \"trimY\": 27,\n      \"width\": 25,\n      \"height\": 25,\n      \"rawWidth\": 80,\n      \"rawHeight\": 80,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/network/btn_yellow_small.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4941a2c0-7dec-42fa-809f-ab817a158da9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 124,\n  \"height\": 54,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn_yellow_small\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f6d0cc5d-15d3-45fd-8813-b71a1bd9e71b\",\n      \"rawTextureUuid\": \"4941a2c0-7dec-42fa-809f-ab817a158da9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 124,\n      \"height\": 54,\n      \"rawWidth\": 124,\n      \"rawHeight\": 54,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/network/img_eye.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2076014d-57ce-4163-a11b-260ba5b6995e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 120,\n  \"height\": 120,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"img_eye\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"475c91a3-0ef8-45dc-88b1-a4aeb3aa1c27\",\n      \"rawTextureUuid\": \"2076014d-57ce-4163-a11b-260ba5b6995e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 120,\n      \"height\": 120,\n      \"rawWidth\": 120,\n      \"rawHeight\": 120,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/network/img_tear.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b4a56661-8798-4465-b1c4-3c2363b29984\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 30,\n  \"height\": 45,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"img_tear\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"32b04e45-abb9-40e6-b9aa-9861b833dd35\",\n      \"rawTextureUuid\": \"b4a56661-8798-4465-b1c4-3c2363b29984\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 30,\n      \"height\": 45,\n      \"rawWidth\": 30,\n      \"rawHeight\": 45,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/network/lab_retry.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"433353fe-d19e-4a9a-b613-8e4261eca884\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 71,\n  \"height\": 30,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"lab_retry\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ad8c9318-6b39-4afe-b88f-ee6ca3829d49\",\n      \"rawTextureUuid\": \"433353fe-d19e-4a9a-b613-8e4261eca884\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 71,\n      \"height\": 30,\n      \"rawWidth\": 71,\n      \"rawHeight\": 30,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/network.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"fb55efd3-0b5f-4140-b161-4402d8154ace\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/reviseUserInfo/AutoAtlas.pac",
    "content": "{\n    \"__type__\": \"cc.SpriteAtlas\"\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/reviseUserInfo/AutoAtlas.pac.meta",
    "content": "{\n  \"ver\": \"1.2.0\",\n  \"uuid\": \"1cb62015-3e5b-456f-86d5-c3320d3d1786\",\n  \"maxWidth\": 1024,\n  \"maxHeight\": 1024,\n  \"padding\": 2,\n  \"allowRotation\": true,\n  \"forceSquared\": false,\n  \"powerOfTwo\": true,\n  \"algorithm\": \"MaxRects\",\n  \"format\": \"png\",\n  \"quality\": 80,\n  \"contourBleed\": false,\n  \"paddingBleed\": false,\n  \"filterUnused\": false,\n  \"packable\": false,\n  \"premultiplyAlpha\": false,\n  \"filterMode\": \"bilinear\",\n  \"platformSettings\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/reviseUserInfo/bg.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"588b1533-9af5-4f0d-b80a-67c35b33c50d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 690,\n  \"height\": 53,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1ccce9c7-e2e0-4227-8f86-f8fb0a40b5bc\",\n      \"rawTextureUuid\": \"588b1533-9af5-4f0d-b80a-67c35b33c50d\",\n      \"trimType\": \"custom\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 690,\n      \"height\": 53,\n      \"rawWidth\": 690,\n      \"rawHeight\": 53,\n      \"borderTop\": 15,\n      \"borderBottom\": 15,\n      \"borderLeft\": 14,\n      \"borderRight\": 17,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/reviseUserInfo/bg_editBox.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"caecc530-18e4-4cde-9197-233a2bd0a85d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 98,\n  \"height\": 54,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_editBox\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"abfdbf72-91c3-446d-8d05-6ab2a9e6f9d9\",\n      \"rawTextureUuid\": \"caecc530-18e4-4cde-9197-233a2bd0a85d\",\n      \"trimType\": \"custom\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 98,\n      \"height\": 54,\n      \"rawWidth\": 98,\n      \"rawHeight\": 54,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 30,\n      \"borderRight\": 30,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/reviseUserInfo/bg_title.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fc303c6f-6749-4e80-8ac8-365e0bf314dd\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 368,\n  \"height\": 76,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bg_title\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"05f2b6ee-7d42-49c2-ac53-2443ae121bc4\",\n      \"rawTextureUuid\": \"fc303c6f-6749-4e80-8ac8-365e0bf314dd\",\n      \"trimType\": \"custom\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 368,\n      \"height\": 76,\n      \"rawWidth\": 368,\n      \"rawHeight\": 76,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/reviseUserInfo/btn_create.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"649fcc47-41ba-440e-bd2c-35a8cacc2ea6\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 220,\n  \"height\": 70,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn_create\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"bc0478cd-100c-4966-b295-841e8452b432\",\n      \"rawTextureUuid\": \"649fcc47-41ba-440e-bd2c-35a8cacc2ea6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 220,\n      \"height\": 70,\n      \"rawWidth\": 220,\n      \"rawHeight\": 70,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/reviseUserInfo/btn_revise.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0514a44b-1972-4e16-8e52-8e0aacedfc0b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 220,\n  \"height\": 70,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"btn_revise\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e4d8f436-e4c3-44a4-affb-3bdf7ea1108e\",\n      \"rawTextureUuid\": \"0514a44b-1972-4e16-8e52-8e0aacedfc0b\",\n      \"trimType\": \"custom\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 220,\n      \"height\": 70,\n      \"rawWidth\": 220,\n      \"rawHeight\": 70,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/reviseUserInfo/eff_frame.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"400812b9-3814-4ecb-b115-83268b81ab60\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 128,\n  \"height\": 128,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eff_frame\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a182a771-e785-4820-99c0-e8cbd05d3143\",\n      \"rawTextureUuid\": \"400812b9-3814-4ecb-b115-83268b81ab60\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 128,\n      \"height\": 128,\n      \"rawWidth\": 128,\n      \"rawHeight\": 128,\n      \"borderTop\": 30,\n      \"borderBottom\": 34,\n      \"borderLeft\": 39,\n      \"borderRight\": 26,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/reviseUserInfo/icon_dice.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6f3b1459-3614-4b2c-8a39-dc6ebdd9e559\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 79,\n  \"height\": 84,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_dice\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a129a85d-770e-4597-bfdd-d8be254908fd\",\n      \"rawTextureUuid\": \"6f3b1459-3614-4b2c-8a39-dc6ebdd9e559\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 79,\n      \"height\": 84,\n      \"rawWidth\": 79,\n      \"rawHeight\": 84,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/reviseUserInfo/title_reviseUserInfo.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"65a79636-b667-42d5-affb-e6607c969906\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 262,\n  \"height\": 55,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"title_reviseUserInfo\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"60601128-53f7-49b9-af9c-216089fd1346\",\n      \"rawTextureUuid\": \"65a79636-b667-42d5-affb-e6607c969906\",\n      \"trimType\": \"custom\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 262,\n      \"height\": 55,\n      \"rawWidth\": 262,\n      \"rawHeight\": 55,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/reviseUserInfo.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"93263769-aa30-4b29-bd10-270ab55b35f1\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/test/kt.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9434baa4-c632-4abc-b061-d69c927e9063\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 1000,\n  \"height\": 1292,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"kt\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5b4785b7-ab04-4329-8ce6-b19584d684cd\",\n      \"rawTextureUuid\": \"9434baa4-c632-4abc-b061-d69c927e9063\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 1000,\n      \"height\": 1292,\n      \"rawWidth\": 1000,\n      \"rawHeight\": 1292,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/test.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"99823971-0025-418d-bc1d-1a9f6e748ace\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Bar_B/enemy_slot.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1f0bec48-7008-4320-b13b-0c13d2d2dd01\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 46,\n  \"height\": 14,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"enemy_slot\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"68ac61d2-e43d-4e0a-b015-fdb30108cd92\",\n      \"rawTextureUuid\": \"1f0bec48-7008-4320-b13b-0c13d2d2dd01\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 46,\n      \"height\": 14,\n      \"rawWidth\": 46,\n      \"rawHeight\": 14,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Bar_B/life_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"df4279fb-12ef-4f9e-b13e-e89aec9ee7dd\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 9,\n  \"height\": 9,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"life_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c1448cf5-ddd2-4371-b72f-b4deb7f2917b\",\n      \"rawTextureUuid\": \"df4279fb-12ef-4f9e-b13e-e89aec9ee7dd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 9,\n      \"height\": 9,\n      \"rawWidth\": 9,\n      \"rawHeight\": 9,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Bar_B/life_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bc531006-fb68-4846-8a59-99b39fccf976\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 9,\n  \"height\": 9,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"life_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c8c20168-9f7b-487d-9dbd-76c0c8a7392f\",\n      \"rawTextureUuid\": \"bc531006-fb68-4846-8a59-99b39fccf976\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 9,\n      \"height\": 9,\n      \"rawWidth\": 9,\n      \"rawHeight\": 9,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Bar_B/life_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0972b9d8-f1b4-4ffd-8804-021be4960f00\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 9,\n  \"height\": 9,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"life_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6429b849-ff4c-4540-a911-1a6535f886ef\",\n      \"rawTextureUuid\": \"0972b9d8-f1b4-4ffd-8804-021be4960f00\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 9,\n      \"height\": 9,\n      \"rawWidth\": 9,\n      \"rawHeight\": 9,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Bar_B/life_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e2f37cbf-81e8-450a-b9fb-ade2d7069768\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 9,\n  \"height\": 9,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"life_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"35974d1b-d971-4a45-8aee-2711c3233134\",\n      \"rawTextureUuid\": \"e2f37cbf-81e8-450a-b9fb-ade2d7069768\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 9,\n      \"height\": 9,\n      \"rawWidth\": 9,\n      \"rawHeight\": 9,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Bar_B/life_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0b171aab-209a-4c94-b81d-106339013a75\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 9,\n  \"height\": 9,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"life_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f613e9f6-de45-44d9-94a9-d347133bb380\",\n      \"rawTextureUuid\": \"0b171aab-209a-4c94-b81d-106339013a75\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 9,\n      \"height\": 9,\n      \"rawWidth\": 9,\n      \"rawHeight\": 9,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Bar_B/life_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"278b1a23-59f8-4ed3-b57d-8cdf94aff739\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 9,\n  \"height\": 9,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"life_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d5babfff-a676-4988-8330-7bf62f11f742\",\n      \"rawTextureUuid\": \"278b1a23-59f8-4ed3-b57d-8cdf94aff739\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 9,\n      \"height\": 9,\n      \"rawWidth\": 9,\n      \"rawHeight\": 9,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Bar_B/role_slot.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a2b5b508-10c5-4d3b-b656-4bba237afffa\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 57,\n  \"height\": 13,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"role_slot\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6baea4e0-2995-4f65-8b3e-f595cd972d1d\",\n      \"rawTextureUuid\": \"a2b5b508-10c5-4d3b-b656-4bba237afffa\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 57,\n      \"height\": 13,\n      \"rawWidth\": 57,\n      \"rawHeight\": 13,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Bar_B.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"9b20c488-7a36-437e-8ef6-f2e1b63fa44d\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfd_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6d8a5433-1a09-47c5-840f-5428aa5e8c3d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 25,\n  \"height\": 51,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfd_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2ce40001-a837-4301-a9c1-ebaf50cb07a8\",\n      \"rawTextureUuid\": \"6d8a5433-1a09-47c5-840f-5428aa5e8c3d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 25,\n      \"height\": 51,\n      \"rawWidth\": 25,\n      \"rawHeight\": 51,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfd_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"42bb381d-38e6-46c5-bbd4-e219f08cc885\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 46,\n  \"height\": 44,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfd_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f4559978-6902-4f1e-bb63-6e4657a1f6b6\",\n      \"rawTextureUuid\": \"42bb381d-38e6-46c5-bbd4-e219f08cc885\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 46,\n      \"height\": 44,\n      \"rawWidth\": 46,\n      \"rawHeight\": 44,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfd_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f4a79c13-2934-472d-9e42-bdf0b0ed9dc9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 67,\n  \"height\": 58,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfd_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"be496563-7ccf-4be9-b804-fb6ae5507b40\",\n      \"rawTextureUuid\": \"f4a79c13-2934-472d-9e42-bdf0b0ed9dc9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 67,\n      \"height\": 58,\n      \"rawWidth\": 67,\n      \"rawHeight\": 58,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfd_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5f8fa589-66e2-4ff1-8755-bb1b5cc0fa24\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 79,\n  \"height\": 78,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfd_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"78c4738e-0ef2-43b0-a2fe-884eb102e14d\",\n      \"rawTextureUuid\": \"5f8fa589-66e2-4ff1-8755-bb1b5cc0fa24\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 79,\n      \"height\": 78,\n      \"rawWidth\": 79,\n      \"rawHeight\": 78,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfd_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"70458e12-b463-4e03-a90e-e639acd850d4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 80,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfd_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"37f85192-9c98-4e6f-8f79-ebfee595a33f\",\n      \"rawTextureUuid\": \"70458e12-b463-4e03-a90e-e639acd850d4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 80,\n      \"height\": 80,\n      \"rawWidth\": 80,\n      \"rawHeight\": 80,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfd_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"23cf2bb4-0c28-4147-b065-2484fbe669bb\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 55,\n  \"height\": 62,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfd_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b537efc6-d092-46fa-95d8-cea27918b829\",\n      \"rawTextureUuid\": \"23cf2bb4-0c28-4147-b065-2484fbe669bb\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 55,\n      \"height\": 62,\n      \"rawWidth\": 55,\n      \"rawHeight\": 62,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfd_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3b564f95-7eed-4b13-aa43-f5db43dc1e86\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 58,\n  \"height\": 78,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfd_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"80fb29e5-d9c1-4dd6-a73e-96870a445811\",\n      \"rawTextureUuid\": \"3b564f95-7eed-4b13-aa43-f5db43dc1e86\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 58,\n      \"height\": 78,\n      \"rawWidth\": 58,\n      \"rawHeight\": 78,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfd_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"425966dc-39a7-4f69-81a7-95ff827a9b7c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 58,\n  \"height\": 81,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfd_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8244b3a8-68b4-4bd0-8a57-4ee42395fdfc\",\n      \"rawTextureUuid\": \"425966dc-39a7-4f69-81a7-95ff827a9b7c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 58,\n      \"height\": 81,\n      \"rawWidth\": 58,\n      \"rawHeight\": 81,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfd_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a564ba69-3112-4741-9c63-e663ab018545\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 58,\n  \"height\": 76,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfd_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"00fd80f1-6be1-440a-ad16-ce51c7a16cc5\",\n      \"rawTextureUuid\": \"a564ba69-3112-4741-9c63-e663ab018545\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 58,\n      \"height\": 76,\n      \"rawWidth\": 58,\n      \"rawHeight\": 76,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfd_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bb8d42df-bc45-4741-9cec-fafe7a800ab9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 62,\n  \"height\": 59,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfd_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6d3c3090-b3a7-40c9-9669-e3b2671b78fb\",\n      \"rawTextureUuid\": \"bb8d42df-bc45-4741-9cec-fafe7a800ab9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 62,\n      \"height\": 59,\n      \"rawWidth\": 62,\n      \"rawHeight\": 59,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfd_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"8a369769-bc7f-466c-a913-58354443eb8a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 60,\n  \"height\": 54,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfd_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"aacaa546-8149-47d5-8f0f-1cecd5b7723d\",\n      \"rawTextureUuid\": \"8a369769-bc7f-466c-a913-58354443eb8a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 60,\n      \"height\": 54,\n      \"rawWidth\": 60,\n      \"rawHeight\": 54,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfj_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4bdf4ef4-a28b-49bd-b00b-43050ac97d3a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 24,\n  \"height\": 51,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfj_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c97df6f8-0736-41cb-8d4c-37a6842837b7\",\n      \"rawTextureUuid\": \"4bdf4ef4-a28b-49bd-b00b-43050ac97d3a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 24,\n      \"height\": 51,\n      \"rawWidth\": 24,\n      \"rawHeight\": 51,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfj_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"8c056866-3841-4cb3-99f8-2092825968e2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 44,\n  \"height\": 44,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfj_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"73978064-49e0-4c5b-b7d1-dfb1a2d53f7a\",\n      \"rawTextureUuid\": \"8c056866-3841-4cb3-99f8-2092825968e2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 44,\n      \"height\": 44,\n      \"rawWidth\": 44,\n      \"rawHeight\": 44,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfj_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"081e624b-5fb3-4780-a38d-7b7565bf7904\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 68,\n  \"height\": 58,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfj_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c6da6cef-6b7d-46bf-bf33-1849a5dc9b61\",\n      \"rawTextureUuid\": \"081e624b-5fb3-4780-a38d-7b7565bf7904\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 68,\n      \"height\": 58,\n      \"rawWidth\": 68,\n      \"rawHeight\": 58,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfj_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"faf7eff9-31f5-4a02-90db-3b15cd699f71\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 79,\n  \"height\": 79,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfj_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0ec54af1-2d9a-4f08-bf72-02ddfe091dba\",\n      \"rawTextureUuid\": \"faf7eff9-31f5-4a02-90db-3b15cd699f71\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 79,\n      \"height\": 79,\n      \"rawWidth\": 79,\n      \"rawHeight\": 79,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfj_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b5e644af-f8a7-461b-a78b-5503cc07dbf1\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 79,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfj_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e7609209-0cec-4152-af8c-8397590f2506\",\n      \"rawTextureUuid\": \"b5e644af-f8a7-461b-a78b-5503cc07dbf1\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 80,\n      \"height\": 79,\n      \"rawWidth\": 80,\n      \"rawHeight\": 79,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfj_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d17501ad-b0d2-47d9-ba9d-04c8c95bc275\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 55,\n  \"height\": 61,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfj_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a62680c6-f1ea-414d-a3b0-02a21184e506\",\n      \"rawTextureUuid\": \"d17501ad-b0d2-47d9-ba9d-04c8c95bc275\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 55,\n      \"height\": 61,\n      \"rawWidth\": 55,\n      \"rawHeight\": 61,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfj_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"39784481-4b19-4dee-a296-dcb7471e8b58\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 59,\n  \"height\": 78,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfj_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"92a601b3-d97b-4b8e-a0f8-7bbc5315356f\",\n      \"rawTextureUuid\": \"39784481-4b19-4dee-a296-dcb7471e8b58\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 59,\n      \"height\": 78,\n      \"rawWidth\": 59,\n      \"rawHeight\": 78,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfj_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e252a0c6-21bd-444c-9007-1b4bdd186189\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 59,\n  \"height\": 81,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfj_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9de3f7ab-7ae6-43b8-a3c6-f2c3d589c6f5\",\n      \"rawTextureUuid\": \"e252a0c6-21bd-444c-9007-1b4bdd186189\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 59,\n      \"height\": 81,\n      \"rawWidth\": 59,\n      \"rawHeight\": 81,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfj_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4f09a03e-3c34-42cf-8c50-9dbaee52c5b8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 57,\n  \"height\": 77,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfj_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b878bbc0-d6d7-48d1-8e06-a202b3bea2af\",\n      \"rawTextureUuid\": \"4f09a03e-3c34-42cf-8c50-9dbaee52c5b8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 57,\n      \"height\": 77,\n      \"rawWidth\": 57,\n      \"rawHeight\": 77,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfj_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7b031345-e0ec-432f-baf0-af8b8f97cc80\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 62,\n  \"height\": 58,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfj_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1c89218b-c197-4319-a5b7-92ebc6755a7f\",\n      \"rawTextureUuid\": \"7b031345-e0ec-432f-baf0-af8b8f97cc80\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 62,\n      \"height\": 58,\n      \"rawWidth\": 62,\n      \"rawHeight\": 58,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/LEGO_txfj_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bfa69244-8371-43d0-a924-b42c155e6f29\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 61,\n  \"height\": 53,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"LEGO_txfj_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c884ef3d-1849-45dd-a6ab-e9bc8472cc28\",\n      \"rawTextureUuid\": \"bfa69244-8371-43d0-a924-b42c155e6f29\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 61,\n      \"height\": 53,\n      \"rawWidth\": 61,\n      \"rawHeight\": 53,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_sagittarius_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9760e4e9-5fb3-4bcb-94b0-e842b09d7456\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 29,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_sagittarius_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"961afe96-76fb-460d-b095-25f39c3c4521\",\n      \"rawTextureUuid\": \"9760e4e9-5fb3-4bcb-94b0-e842b09d7456\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 29,\n      \"height\": 90,\n      \"rawWidth\": 29,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_sagittarius_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"929d81d6-37f1-40b8-9ed3-24d7b86cad0b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 87,\n  \"height\": 78,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_sagittarius_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"943e30b8-0247-4f25-a352-764a13229ff4\",\n      \"rawTextureUuid\": \"929d81d6-37f1-40b8-9ed3-24d7b86cad0b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 87,\n      \"height\": 78,\n      \"rawWidth\": 87,\n      \"rawHeight\": 78,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_sagittarius_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5ceb86e4-6aa9-4bd6-803f-93ff643d5243\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 115,\n  \"height\": 100,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_sagittarius_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cb29ec60-2a7b-47f1-8afe-091932e75412\",\n      \"rawTextureUuid\": \"5ceb86e4-6aa9-4bd6-803f-93ff643d5243\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 115,\n      \"height\": 100,\n      \"rawWidth\": 115,\n      \"rawHeight\": 100,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_sagittarius_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a3f619d2-eceb-4b7e-806c-ec4e4dbd7d80\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 117,\n  \"height\": 99,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_sagittarius_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"fe638e58-ffe4-44c4-b568-6d8fd4fc7aeb\",\n      \"rawTextureUuid\": \"a3f619d2-eceb-4b7e-806c-ec4e4dbd7d80\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 117,\n      \"height\": 99,\n      \"rawWidth\": 117,\n      \"rawHeight\": 99,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_sagittarius_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ec162f51-e1be-4d1f-bb95-19a706c06106\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 107,\n  \"height\": 97,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_sagittarius_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e7a807f8-8b22-49d0-a13e-b4ce8dc23b84\",\n      \"rawTextureUuid\": \"ec162f51-e1be-4d1f-bb95-19a706c06106\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 107,\n      \"height\": 97,\n      \"rawWidth\": 107,\n      \"rawHeight\": 97,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_sagittarius_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"72f414af-c699-47c2-baa1-9ea8fdcaefdb\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 63,\n  \"height\": 87,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_sagittarius_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"34d34386-5438-4881-9f15-4699ed825f8f\",\n      \"rawTextureUuid\": \"72f414af-c699-47c2-baa1-9ea8fdcaefdb\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 63,\n      \"height\": 87,\n      \"rawWidth\": 63,\n      \"rawHeight\": 87,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_sagittarius_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2d9c710b-9831-4c2b-bfd3-6a8ea34241af\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 96,\n  \"height\": 109,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_sagittarius_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"22584357-c712-467a-86a3-dc2179237c1b\",\n      \"rawTextureUuid\": \"2d9c710b-9831-4c2b-bfd3-6a8ea34241af\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 96,\n      \"height\": 109,\n      \"rawWidth\": 96,\n      \"rawHeight\": 109,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_sagittarius_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fe195acd-987e-4bf9-a6d5-1e27d2e5bbed\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 125,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_sagittarius_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"bddf9134-32b5-4c41-936f-a62b3f49b541\",\n      \"rawTextureUuid\": \"fe195acd-987e-4bf9-a6d5-1e27d2e5bbed\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 125,\n      \"rawWidth\": 104,\n      \"rawHeight\": 125,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_sagittarius_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9bb6eea3-5e51-4a05-aa29-0f4489b53967\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 103,\n  \"height\": 122,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_sagittarius_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"700b0c22-df1c-4989-bbff-edbf8cff1c46\",\n      \"rawTextureUuid\": \"9bb6eea3-5e51-4a05-aa29-0f4489b53967\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 103,\n      \"height\": 122,\n      \"rawWidth\": 103,\n      \"rawHeight\": 122,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_sagittarius_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d193c3cb-90ea-4354-bfd8-9f2a0e9fc21d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 97,\n  \"height\": 114,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_sagittarius_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1f2fbca8-ece0-4d7f-815a-0ebaefeadefd\",\n      \"rawTextureUuid\": \"d193c3cb-90ea-4354-bfd8-9f2a0e9fc21d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 97,\n      \"height\": 114,\n      \"rawWidth\": 97,\n      \"rawHeight\": 114,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_sagittarius_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bb37b3c4-070b-4552-8997-e27692385528\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 81,\n  \"height\": 103,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_sagittarius_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ea2cdf95-b3d7-4466-87a2-9943115936f5\",\n      \"rawTextureUuid\": \"bb37b3c4-070b-4552-8997-e27692385528\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 81,\n      \"height\": 103,\n      \"rawWidth\": 81,\n      \"rawHeight\": 103,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_tautus_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"07b4f52d-a0cc-4ce7-960a-56ede47c8124\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 33,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_tautus_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"46c4ac90-6a77-4228-beb8-1756bb32fe4a\",\n      \"rawTextureUuid\": \"07b4f52d-a0cc-4ce7-960a-56ede47c8124\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 33,\n      \"height\": 90,\n      \"rawWidth\": 33,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_tautus_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"329b0a96-f185-4585-90e3-9f2c85cdf2a7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 62,\n  \"height\": 71,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_tautus_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5746b411-338d-416d-8fee-59c30f7a09d5\",\n      \"rawTextureUuid\": \"329b0a96-f185-4585-90e3-9f2c85cdf2a7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 62,\n      \"height\": 71,\n      \"rawWidth\": 62,\n      \"rawHeight\": 71,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_tautus_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"71440ccf-ceeb-40e7-867e-e8ddf5e0abd1\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 84,\n  \"height\": 80,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_tautus_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"21a41b1b-5190-40e4-8c92-9d808ed34770\",\n      \"rawTextureUuid\": \"71440ccf-ceeb-40e7-867e-e8ddf5e0abd1\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 84,\n      \"height\": 80,\n      \"rawWidth\": 84,\n      \"rawHeight\": 80,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_tautus_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3d3d0314-b9b7-4f1c-ac19-0f614c670729\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 89,\n  \"height\": 77,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_tautus_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"98ea108b-781a-42c3-80c1-35ae977a48a8\",\n      \"rawTextureUuid\": \"3d3d0314-b9b7-4f1c-ac19-0f614c670729\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 89,\n      \"height\": 77,\n      \"rawWidth\": 89,\n      \"rawHeight\": 77,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_tautus_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"cb29298d-131d-458e-918e-cfe29323bce5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 72,\n  \"height\": 73,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_tautus_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"dcd08ab3-b42b-4574-a2a5-5773b71798f4\",\n      \"rawTextureUuid\": \"cb29298d-131d-458e-918e-cfe29323bce5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 72,\n      \"height\": 73,\n      \"rawWidth\": 72,\n      \"rawHeight\": 73,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_tautus_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1cccae8d-3251-4167-8bb7-908a5177b640\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 65,\n  \"height\": 62,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_tautus_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0795b85a-d918-4794-9bca-59b4680aa39d\",\n      \"rawTextureUuid\": \"1cccae8d-3251-4167-8bb7-908a5177b640\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 65,\n      \"height\": 62,\n      \"rawWidth\": 65,\n      \"rawHeight\": 62,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_tautus_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0e0ef5a1-cc6b-49cf-b37f-d9df379ecf10\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 123,\n  \"height\": 95,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_tautus_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"09b2bb08-6009-49fb-b666-20dec52aa30c\",\n      \"rawTextureUuid\": \"0e0ef5a1-cc6b-49cf-b37f-d9df379ecf10\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 123,\n      \"height\": 95,\n      \"rawWidth\": 123,\n      \"rawHeight\": 95,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_tautus_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"04c72a1e-a2d8-4f96-bc10-6845fe6540d5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 131,\n  \"height\": 113,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_tautus_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cb45e465-0278-4d9f-95d3-14015d7393d2\",\n      \"rawTextureUuid\": \"04c72a1e-a2d8-4f96-bc10-6845fe6540d5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 131,\n      \"height\": 113,\n      \"rawWidth\": 131,\n      \"rawHeight\": 113,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_tautus_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9a9f6737-5c87-492e-8412-d976d2962e0d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 119,\n  \"height\": 109,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_tautus_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8a9d0190-ef1e-4be1-9e74-791170d5f72b\",\n      \"rawTextureUuid\": \"9a9f6737-5c87-492e-8412-d976d2962e0d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 119,\n      \"height\": 109,\n      \"rawWidth\": 119,\n      \"rawHeight\": 109,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_tautus_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c040535c-a7a3-4d8c-81c6-fe68e8856c8d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 100,\n  \"height\": 99,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_tautus_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3dd5e3ac-8d96-4cbb-89cb-beb1fda30cc2\",\n      \"rawTextureUuid\": \"c040535c-a7a3-4d8c-81c6-fe68e8856c8d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 100,\n      \"height\": 99,\n      \"rawWidth\": 100,\n      \"rawHeight\": 99,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/constellation_tautus_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"09812c87-408e-4e47-8ca8-c72b01bcb543\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 100,\n  \"height\": 95,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"constellation_tautus_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1f2d71e4-c675-4ebc-8b04-13ca9fea072d\",\n      \"rawTextureUuid\": \"09812c87-408e-4e47-8ca8-c72b01bcb543\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 100,\n      \"height\": 95,\n      \"rawWidth\": 100,\n      \"rawHeight\": 95,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjbl_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9cb9a8b7-4a0e-47cd-849e-60429867714f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 21,\n  \"height\": 66,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjbl_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cf1958d6-d51c-4d13-aedb-a227731d4def\",\n      \"rawTextureUuid\": \"9cb9a8b7-4a0e-47cd-849e-60429867714f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 21,\n      \"height\": 66,\n      \"rawWidth\": 21,\n      \"rawHeight\": 66,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjbl_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b3ca025b-d89e-4fc2-af51-2a7397d8713b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 56,\n  \"height\": 51,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjbl_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"138660f4-7abb-4c9f-8f47-245620b71fb6\",\n      \"rawTextureUuid\": \"b3ca025b-d89e-4fc2-af51-2a7397d8713b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 56,\n      \"height\": 51,\n      \"rawWidth\": 56,\n      \"rawHeight\": 51,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjbl_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0c08f08d-e687-4378-9924-40137d3f416b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 78,\n  \"height\": 64,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjbl_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"64e15fd3-4fea-41e2-bd33-4ae549632e92\",\n      \"rawTextureUuid\": \"0c08f08d-e687-4378-9924-40137d3f416b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 78,\n      \"height\": 64,\n      \"rawWidth\": 78,\n      \"rawHeight\": 64,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjbl_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"480651ec-99e4-450f-971f-de0fa1fb5ec0\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 78,\n  \"height\": 67,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjbl_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7b4c16a0-a468-4602-8efd-1178aa1b8788\",\n      \"rawTextureUuid\": \"480651ec-99e4-450f-971f-de0fa1fb5ec0\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 78,\n      \"height\": 67,\n      \"rawWidth\": 78,\n      \"rawHeight\": 67,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjbl_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"8c54a46b-a9ce-4659-8176-fc44aa957ba9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 76,\n  \"height\": 64,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjbl_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"49489a54-5a47-41c5-83fc-8cf4ef94ce12\",\n      \"rawTextureUuid\": \"8c54a46b-a9ce-4659-8176-fc44aa957ba9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 76,\n      \"height\": 64,\n      \"rawWidth\": 76,\n      \"rawHeight\": 64,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjbl_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"64c91427-c728-47a4-8538-b080a7a59e39\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 63,\n  \"height\": 63,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjbl_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ce22eac1-6cda-465b-bfc9-40e4a0240e75\",\n      \"rawTextureUuid\": \"64c91427-c728-47a4-8538-b080a7a59e39\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 63,\n      \"height\": 63,\n      \"rawWidth\": 63,\n      \"rawHeight\": 63,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjbl_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"65fdf579-4d53-4055-aed2-5df755abd212\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 78,\n  \"height\": 84,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjbl_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"948df964-2f2e-4385-a03f-f0e938b2fa75\",\n      \"rawTextureUuid\": \"65fdf579-4d53-4055-aed2-5df755abd212\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 78,\n      \"height\": 84,\n      \"rawWidth\": 78,\n      \"rawHeight\": 84,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjbl_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"55de7b24-7c28-48e5-8148-a42dd3e958b4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 78,\n  \"height\": 89,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjbl_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"679fd8ff-e115-4b48-83f5-fb5df8d92285\",\n      \"rawTextureUuid\": \"55de7b24-7c28-48e5-8148-a42dd3e958b4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 78,\n      \"height\": 89,\n      \"rawWidth\": 78,\n      \"rawHeight\": 89,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjbl_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5700ece8-03e2-4051-8dd9-d6327113dac6\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 78,\n  \"height\": 95,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjbl_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"71d9496f-cf86-48ce-8e55-f6d069cfac68\",\n      \"rawTextureUuid\": \"5700ece8-03e2-4051-8dd9-d6327113dac6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 78,\n      \"height\": 95,\n      \"rawWidth\": 78,\n      \"rawHeight\": 95,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjbl_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7953d3ee-ee74-4c10-958e-cee3e814aec1\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 78,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjbl_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6f9fdb7c-82a8-4bc5-b764-3bcbf0cdc5eb\",\n      \"rawTextureUuid\": \"7953d3ee-ee74-4c10-958e-cee3e814aec1\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 78,\n      \"height\": 90,\n      \"rawWidth\": 78,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjbl_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"552c63e6-e925-4051-b161-a274bec1cc26\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 87,\n  \"height\": 84,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjbl_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4efd1fb1-73d8-4479-a6a0-031e849aea62\",\n      \"rawTextureUuid\": \"552c63e6-e925-4051-b161-a274bec1cc26\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 87,\n      \"height\": 84,\n      \"rawWidth\": 87,\n      \"rawHeight\": 84,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjbl_spark2_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"058b9024-a48e-4a2f-895e-ae2208c682e2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 87,\n  \"height\": 84,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjbl_spark2_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"94476ebd-93cd-4ba5-ac8b-d946f4940691\",\n      \"rawTextureUuid\": \"058b9024-a48e-4a2f-895e-ae2208c682e2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 87,\n      \"height\": 84,\n      \"rawWidth\": 87,\n      \"rawHeight\": 84,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjtl_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0c656cdd-da3d-4ae7-b410-e26352c193c2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 36,\n  \"height\": 89,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjtl_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e2d7698a-d125-4ef2-af63-0b793734e317\",\n      \"rawTextureUuid\": \"0c656cdd-da3d-4ae7-b410-e26352c193c2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 36,\n      \"height\": 89,\n      \"rawWidth\": 36,\n      \"rawHeight\": 89,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjtl_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"aacfb80e-bce5-49c1-8397-f938e0730a17\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 53,\n  \"height\": 49,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjtl_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"23b377a2-2065-40bd-a1fe-31822717d112\",\n      \"rawTextureUuid\": \"aacfb80e-bce5-49c1-8397-f938e0730a17\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 53,\n      \"height\": 49,\n      \"rawWidth\": 53,\n      \"rawHeight\": 49,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjtl_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e228eb47-0319-4ba7-a2e6-10d18a03940c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 74,\n  \"height\": 62,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjtl_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e851f857-edf1-40a6-b9b1-813203f8b083\",\n      \"rawTextureUuid\": \"e228eb47-0319-4ba7-a2e6-10d18a03940c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 74,\n      \"height\": 62,\n      \"rawWidth\": 74,\n      \"rawHeight\": 62,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjtl_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"11bba91f-9a95-4354-b4b0-57ca544240e2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 73,\n  \"height\": 65,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjtl_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"95157de3-5f44-444b-8d72-179f1c44b26a\",\n      \"rawTextureUuid\": \"11bba91f-9a95-4354-b4b0-57ca544240e2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 73,\n      \"height\": 65,\n      \"rawWidth\": 73,\n      \"rawHeight\": 65,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjtl_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"091b0e9b-9a0b-4133-b61a-d064310fac61\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 73,\n  \"height\": 62,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjtl_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8a46721a-29a0-4485-9be2-cf44f86abbd7\",\n      \"rawTextureUuid\": \"091b0e9b-9a0b-4133-b61a-d064310fac61\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 73,\n      \"height\": 62,\n      \"rawWidth\": 73,\n      \"rawHeight\": 62,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjtl_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b7a2f7c3-ed8e-4d83-a220-6403807739c1\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 59,\n  \"height\": 70,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjtl_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"aa6bb2fe-6abe-4145-b9e3-038e4523d08b\",\n      \"rawTextureUuid\": \"b7a2f7c3-ed8e-4d83-a220-6403807739c1\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 59,\n      \"height\": 70,\n      \"rawWidth\": 59,\n      \"rawHeight\": 70,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjtl_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"21ae8091-2e27-4276-adc6-bf269c9bd0a9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 87,\n  \"height\": 86,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjtl_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3eca13cf-1b10-4110-b2a1-7fdd69f2c934\",\n      \"rawTextureUuid\": \"21ae8091-2e27-4276-adc6-bf269c9bd0a9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 87,\n      \"height\": 86,\n      \"rawWidth\": 87,\n      \"rawHeight\": 86,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjtl_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"379a456d-2243-46fb-bf0c-71c7d5c38043\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 87,\n  \"height\": 94,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjtl_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e7273623-ea75-44a8-8eba-1daa5ef0a626\",\n      \"rawTextureUuid\": \"379a456d-2243-46fb-bf0c-71c7d5c38043\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 87,\n      \"height\": 94,\n      \"rawWidth\": 87,\n      \"rawHeight\": 94,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjtl_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"219748da-30d6-4dad-9e32-5566c7c3c2d4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 88,\n  \"height\": 96,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjtl_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f7660d44-3c3b-4e7c-8726-0a5a9198aab6\",\n      \"rawTextureUuid\": \"219748da-30d6-4dad-9e32-5566c7c3c2d4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 88,\n      \"height\": 96,\n      \"rawWidth\": 88,\n      \"rawHeight\": 96,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjtl_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a65f9200-a03e-4e01-a0a7-989342e9e087\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 88,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjtl_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"900ff207-7622-4865-a75a-f990c1c4c29f\",\n      \"rawTextureUuid\": \"a65f9200-a03e-4e01-a0a7-989342e9e087\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 88,\n      \"height\": 90,\n      \"rawWidth\": 88,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjtl_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"cb1f063a-2c40-48cf-9bbf-650af28d6df5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 89,\n  \"height\": 81,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjtl_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"fa961518-5127-4ed7-b5de-5b0c78ead41c\",\n      \"rawTextureUuid\": \"cb1f063a-2c40-48cf-9bbf-650af28d6df5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 89,\n      \"height\": 81,\n      \"rawWidth\": 89,\n      \"rawHeight\": 81,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dgm_cjtl_spark2_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bfe141a3-4b21-43b3-aa89-bb0e62402789\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 89,\n  \"height\": 81,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dgm_cjtl_spark2_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"238f5b52-28b2-4fe2-9e3b-44d4baf909b7\",\n      \"rawTextureUuid\": \"bfe141a3-4b21-43b3-aa89-bb0e62402789\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 89,\n      \"height\": 81,\n      \"rawWidth\": 89,\n      \"rawHeight\": 81,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dhit01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4497cd0f-69b5-495c-a902-62af18ebe1b2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 24,\n  \"height\": 6,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dhit01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a7fd92b0-52f3-431a-98c2-1d0693ad08f7\",\n      \"rawTextureUuid\": \"4497cd0f-69b5-495c-a902-62af18ebe1b2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 24,\n      \"height\": 6,\n      \"rawWidth\": 24,\n      \"rawHeight\": 6,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dhit02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"58ac9dff-cc7c-42da-8f34-ef342cfa552b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 62,\n  \"height\": 77,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dhit02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9b4dd1ff-5e46-4d1a-97cc-12de6a2832ef\",\n      \"rawTextureUuid\": \"58ac9dff-cc7c-42da-8f34-ef342cfa552b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 62,\n      \"height\": 77,\n      \"rawWidth\": 62,\n      \"rawHeight\": 77,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dhit03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1e3feffb-981c-4254-9bc3-afa5ce21127d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 63,\n  \"height\": 85,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dhit03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"41adb6a6-d816-4507-94a8-f972eb7fcb1a\",\n      \"rawTextureUuid\": \"1e3feffb-981c-4254-9bc3-afa5ce21127d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 63,\n      \"height\": 85,\n      \"rawWidth\": 63,\n      \"rawHeight\": 85,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dhit04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"053ab47b-03f4-411e-b36e-858261993a44\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 67,\n  \"height\": 89,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dhit04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ffeae09c-c8c5-44af-954a-fd2a4c7b0868\",\n      \"rawTextureUuid\": \"053ab47b-03f4-411e-b36e-858261993a44\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 67,\n      \"height\": 89,\n      \"rawWidth\": 67,\n      \"rawHeight\": 89,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dhit05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"88cc7080-a1c2-4e7c-b591-614d09c22b43\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 64,\n  \"height\": 76,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dhit05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"debae3e9-e695-4aa1-ab17-4fd7039a8cc7\",\n      \"rawTextureUuid\": \"88cc7080-a1c2-4e7c-b591-614d09c22b43\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 64,\n      \"height\": 76,\n      \"rawWidth\": 64,\n      \"rawHeight\": 76,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djt01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c3339f03-bd0c-41a8-a5ab-823c69341a4a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 26,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djt01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"60e6828b-a851-4797-ba96-0cd81ee33b65\",\n      \"rawTextureUuid\": \"c3339f03-bd0c-41a8-a5ab-823c69341a4a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 26,\n      \"height\": 20,\n      \"rawWidth\": 26,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djt02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c8e059ba-867f-4e2c-be66-d7fe6277b9bd\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 42,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djt02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5118609e-2958-46bb-8786-63c377132b7d\",\n      \"rawTextureUuid\": \"c8e059ba-867f-4e2c-be66-d7fe6277b9bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 42,\n      \"height\": 20,\n      \"rawWidth\": 42,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djt03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"dd3328fb-75db-432b-8d54-221ab06226cc\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 59,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djt03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c756cfd3-d7cb-4cb0-a696-07344d2e6eba\",\n      \"rawTextureUuid\": \"dd3328fb-75db-432b-8d54-221ab06226cc\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 59,\n      \"height\": 20,\n      \"rawWidth\": 59,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djt04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"24aef9be-4a9d-494f-a4d4-165fb1f7efe6\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djt04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"18796ee6-fb79-4deb-a9f5-693f1e5328a0\",\n      \"rawTextureUuid\": \"24aef9be-4a9d-494f-a4d4-165fb1f7efe6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 20,\n      \"rawWidth\": 66,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djt05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"492aba5e-0b68-4368-a731-9ac74698df1f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 65,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djt05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9be3c9bd-ceb7-4463-b3ef-821071192ed7\",\n      \"rawTextureUuid\": \"492aba5e-0b68-4368-a731-9ac74698df1f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 65,\n      \"height\": 20,\n      \"rawWidth\": 65,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djt06.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"373c4309-69a0-46fd-94a9-d35be320f8f0\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 51,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djt06\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6c4cbffb-5463-42ea-9c55-5be8a80d0772\",\n      \"rawTextureUuid\": \"373c4309-69a0-46fd-94a9-d35be320f8f0\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 51,\n      \"height\": 20,\n      \"rawWidth\": 51,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxz01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e6074a85-22d8-42b5-8fc0-0636cfa87036\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 48,\n  \"height\": 51,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxz01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3db162ad-818f-4b21-9b14-61e5807d80e0\",\n      \"rawTextureUuid\": \"e6074a85-22d8-42b5-8fc0-0636cfa87036\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 48,\n      \"height\": 51,\n      \"rawWidth\": 48,\n      \"rawHeight\": 51,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxz010.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c4670ee4-f9d1-43a5-b108-8b38b68b5b17\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 39,\n  \"height\": 45,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxz010\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c970b64f-32fe-4b3a-8a41-40aa5235fbaa\",\n      \"rawTextureUuid\": \"c4670ee4-f9d1-43a5-b108-8b38b68b5b17\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 39,\n      \"height\": 45,\n      \"rawWidth\": 39,\n      \"rawHeight\": 45,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxz02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ba4ae9d0-701a-48d7-8490-9c99a291244d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 49,\n  \"height\": 51,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxz02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"532d6341-ee45-40ad-9ab8-55f443a026a1\",\n      \"rawTextureUuid\": \"ba4ae9d0-701a-48d7-8490-9c99a291244d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 49,\n      \"height\": 51,\n      \"rawWidth\": 49,\n      \"rawHeight\": 51,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxz03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5e4f75e4-92d8-4d10-a0ab-aff8cee68257\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 50,\n  \"height\": 53,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxz03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f9651a72-56dc-48c6-9f8f-93aa80b4cb61\",\n      \"rawTextureUuid\": \"5e4f75e4-92d8-4d10-a0ab-aff8cee68257\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 50,\n      \"height\": 53,\n      \"rawWidth\": 50,\n      \"rawHeight\": 53,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxz04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"97ccdb55-94c0-4fd4-b0fc-c56ff0aaf9b5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 45,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxz04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"040c0d94-508b-4949-a515-79cb04eb4cb1\",\n      \"rawTextureUuid\": \"97ccdb55-94c0-4fd4-b0fc-c56ff0aaf9b5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 45,\n      \"rawWidth\": 54,\n      \"rawHeight\": 45,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxz05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"21b6eac8-994d-46cf-b601-185c8c6a7744\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxz05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5b724306-60f1-4937-b61d-234832c7574f\",\n      \"rawTextureUuid\": \"21b6eac8-994d-46cf-b601-185c8c6a7744\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 50,\n      \"rawWidth\": 54,\n      \"rawHeight\": 50,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxz06.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fc5d6f23-e38d-40b3-ab47-0c20b0975e62\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 61,\n  \"height\": 52,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxz06\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5832e7f6-1755-4f26-b524-e3416d96e332\",\n      \"rawTextureUuid\": \"fc5d6f23-e38d-40b3-ab47-0c20b0975e62\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 61,\n      \"height\": 52,\n      \"rawWidth\": 61,\n      \"rawHeight\": 52,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxz07.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"476141b7-5115-467d-bda1-ffb6a2b1e9fe\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 61,\n  \"height\": 52,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxz07\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1bc6b37f-3140-4397-a04f-babaccde050b\",\n      \"rawTextureUuid\": \"476141b7-5115-467d-bda1-ffb6a2b1e9fe\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 61,\n      \"height\": 52,\n      \"rawWidth\": 61,\n      \"rawHeight\": 52,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxz08.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d97e1a76-fbe7-4c18-a004-79b232a6ee67\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 51,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxz08\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"93c85b4f-1352-41ae-bdf4-6850001ff419\",\n      \"rawTextureUuid\": \"d97e1a76-fbe7-4c18-a004-79b232a6ee67\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 51,\n      \"rawWidth\": 54,\n      \"rawHeight\": 51,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxz09.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c6ceb008-733e-4d54-b03f-709553e2d172\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 36,\n  \"height\": 44,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxz09\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e98da9ed-bcbf-43aa-a0b7-4a51e5ea9650\",\n      \"rawTextureUuid\": \"c6ceb008-733e-4d54-b03f-709553e2d172\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 36,\n      \"height\": 44,\n      \"rawWidth\": 36,\n      \"rawHeight\": 44,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxzt01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5f2e1eec-f531-470b-9d38-4541fb693396\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 31,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxzt01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1bf38b85-2b71-40c0-9216-ff4bab3e1a14\",\n      \"rawTextureUuid\": \"5f2e1eec-f531-470b-9d38-4541fb693396\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 31,\n      \"rawWidth\": 31,\n      \"rawHeight\": 31,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxzt02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bb5af370-42ab-4a20-8063-66911f6365ff\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 30,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxzt02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b0fc7d2c-ddc5-4e51-988d-845c72a6131b\",\n      \"rawTextureUuid\": \"bb5af370-42ab-4a20-8063-66911f6365ff\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 30,\n      \"rawWidth\": 31,\n      \"rawHeight\": 30,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxzt03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f76f9f93-f614-46b9-8374-8f8768784eca\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 31,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxzt03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1d2510a1-42f1-4daf-8b43-8d11491009cc\",\n      \"rawTextureUuid\": \"f76f9f93-f614-46b9-8374-8f8768784eca\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 31,\n      \"rawWidth\": 31,\n      \"rawHeight\": 31,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxzt04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"8bfea227-a616-4d27-89e2-56cb6387a69a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 30,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxzt04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d4581b64-a546-4871-8f9d-dbc060d8900a\",\n      \"rawTextureUuid\": \"8bfea227-a616-4d27-89e2-56cb6387a69a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 30,\n      \"rawWidth\": 31,\n      \"rawHeight\": 30,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxzt05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"51cba9c5-3692-4a79-a5de-c48a41e252f2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 31,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxzt05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"23973977-0e1d-41a9-9735-123333e0622e\",\n      \"rawTextureUuid\": \"51cba9c5-3692-4a79-a5de-c48a41e252f2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 31,\n      \"rawWidth\": 31,\n      \"rawHeight\": 31,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxzt06.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fa7dc2bc-b76f-47dd-9956-6162359e4bf9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 30,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxzt06\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"48c9c89b-12f3-486d-96da-2e1beb33dd64\",\n      \"rawTextureUuid\": \"fa7dc2bc-b76f-47dd-9956-6162359e4bf9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 30,\n      \"rawWidth\": 31,\n      \"rawHeight\": 30,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/djxzt07.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2abb6a9b-23c7-40a8-aea8-d7359dda1608\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 31,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"djxzt07\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3f87ddb8-b6b2-4dcd-a826-b4e2b4a411a1\",\n      \"rawTextureUuid\": \"2abb6a9b-23c7-40a8-aea8-d7359dda1608\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 31,\n      \"rawWidth\": 31,\n      \"rawHeight\": 31,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dl01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d63086b0-bb15-4807-9856-e28a10476c7a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 34,\n  \"height\": 32,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dl01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a9fe00b1-2286-4036-9817-fe586d8648a6\",\n      \"rawTextureUuid\": \"d63086b0-bb15-4807-9856-e28a10476c7a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 34,\n      \"height\": 32,\n      \"rawWidth\": 34,\n      \"rawHeight\": 32,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dl02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4befe141-63fb-4324-acf7-a915aba724c4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 34,\n  \"height\": 32,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dl02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a8a8e59f-269c-43fa-bf41-307d114f43c0\",\n      \"rawTextureUuid\": \"4befe141-63fb-4324-acf7-a915aba724c4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 34,\n      \"height\": 32,\n      \"rawWidth\": 34,\n      \"rawHeight\": 32,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dl03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e804746d-45a2-4d65-ad1d-8bb7e121f621\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 34,\n  \"height\": 32,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dl03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5e925c9f-af1a-48f6-b731-9faf6e13f5f8\",\n      \"rawTextureUuid\": \"e804746d-45a2-4d65-ad1d-8bb7e121f621\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 34,\n      \"height\": 32,\n      \"rawWidth\": 34,\n      \"rawHeight\": 32,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dl04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"224902e0-0605-4ec1-9cdf-31c2eae82e65\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 34,\n  \"height\": 32,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dl04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"206ee87c-1116-4564-97eb-114a0abc365b\",\n      \"rawTextureUuid\": \"224902e0-0605-4ec1-9cdf-31c2eae82e65\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 34,\n      \"height\": 32,\n      \"rawWidth\": 34,\n      \"rawHeight\": 32,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dl05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e25cc1a3-a938-4b59-a6d3-8768da97bc36\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 34,\n  \"height\": 32,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dl05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f56468b2-41b0-48c7-86f5-21fbfb9a0b70\",\n      \"rawTextureUuid\": \"e25cc1a3-a938-4b59-a6d3-8768da97bc36\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 34,\n      \"height\": 32,\n      \"rawWidth\": 34,\n      \"rawHeight\": 32,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dl06.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"876c4f8d-eaaf-44f5-bf52-60e61c63e569\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 34,\n  \"height\": 32,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dl06\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0fed2fc6-30fd-4048-b214-bdd1f38e042b\",\n      \"rawTextureUuid\": \"876c4f8d-eaaf-44f5-bf52-60e61c63e569\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 34,\n      \"height\": 32,\n      \"rawWidth\": 34,\n      \"rawHeight\": 32,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dlboom01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"162bdaf9-84ed-4495-bd53-a8a640b17c0a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 77,\n  \"height\": 92,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dlboom01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"bc48cd5f-6739-43c5-9c34-9d975c89973e\",\n      \"rawTextureUuid\": \"162bdaf9-84ed-4495-bd53-a8a640b17c0a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 77,\n      \"height\": 92,\n      \"rawWidth\": 77,\n      \"rawHeight\": 92,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dlboom010.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5634cc22-72b6-4b3f-a6f4-59b43c0ff448\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 117,\n  \"height\": 112,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dlboom010\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"38fc712e-323a-4975-8024-0ff64757639f\",\n      \"rawTextureUuid\": \"5634cc22-72b6-4b3f-a6f4-59b43c0ff448\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 117,\n      \"height\": 112,\n      \"rawWidth\": 117,\n      \"rawHeight\": 112,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dlboom011.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9878ea65-5166-42e1-9117-caee35138bb7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 113,\n  \"height\": 109,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dlboom011\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"22f7bee1-9856-4204-a977-e1cb54c0c5ad\",\n      \"rawTextureUuid\": \"9878ea65-5166-42e1-9117-caee35138bb7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 113,\n      \"height\": 109,\n      \"rawWidth\": 113,\n      \"rawHeight\": 109,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dlboom012.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2b943c12-09c1-444d-a5fb-b1fd2f818eef\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 82,\n  \"height\": 69,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dlboom012\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"48d40c37-bf14-4c90-a906-02db46c28806\",\n      \"rawTextureUuid\": \"2b943c12-09c1-444d-a5fb-b1fd2f818eef\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 82,\n      \"height\": 69,\n      \"rawWidth\": 82,\n      \"rawHeight\": 69,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dlboom02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"18b1bbe4-4947-4c5d-b32d-a7d51cc17883\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 113,\n  \"height\": 105,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dlboom02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6fde2557-0541-4434-9c90-a5254cf1fde3\",\n      \"rawTextureUuid\": \"18b1bbe4-4947-4c5d-b32d-a7d51cc17883\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 113,\n      \"height\": 105,\n      \"rawWidth\": 113,\n      \"rawHeight\": 105,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dlboom03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b82a0b7b-c3ff-4045-a4cb-66d983f5dddc\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 113,\n  \"height\": 106,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dlboom03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2e100bf6-c781-4243-8401-3053df85839b\",\n      \"rawTextureUuid\": \"b82a0b7b-c3ff-4045-a4cb-66d983f5dddc\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 113,\n      \"height\": 106,\n      \"rawWidth\": 113,\n      \"rawHeight\": 106,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dlboom04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"59ccd87b-78eb-4f40-b205-de6bc6a383d2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 139,\n  \"height\": 125,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dlboom04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"afb43243-0add-4516-9acc-8e6a5e204283\",\n      \"rawTextureUuid\": \"59ccd87b-78eb-4f40-b205-de6bc6a383d2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 139,\n      \"height\": 125,\n      \"rawWidth\": 139,\n      \"rawHeight\": 125,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dlboom05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d2d47642-b445-49ab-b723-d8cc8dc07b04\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 150,\n  \"height\": 132,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dlboom05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1776fc26-3ee6-4a2d-b55c-ced81ddaaf69\",\n      \"rawTextureUuid\": \"d2d47642-b445-49ab-b723-d8cc8dc07b04\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 150,\n      \"height\": 132,\n      \"rawWidth\": 150,\n      \"rawHeight\": 132,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dlboom06.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c87ef4b9-4818-4baa-aed2-7a0ce0878c92\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 161,\n  \"height\": 136,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dlboom06\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"caa7ae5a-c7e4-45f5-becd-8b59789438b5\",\n      \"rawTextureUuid\": \"c87ef4b9-4818-4baa-aed2-7a0ce0878c92\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 161,\n      \"height\": 136,\n      \"rawWidth\": 161,\n      \"rawHeight\": 136,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dlboom07.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e2933ede-42b5-41a0-abdb-ff3483c583ec\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 132,\n  \"height\": 110,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dlboom07\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"587523af-2158-44ad-b159-38a89df31709\",\n      \"rawTextureUuid\": \"e2933ede-42b5-41a0-abdb-ff3483c583ec\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 132,\n      \"height\": 110,\n      \"rawWidth\": 132,\n      \"rawHeight\": 110,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dlboom08.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"121a7f9b-b632-4766-818b-d1cd87238503\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 110,\n  \"height\": 102,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dlboom08\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4be491b8-5918-4ddf-8deb-82364b4b2701\",\n      \"rawTextureUuid\": \"121a7f9b-b632-4766-818b-d1cd87238503\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 110,\n      \"height\": 102,\n      \"rawWidth\": 110,\n      \"rawHeight\": 102,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/dlboom09.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5b901a3e-6db1-4630-b3c7-cd03ee38ae42\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 113,\n  \"height\": 105,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dlboom09\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f8ce09ac-915d-4b1f-b21a-4056de0f0cc4\",\n      \"rawTextureUuid\": \"5b901a3e-6db1-4630-b3c7-cd03ee38ae42\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 113,\n      \"height\": 105,\n      \"rawWidth\": 113,\n      \"rawHeight\": 105,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st1h_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a5eee49d-da83-4163-8538-3a00b3b68795\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 88,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st1h_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ac9c8417-5cb4-4e0d-9cc0-6255ab41de9a\",\n      \"rawTextureUuid\": \"a5eee49d-da83-4163-8538-3a00b3b68795\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 40,\n      \"height\": 88,\n      \"rawWidth\": 40,\n      \"rawHeight\": 88,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st1h_bullet_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"244062b0-82fd-4f53-a2a7-3d5609e44a75\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 81,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st1h_bullet_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6a28b7df-e5c9-42a9-a612-2799e4003a1e\",\n      \"rawTextureUuid\": \"244062b0-82fd-4f53-a2a7-3d5609e44a75\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 40,\n      \"height\": 81,\n      \"rawWidth\": 40,\n      \"rawHeight\": 81,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st1h_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5f7e3710-8e4f-4421-9da1-b75577e5e5bb\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 64,\n  \"height\": 59,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st1h_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d6d0a8a8-468c-4f25-bdf4-c2942548a6ec\",\n      \"rawTextureUuid\": \"5f7e3710-8e4f-4421-9da1-b75577e5e5bb\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 64,\n      \"height\": 59,\n      \"rawWidth\": 64,\n      \"rawHeight\": 59,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st1h_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1fff27a0-02bd-4ec7-8857-b85bb816636a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 128,\n  \"height\": 86,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st1h_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"07e8e9f5-adcb-485c-82da-43580e26485f\",\n      \"rawTextureUuid\": \"1fff27a0-02bd-4ec7-8857-b85bb816636a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 128,\n      \"height\": 86,\n      \"rawWidth\": 128,\n      \"rawHeight\": 86,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st1h_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"682bfd64-95de-4a9d-b42b-6ab098032b05\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 148,\n  \"height\": 85,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st1h_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8daf38c7-dad8-41a0-9fc7-bb5372fce1b2\",\n      \"rawTextureUuid\": \"682bfd64-95de-4a9d-b42b-6ab098032b05\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 148,\n      \"height\": 85,\n      \"rawWidth\": 148,\n      \"rawHeight\": 85,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st1h_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bdaf44de-1d41-45d8-a30c-5ce2d2fda556\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 156,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st1h_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c2c28f12-b296-4018-9939-2d6e3954fecc\",\n      \"rawTextureUuid\": \"bdaf44de-1d41-45d8-a30c-5ce2d2fda556\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 156,\n      \"height\": 90,\n      \"rawWidth\": 156,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st1h_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"86a8469e-71b9-4294-a2a2-ee1212c64ceb\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 87,\n  \"height\": 99,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st1h_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c9393785-086c-4567-ad32-2112fa62c4cb\",\n      \"rawTextureUuid\": \"86a8469e-71b9-4294-a2a2-ee1212c64ceb\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 87,\n      \"height\": 99,\n      \"rawWidth\": 87,\n      \"rawHeight\": 99,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st1h_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d5df7401-b3cd-4ec1-9557-8014166117ee\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 114,\n  \"height\": 148,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st1h_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"07b4a239-f75a-4035-a3a2-d0c045391dd1\",\n      \"rawTextureUuid\": \"d5df7401-b3cd-4ec1-9557-8014166117ee\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 114,\n      \"height\": 148,\n      \"rawWidth\": 114,\n      \"rawHeight\": 148,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st1h_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2fab73eb-45c9-4f22-a66a-b819b4ca4a2f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 114,\n  \"height\": 148,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st1h_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5bf4c287-d5f2-438e-b519-80e0dc64cf69\",\n      \"rawTextureUuid\": \"2fab73eb-45c9-4f22-a66a-b819b4ca4a2f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 114,\n      \"height\": 148,\n      \"rawWidth\": 114,\n      \"rawHeight\": 148,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st1h_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"67134404-25fd-4af9-a2b7-d429e72a975d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 108,\n  \"height\": 142,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st1h_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3edbfe29-aed5-48c8-b99c-979bc2f2e5b6\",\n      \"rawTextureUuid\": \"67134404-25fd-4af9-a2b7-d429e72a975d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 108,\n      \"height\": 142,\n      \"rawWidth\": 108,\n      \"rawHeight\": 142,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st1h_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"48575a2b-0b64-41b9-a64d-d38c91a1b8d5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 74,\n  \"height\": 134,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st1h_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8ca4a7a2-62d7-472a-a23d-f5a01be497a8\",\n      \"rawTextureUuid\": \"48575a2b-0b64-41b9-a64d-d38c91a1b8d5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 74,\n      \"height\": 134,\n      \"rawWidth\": 74,\n      \"rawHeight\": 134,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st1h_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e1785fda-a926-4e40-a478-1111becfafb3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 74,\n  \"height\": 121,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st1h_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"24467c9a-b9fb-44c7-878f-1ef9101e7144\",\n      \"rawTextureUuid\": \"e1785fda-a926-4e40-a478-1111becfafb3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 74,\n      \"height\": 121,\n      \"rawWidth\": 74,\n      \"rawHeight\": 121,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st2h_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0016bee1-4316-4dac-a9e7-3bef62bb083e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st2h_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c0c7a115-8939-4b4c-ba78-218bfcf70464\",\n      \"rawTextureUuid\": \"0016bee1-4316-4dac-a9e7-3bef62bb083e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 40,\n      \"height\": 90,\n      \"rawWidth\": 40,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st2h_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"06f4055f-4483-44cd-a175-4d60deb9919c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 75,\n  \"height\": 98,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st2h_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"efc24c0d-3e14-4573-978a-2d6ae04d5be3\",\n      \"rawTextureUuid\": \"06f4055f-4483-44cd-a175-4d60deb9919c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 75,\n      \"height\": 98,\n      \"rawWidth\": 75,\n      \"rawHeight\": 98,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st2h_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0d939779-fd73-4855-9fc5-030e319552a9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 112,\n  \"height\": 149,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st2h_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8dbac160-4402-479c-9e69-de3aa11208bc\",\n      \"rawTextureUuid\": \"0d939779-fd73-4855-9fc5-030e319552a9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 112,\n      \"height\": 149,\n      \"rawWidth\": 112,\n      \"rawHeight\": 149,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st2h_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3fb19ebc-860e-491c-aa58-5b62d9bd16e8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 134,\n  \"height\": 144,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st2h_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6c7973bc-6036-4528-a172-9cad224c105a\",\n      \"rawTextureUuid\": \"3fb19ebc-860e-491c-aa58-5b62d9bd16e8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 134,\n      \"height\": 144,\n      \"rawWidth\": 134,\n      \"rawHeight\": 144,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st2h_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"36a66763-d58e-41d5-a7cc-85d6859112c7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 139,\n  \"height\": 148,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st2h_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"63f54015-e80d-4269-9c6e-a18a4b06d1a8\",\n      \"rawTextureUuid\": \"36a66763-d58e-41d5-a7cc-85d6859112c7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 139,\n      \"height\": 148,\n      \"rawWidth\": 139,\n      \"rawHeight\": 148,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st2h_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"40ec22cf-e4b5-4cd9-8e2e-43ba60e84b9a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 119,\n  \"height\": 117,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st2h_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"278ef866-b728-49d9-a1dd-816a6c0653ce\",\n      \"rawTextureUuid\": \"40ec22cf-e4b5-4cd9-8e2e-43ba60e84b9a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 119,\n      \"height\": 117,\n      \"rawWidth\": 119,\n      \"rawHeight\": 117,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st2h_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7867b95d-a4d3-4544-b8e1-64d67a19fe81\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 119,\n  \"height\": 144,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st2h_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"20962fe4-92f5-47ca-8e8e-2925d55a39db\",\n      \"rawTextureUuid\": \"7867b95d-a4d3-4544-b8e1-64d67a19fe81\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 119,\n      \"height\": 144,\n      \"rawWidth\": 119,\n      \"rawHeight\": 144,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st2h_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7ee6677c-3966-411e-bd04-b4624905aa04\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 120,\n  \"height\": 151,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st2h_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ca292e5c-fac2-4f6d-9e40-6abef2963b59\",\n      \"rawTextureUuid\": \"7ee6677c-3966-411e-bd04-b4624905aa04\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 120,\n      \"height\": 151,\n      \"rawWidth\": 120,\n      \"rawHeight\": 151,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st2h_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6ec3f387-27f5-4859-9b1d-39e887b02e8c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 139,\n  \"height\": 150,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st2h_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e1695616-b4ae-4440-a79b-941fb8fe501c\",\n      \"rawTextureUuid\": \"6ec3f387-27f5-4859-9b1d-39e887b02e8c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 139,\n      \"height\": 150,\n      \"rawWidth\": 139,\n      \"rawHeight\": 150,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st2h_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f5aa77a1-083a-479e-b82f-fc8f752032d3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 135,\n  \"height\": 154,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st2h_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"30fbf5cb-fd01-42f1-907c-ae5193200d86\",\n      \"rawTextureUuid\": \"f5aa77a1-083a-479e-b82f-fc8f752032d3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 135,\n      \"height\": 154,\n      \"rawWidth\": 135,\n      \"rawHeight\": 154,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/eva_st2h_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6e620875-e2c3-402f-a7ec-531a59079e71\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 125,\n  \"height\": 151,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"eva_st2h_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e428b5d9-ed69-4165-be1e-7828df9ffbc6\",\n      \"rawTextureUuid\": \"6e620875-e2c3-402f-a7ec-531a59079e71\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 125,\n      \"height\": 151,\n      \"rawWidth\": 125,\n      \"rawHeight\": 151,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/foemen_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f4b8ec25-4ca8-4825-abf3-f5be07ec2dc3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 26,\n  \"height\": 89,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"foemen_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8c3d175a-9427-46bd-bb33-a8860977996f\",\n      \"rawTextureUuid\": \"f4b8ec25-4ca8-4825-abf3-f5be07ec2dc3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 26,\n      \"height\": 89,\n      \"rawWidth\": 26,\n      \"rawHeight\": 89,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/hfhd01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"41ed0195-c3cf-4e68-9c49-7f059da19530\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hfhd01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"03a8c892-0520-4dc2-8d1d-26b60b652d28\",\n      \"rawTextureUuid\": \"41ed0195-c3cf-4e68-9c49-7f059da19530\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/hfhd02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3cb5bf82-5a59-4be6-b87f-def42b4888bd\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hfhd02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"71b638d2-4768-4f05-bac2-02ba149be684\",\n      \"rawTextureUuid\": \"3cb5bf82-5a59-4be6-b87f-def42b4888bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/hfhd03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b7d24ce8-4df3-467c-bf1b-25c6f9655415\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hfhd03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"140c6265-8cef-48eb-97b8-e37f1c4a109a\",\n      \"rawTextureUuid\": \"b7d24ce8-4df3-467c-bf1b-25c6f9655415\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/hfhd04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"beab0061-cf5f-4baa-896d-20acac422244\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hfhd04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7fb3b97b-bcd5-4088-a8e5-7a9e17e47c8c\",\n      \"rawTextureUuid\": \"beab0061-cf5f-4baa-896d-20acac422244\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/hfhd05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"51b334f6-68e5-44a9-8eb6-155a3add68f1\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hfhd05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"044acf3b-6549-42b6-8c11-963b9c8a24e1\",\n      \"rawTextureUuid\": \"51b334f6-68e5-44a9-8eb6-155a3add68f1\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/hit01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"55eb3df7-9633-4564-95a0-39e58b9a5647\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 51,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hit01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f8276374-4762-40c1-b298-a94c1c6facdc\",\n      \"rawTextureUuid\": \"55eb3df7-9633-4564-95a0-39e58b9a5647\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 51,\n      \"height\": 50,\n      \"rawWidth\": 51,\n      \"rawHeight\": 50,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/hit02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2e3760d7-f0b8-4b39-b936-09c4634e9a74\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 51,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hit02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c84efefc-28d7-44ae-9483-c614c898c1f1\",\n      \"rawTextureUuid\": \"2e3760d7-f0b8-4b39-b936-09c4634e9a74\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 51,\n      \"height\": 50,\n      \"rawWidth\": 51,\n      \"rawHeight\": 50,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/hit03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"22e75edb-30c7-4807-b68f-7d93ad17d31e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 51,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hit03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4c72c186-7e74-4ddf-a106-6c43f643d140\",\n      \"rawTextureUuid\": \"22e75edb-30c7-4807-b68f-7d93ad17d31e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 51,\n      \"height\": 50,\n      \"rawWidth\": 51,\n      \"rawHeight\": 50,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/hit04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c96b6b1f-835d-4e67-b22a-00e3deec7921\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 60,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hit04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f91b8dd5-911c-48a4-ac7e-ce8d2b5a60b5\",\n      \"rawTextureUuid\": \"c96b6b1f-835d-4e67-b22a-00e3deec7921\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 60,\n      \"height\": 60,\n      \"rawWidth\": 60,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/jnhd01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b81057bf-a097-4f8a-b4f1-41d10234e19b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"jnhd01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c2230de7-6e3d-4013-a46a-18104504b3bf\",\n      \"rawTextureUuid\": \"b81057bf-a097-4f8a-b4f1-41d10234e19b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/jnhd02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"95619361-169f-479a-86bd-8ca6d3bb4acd\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"jnhd02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0d1cadc1-3904-4f15-b57d-4bdbdc7c9ffb\",\n      \"rawTextureUuid\": \"95619361-169f-479a-86bd-8ca6d3bb4acd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/jnhd03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d676b9aa-26d9-46a2-a1c8-b25e73b7192e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"jnhd03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a3e40124-8caa-49a0-b13d-d0dfa28082b5\",\n      \"rawTextureUuid\": \"d676b9aa-26d9-46a2-a1c8-b25e73b7192e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/jnhd04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e504ce6f-b41c-4a63-8d0c-97a799e4e7e3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"jnhd04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f5f892e0-5748-482f-a38a-6d39aaaeb83c\",\n      \"rawTextureUuid\": \"e504ce6f-b41c-4a63-8d0c-97a799e4e7e3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/jnhd05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"10951758-c89c-4a68-b99d-8fc6a69f316c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"jnhd05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3d0ea283-6d14-4492-b761-fd17cc820ec7\",\n      \"rawTextureUuid\": \"10951758-c89c-4a68-b99d-8fc6a69f316c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/missile.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"df257a35-0100-44b6-84a8-da8ea98e9a9a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 21,\n  \"height\": 34,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"missile\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"495e2fe4-e875-49c9-945d-15bca5f78e2e\",\n      \"rawTextureUuid\": \"df257a35-0100-44b6-84a8-da8ea98e9a9a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 21,\n      \"height\": 34,\n      \"rawWidth\": 21,\n      \"rawHeight\": 34,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/ms.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c024a724-d6d8-4e84-a753-e688c677fb73\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ms\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2477ac80-d55d-44d4-88d6-2531c15b4ae9\",\n      \"rawTextureUuid\": \"c024a724-d6d8-4e84-a753-e688c677fb73\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 80,\n      \"height\": 40,\n      \"rawWidth\": 80,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/ms01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fd6bae8a-c919-4d59-a1ac-2f8a6d8e5610\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 135,\n  \"height\": 135,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ms01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d63884b4-74fd-4b01-ba3a-5cd86c5b25c4\",\n      \"rawTextureUuid\": \"fd6bae8a-c919-4d59-a1ac-2f8a6d8e5610\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 135,\n      \"height\": 135,\n      \"rawWidth\": 135,\n      \"rawHeight\": 135,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/ms010.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"71fec794-cb86-4796-bf47-f05f7259331f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 151,\n  \"height\": 144,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ms010\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"eb01c1c7-4805-4432-9da3-7c572af9f88d\",\n      \"rawTextureUuid\": \"71fec794-cb86-4796-bf47-f05f7259331f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 151,\n      \"height\": 144,\n      \"rawWidth\": 151,\n      \"rawHeight\": 144,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/ms011.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"efe2413e-9efa-4485-9d64-01b135c0aa17\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 151,\n  \"height\": 143,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ms011\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"781fee17-3a21-4830-908d-8bcdd76d0de9\",\n      \"rawTextureUuid\": \"efe2413e-9efa-4485-9d64-01b135c0aa17\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 151,\n      \"height\": 143,\n      \"rawWidth\": 151,\n      \"rawHeight\": 143,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/ms012.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"31c667e9-6e46-4dea-b6b6-74afabfaf259\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 141,\n  \"height\": 141,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ms012\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b8649566-9938-4d6d-8898-2597e4e7a114\",\n      \"rawTextureUuid\": \"31c667e9-6e46-4dea-b6b6-74afabfaf259\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 141,\n      \"height\": 141,\n      \"rawWidth\": 141,\n      \"rawHeight\": 141,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/ms02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c6c35634-ed0b-4546-87fc-488d31c72874\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 143,\n  \"height\": 143,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ms02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"edccc1a5-f704-4e0d-97f5-128323a7feee\",\n      \"rawTextureUuid\": \"c6c35634-ed0b-4546-87fc-488d31c72874\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 143,\n      \"height\": 143,\n      \"rawWidth\": 143,\n      \"rawHeight\": 143,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/ms03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"50e9088a-a2dc-4055-852e-f98a81586ad8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 144,\n  \"height\": 144,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ms03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"47980d51-fc88-4471-8b6d-aba386843d56\",\n      \"rawTextureUuid\": \"50e9088a-a2dc-4055-852e-f98a81586ad8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 144,\n      \"height\": 144,\n      \"rawWidth\": 144,\n      \"rawHeight\": 144,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/ms04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e3d2fba1-5372-43df-9afc-d808a7b3fc07\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 168,\n  \"height\": 149,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ms04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8effbb67-5d1a-4488-a179-a831904b7b98\",\n      \"rawTextureUuid\": \"e3d2fba1-5372-43df-9afc-d808a7b3fc07\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 168,\n      \"height\": 149,\n      \"rawWidth\": 168,\n      \"rawHeight\": 149,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/ms05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e026225d-8fa1-431f-b70f-a8bd4e4c80c1\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 168,\n  \"height\": 149,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ms05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1e2ab33a-1203-4044-89be-802342ee0b65\",\n      \"rawTextureUuid\": \"e026225d-8fa1-431f-b70f-a8bd4e4c80c1\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 168,\n      \"height\": 149,\n      \"rawWidth\": 168,\n      \"rawHeight\": 149,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/ms06.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"75a2c803-12fb-4886-9266-0d34a713fa7f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 170,\n  \"height\": 146,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ms06\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d6587b79-537a-4d46-adb8-398767cb33d4\",\n      \"rawTextureUuid\": \"75a2c803-12fb-4886-9266-0d34a713fa7f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 170,\n      \"height\": 146,\n      \"rawWidth\": 170,\n      \"rawHeight\": 146,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/ms07.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b9c286ba-68be-487f-8e63-3bbdf5c64b93\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 170,\n  \"height\": 146,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ms07\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f6576c3c-f218-4252-a909-c1873fdba8ff\",\n      \"rawTextureUuid\": \"b9c286ba-68be-487f-8e63-3bbdf5c64b93\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 170,\n      \"height\": 146,\n      \"rawWidth\": 170,\n      \"rawHeight\": 146,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/ms08.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"12aa6abb-9d32-44bf-8583-46998ac0fc1b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 165,\n  \"height\": 144,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ms08\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"be7ccf60-2db8-4efc-b4db-f04ef1c282fb\",\n      \"rawTextureUuid\": \"12aa6abb-9d32-44bf-8583-46998ac0fc1b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 165,\n      \"height\": 144,\n      \"rawWidth\": 165,\n      \"rawHeight\": 144,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/ms09.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c061ab5f-58cd-4fd9-8902-46cb68c4a2fa\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 165,\n  \"height\": 144,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ms09\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5930b6ad-659d-46a4-a0e0-07c1874c2f89\",\n      \"rawTextureUuid\": \"c061ab5f-58cd-4fd9-8902-46cb68c4a2fa\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 165,\n      \"height\": 144,\n      \"rawWidth\": 165,\n      \"rawHeight\": 144,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_dzyc_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"25552c93-0f0f-4c2d-916b-be4fa349ba48\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 34,\n  \"height\": 52,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_dzyc_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ff6fb9a1-003d-4026-bf07-68152f553fee\",\n      \"rawTextureUuid\": \"25552c93-0f0f-4c2d-916b-be4fa349ba48\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 34,\n      \"height\": 52,\n      \"rawWidth\": 34,\n      \"rawHeight\": 52,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_dzyc_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"200ffd9f-512f-4e98-a5e7-d291c8eec9c4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 38,\n  \"height\": 39,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_dzyc_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d2b58c21-5c11-4c7b-8074-9f7ca35c229c\",\n      \"rawTextureUuid\": \"200ffd9f-512f-4e98-a5e7-d291c8eec9c4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 38,\n      \"height\": 39,\n      \"rawWidth\": 38,\n      \"rawHeight\": 39,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_dzyc_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b42eba54-838b-4881-bd5f-22a617d1e329\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 68,\n  \"height\": 74,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_dzyc_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"68838774-f77e-466a-9536-1af0bddb1826\",\n      \"rawTextureUuid\": \"b42eba54-838b-4881-bd5f-22a617d1e329\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 68,\n      \"height\": 74,\n      \"rawWidth\": 68,\n      \"rawHeight\": 74,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_dzyc_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"60938e6e-03b1-4a5e-8520-3d535642fa57\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 88,\n  \"height\": 79,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_dzyc_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"24c8e952-e55b-4777-a68f-b4ee6154b987\",\n      \"rawTextureUuid\": \"60938e6e-03b1-4a5e-8520-3d535642fa57\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 88,\n      \"height\": 79,\n      \"rawWidth\": 88,\n      \"rawHeight\": 79,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_dzyc_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c63de837-9600-4c89-9272-a08ee3e1c2d9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 92,\n  \"height\": 77,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_dzyc_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d77d4e44-c47a-4c03-b712-27cabda99ce9\",\n      \"rawTextureUuid\": \"c63de837-9600-4c89-9272-a08ee3e1c2d9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 92,\n      \"height\": 77,\n      \"rawWidth\": 92,\n      \"rawHeight\": 77,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_dzyc_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"abfd4e9a-17ab-4463-b1c8-969997ecb43d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 50,\n  \"height\": 45,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_dzyc_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"23e19014-4c5d-4d90-92c2-ae04bcae8ffc\",\n      \"rawTextureUuid\": \"abfd4e9a-17ab-4463-b1c8-969997ecb43d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 50,\n      \"height\": 45,\n      \"rawWidth\": 50,\n      \"rawHeight\": 45,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_dzyc_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5f13ce75-ee5e-4b21-a5f1-88df8b3f0b99\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 58,\n  \"height\": 67,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_dzyc_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"36a61b32-8c62-40cb-9804-94f5d7268962\",\n      \"rawTextureUuid\": \"5f13ce75-ee5e-4b21-a5f1-88df8b3f0b99\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 58,\n      \"height\": 67,\n      \"rawWidth\": 58,\n      \"rawHeight\": 67,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_dzyc_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d369eb03-0b74-41b9-bea5-4a3f3f2932de\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 71,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_dzyc_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cfc2f940-3d91-4aed-82dc-cc1df358d01c\",\n      \"rawTextureUuid\": \"d369eb03-0b74-41b9-bea5-4a3f3f2932de\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 80,\n      \"height\": 71,\n      \"rawWidth\": 80,\n      \"rawHeight\": 71,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_dzyc_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4d11ed6c-35b9-447a-8244-26dc372482d1\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 91,\n  \"height\": 78,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_dzyc_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"dc9e4bfc-3eca-4c45-91c2-08a1f27d8425\",\n      \"rawTextureUuid\": \"4d11ed6c-35b9-447a-8244-26dc372482d1\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 91,\n      \"height\": 78,\n      \"rawWidth\": 91,\n      \"rawHeight\": 78,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_dzyc_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"14a678fc-2d21-4599-a3c1-729d352303bf\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 97,\n  \"height\": 77,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_dzyc_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d6edc5d4-ca18-4b0d-91b6-0cb47f80a3bc\",\n      \"rawTextureUuid\": \"14a678fc-2d21-4599-a3c1-729d352303bf\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 97,\n      \"height\": 77,\n      \"rawWidth\": 97,\n      \"rawHeight\": 77,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_dzyc_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"081dec24-3b1d-45fc-b130-3373412392c5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 97,\n  \"height\": 82,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_dzyc_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3858daa9-c5da-4772-9b14-5098342f930a\",\n      \"rawTextureUuid\": \"081dec24-3b1d-45fc-b130-3373412392c5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 97,\n      \"height\": 82,\n      \"rawWidth\": 97,\n      \"rawHeight\": 82,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_dzyc_spark2_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"737e734f-07d1-417e-93d7-c841e8e0a446\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 71,\n  \"height\": 62,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_dzyc_spark2_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"399de3b7-9c4f-44a4-ae2b-18b207ad1ce4\",\n      \"rawTextureUuid\": \"737e734f-07d1-417e-93d7-c841e8e0a446\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 71,\n      \"height\": 62,\n      \"rawWidth\": 71,\n      \"rawHeight\": 62,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_dzyc_spark2_8.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0f82ae27-9c1e-413a-a1e3-601eeba51c4c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 18,\n  \"height\": 59,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_dzyc_spark2_8\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ca3736e1-93e3-498a-acec-84f1d78ea29a\",\n      \"rawTextureUuid\": \"0f82ae27-9c1e-413a-a1e3-601eeba51c4c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 18,\n      \"height\": 59,\n      \"rawWidth\": 18,\n      \"rawHeight\": 59,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_lsjn_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"52ac960d-a324-4861-8bfd-234e09159f5d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 34,\n  \"height\": 46,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_lsjn_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3620d2b8-02a3-464c-9f13-9217b2d782b5\",\n      \"rawTextureUuid\": \"52ac960d-a324-4861-8bfd-234e09159f5d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 34,\n      \"height\": 46,\n      \"rawWidth\": 34,\n      \"rawHeight\": 46,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_lsjn_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d50c55f9-5a61-499f-8c06-914bd493ab61\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 84,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_lsjn_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"402edbe2-d0e2-46d9-b6eb-36408c368bfd\",\n      \"rawTextureUuid\": \"d50c55f9-5a61-499f-8c06-914bd493ab61\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 84,\n      \"height\": 75,\n      \"rawWidth\": 84,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_lsjn_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"423103bf-4740-49f4-bd27-541388de4aef\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 109,\n  \"height\": 110,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_lsjn_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1745acdb-c9dc-44bb-95c5-c8e13e392ebe\",\n      \"rawTextureUuid\": \"423103bf-4740-49f4-bd27-541388de4aef\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 109,\n      \"height\": 110,\n      \"rawWidth\": 109,\n      \"rawHeight\": 110,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_lsjn_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"665e7a5d-7196-491c-850e-3f488d3aa921\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 107,\n  \"height\": 112,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_lsjn_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c13ddb48-3056-4603-b037-0ab30731b239\",\n      \"rawTextureUuid\": \"665e7a5d-7196-491c-850e-3f488d3aa921\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 107,\n      \"height\": 112,\n      \"rawWidth\": 107,\n      \"rawHeight\": 112,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_lsjn_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9ecf6b97-a7ac-47d9-97bf-6599e9df4b51\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 108,\n  \"height\": 120,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_lsjn_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f19baf81-c326-4191-aeeb-c3fd8b32d672\",\n      \"rawTextureUuid\": \"9ecf6b97-a7ac-47d9-97bf-6599e9df4b51\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 108,\n      \"height\": 120,\n      \"rawWidth\": 108,\n      \"rawHeight\": 120,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_lsjn_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ca31b6d0-b3b0-4299-a716-810cde85d343\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 56,\n  \"height\": 66,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_lsjn_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cb521fd5-6660-4b47-bace-626f2b75510b\",\n      \"rawTextureUuid\": \"ca31b6d0-b3b0-4299-a716-810cde85d343\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 56,\n      \"height\": 66,\n      \"rawWidth\": 56,\n      \"rawHeight\": 66,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_lsjn_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0857c83b-d44a-4fb7-b4b2-884784e2a98e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 56,\n  \"height\": 67,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_lsjn_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a07b3b09-1030-4a31-b05d-a8bf1ccde0f8\",\n      \"rawTextureUuid\": \"0857c83b-d44a-4fb7-b4b2-884784e2a98e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 56,\n      \"height\": 67,\n      \"rawWidth\": 56,\n      \"rawHeight\": 67,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_lsjn_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"62be9e28-0c3f-45ce-895c-64a194a43af5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 71,\n  \"height\": 88,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_lsjn_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"acc093a6-eb10-4072-ac7c-f1d2d5e803f8\",\n      \"rawTextureUuid\": \"62be9e28-0c3f-45ce-895c-64a194a43af5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 71,\n      \"height\": 88,\n      \"rawWidth\": 71,\n      \"rawHeight\": 88,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_lsjn_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"84c5d104-98c5-400b-a5c5-5367eeb49534\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 82,\n  \"height\": 93,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_lsjn_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8e6228bc-b24c-46b5-9dd1-151781dd632c\",\n      \"rawTextureUuid\": \"84c5d104-98c5-400b-a5c5-5367eeb49534\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 82,\n      \"height\": 93,\n      \"rawWidth\": 82,\n      \"rawHeight\": 93,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_lsjn_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b824702b-2ab7-4e3c-8af2-6772f3513664\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 86,\n  \"height\": 93,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_lsjn_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"972c7e89-7c67-4d70-8dc8-789cad2f6411\",\n      \"rawTextureUuid\": \"b824702b-2ab7-4e3c-8af2-6772f3513664\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 86,\n      \"height\": 93,\n      \"rawWidth\": 86,\n      \"rawHeight\": 93,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_lsjn_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0a05169a-a98d-4256-885b-ec83d230af0b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 89,\n  \"height\": 96,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_lsjn_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"197026d9-9171-42f8-8489-2137f9e07c4c\",\n      \"rawTextureUuid\": \"0a05169a-a98d-4256-885b-ec83d230af0b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 89,\n      \"height\": 96,\n      \"rawWidth\": 89,\n      \"rawHeight\": 96,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_lsjn_spark2_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7f65dc88-2f11-4826-bcdc-1b534638f902\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 55,\n  \"height\": 49,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_lsjn_spark2_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3f0bc9ca-4c59-4ec9-89ad-79a32ea7880f\",\n      \"rawTextureUuid\": \"7f65dc88-2f11-4826-bcdc-1b534638f902\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 55,\n      \"height\": 49,\n      \"rawWidth\": 55,\n      \"rawHeight\": 49,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_sdpk_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7384dfdc-2f30-436a-b34c-507dfd03a344\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 38,\n  \"height\": 49,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_sdpk_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c2cabd64-ee59-444d-8a9b-d78fe0860638\",\n      \"rawTextureUuid\": \"7384dfdc-2f30-436a-b34c-507dfd03a344\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 38,\n      \"height\": 49,\n      \"rawWidth\": 38,\n      \"rawHeight\": 49,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_sdpk_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"eba1a042-0be8-4723-8db4-17cff56b48c9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 48,\n  \"height\": 48,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_sdpk_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"552a71a9-4a5d-45e0-af36-d3b6306cd7af\",\n      \"rawTextureUuid\": \"eba1a042-0be8-4723-8db4-17cff56b48c9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 48,\n      \"height\": 48,\n      \"rawWidth\": 48,\n      \"rawHeight\": 48,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_sdpk_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f53c7591-fce4-44bc-8a3e-436891ca14ad\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 92,\n  \"height\": 72,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_sdpk_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b6f31cc1-2fbf-4aa3-9bf2-5fa5baa078ce\",\n      \"rawTextureUuid\": \"f53c7591-fce4-44bc-8a3e-436891ca14ad\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 92,\n      \"height\": 72,\n      \"rawWidth\": 92,\n      \"rawHeight\": 72,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_sdpk_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ab0a5250-3f5d-4665-863c-27d5e556b9f7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 102,\n  \"height\": 82,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_sdpk_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"827b4dcb-9fe6-4253-a3dd-581da328b9dc\",\n      \"rawTextureUuid\": \"ab0a5250-3f5d-4665-863c-27d5e556b9f7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 102,\n      \"height\": 82,\n      \"rawWidth\": 102,\n      \"rawHeight\": 82,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_sdpk_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0c690401-865f-4190-a788-ffd6d8b32255\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 102,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_sdpk_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"82c26dda-5cad-4cfe-9727-cb054775a25a\",\n      \"rawTextureUuid\": \"0c690401-865f-4190-a788-ffd6d8b32255\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 102,\n      \"height\": 90,\n      \"rawWidth\": 102,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_sdpk_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"679f022f-cc5d-49f3-90bc-a8d42d7f9a7c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 64,\n  \"height\": 78,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_sdpk_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b94222aa-309e-48c7-9951-886ac937c7d3\",\n      \"rawTextureUuid\": \"679f022f-cc5d-49f3-90bc-a8d42d7f9a7c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 64,\n      \"height\": 78,\n      \"rawWidth\": 64,\n      \"rawHeight\": 78,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_sdpk_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"54e6e7ec-f128-4b29-ac0d-567feddd4e9e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 82,\n  \"height\": 96,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_sdpk_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b9cd3bda-2050-4b1d-91dd-2d52e0427e51\",\n      \"rawTextureUuid\": \"54e6e7ec-f128-4b29-ac0d-567feddd4e9e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 82,\n      \"height\": 96,\n      \"rawWidth\": 82,\n      \"rawHeight\": 96,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_sdpk_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4dd78b96-9936-4ada-8935-64882998d96f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 78,\n  \"height\": 100,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_sdpk_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"86853213-8841-4b5b-93eb-12c8914dd37a\",\n      \"rawTextureUuid\": \"4dd78b96-9936-4ada-8935-64882998d96f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 78,\n      \"height\": 100,\n      \"rawWidth\": 78,\n      \"rawHeight\": 100,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_sdpk_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c3decc49-1229-469d-b533-deba552ef241\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 78,\n  \"height\": 100,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_sdpk_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"dff562af-6f8f-456e-ae84-e5d430529296\",\n      \"rawTextureUuid\": \"c3decc49-1229-469d-b533-deba552ef241\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 78,\n      \"height\": 100,\n      \"rawWidth\": 78,\n      \"rawHeight\": 100,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_sdpk_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"899aaf68-35fa-409c-bc5f-45a4de9e3d74\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 78,\n  \"height\": 102,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_sdpk_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b02b6565-16c4-49b6-866f-71fd5adc8c9e\",\n      \"rawTextureUuid\": \"899aaf68-35fa-409c-bc5f-45a4de9e3d74\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 78,\n      \"height\": 102,\n      \"rawWidth\": 78,\n      \"rawHeight\": 102,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_sdpk_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2c5f6c1f-62f2-42ea-9d01-696e03c0370e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 77,\n  \"height\": 101,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_sdpk_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"032fcf7c-6da9-4f7c-b89a-fb93e7cb7f06\",\n      \"rawTextureUuid\": \"2c5f6c1f-62f2-42ea-9d01-696e03c0370e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 77,\n      \"height\": 101,\n      \"rawWidth\": 77,\n      \"rawHeight\": 101,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_sdpk_spark2_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fbf23b2e-0433-475f-9cad-491e21f75344\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 76,\n  \"height\": 103,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_sdpk_spark2_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6ec0f1ad-26dc-412e-830f-833b193f92bf\",\n      \"rawTextureUuid\": \"fbf23b2e-0433-475f-9cad-491e21f75344\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 76,\n      \"height\": 103,\n      \"rawWidth\": 76,\n      \"rawHeight\": 103,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_zmhl_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"70cd0607-bacc-4c69-bb80-b8e6241e331a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 33,\n  \"height\": 48,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_zmhl_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b351c135-f4a3-4688-a5f2-6f9511676c3f\",\n      \"rawTextureUuid\": \"70cd0607-bacc-4c69-bb80-b8e6241e331a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 33,\n      \"height\": 48,\n      \"rawWidth\": 33,\n      \"rawHeight\": 48,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_zmhl_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fcd29a4c-a11e-4a13-84bd-364201a31bc7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 61,\n  \"height\": 57,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_zmhl_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ffade832-b868-4865-a1db-f1cb09762738\",\n      \"rawTextureUuid\": \"fcd29a4c-a11e-4a13-84bd-364201a31bc7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 61,\n      \"height\": 57,\n      \"rawWidth\": 61,\n      \"rawHeight\": 57,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_zmhl_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"efe8a8ec-2a1c-4f05-a09d-0c5c2457662d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 71,\n  \"height\": 69,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_zmhl_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"72e75e26-a6f2-414f-b24a-f0d2365970ff\",\n      \"rawTextureUuid\": \"efe8a8ec-2a1c-4f05-a09d-0c5c2457662d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 71,\n      \"height\": 69,\n      \"rawWidth\": 71,\n      \"rawHeight\": 69,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_zmhl_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9689fa29-e2c0-408e-8b9f-f1c6f48e3ccb\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 84,\n  \"height\": 83,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_zmhl_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"815ead72-7c2f-4f8c-ab63-5c1db105dcf4\",\n      \"rawTextureUuid\": \"9689fa29-e2c0-408e-8b9f-f1c6f48e3ccb\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 84,\n      \"height\": 83,\n      \"rawWidth\": 84,\n      \"rawHeight\": 83,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_zmhl_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"44b174e8-67e2-4a27-9988-8f1ac169c424\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 73,\n  \"height\": 72,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_zmhl_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7e9166a9-bbf3-4d51-90b3-3b82e849536d\",\n      \"rawTextureUuid\": \"44b174e8-67e2-4a27-9988-8f1ac169c424\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 73,\n      \"height\": 72,\n      \"rawWidth\": 73,\n      \"rawHeight\": 72,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_zmhl_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"679956eb-df91-43e4-a5e6-cbe8da706338\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 70,\n  \"height\": 73,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_zmhl_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8ba623a4-3cf7-4dc3-ab8f-568f585e8896\",\n      \"rawTextureUuid\": \"679956eb-df91-43e4-a5e6-cbe8da706338\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 70,\n      \"height\": 73,\n      \"rawWidth\": 70,\n      \"rawHeight\": 73,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_zmhl_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1a13452f-e4e7-469f-b08d-e613fc8f1026\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 72,\n  \"height\": 76,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_zmhl_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2934c4f2-190f-4214-b61a-d8f701e2937e\",\n      \"rawTextureUuid\": \"1a13452f-e4e7-469f-b08d-e613fc8f1026\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 72,\n      \"height\": 76,\n      \"rawWidth\": 72,\n      \"rawHeight\": 76,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_zmhl_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"52b54739-a4c9-4fb7-90ed-fcf8f28cb4bc\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 79,\n  \"height\": 79,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_zmhl_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"504ce8b9-7f4c-446c-bcca-fe53702b5ab9\",\n      \"rawTextureUuid\": \"52b54739-a4c9-4fb7-90ed-fcf8f28cb4bc\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 79,\n      \"height\": 79,\n      \"rawWidth\": 79,\n      \"rawHeight\": 79,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_zmhl_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"96f0f06e-8912-4363-8d65-744d6b9991cc\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 79,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_zmhl_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d98604f2-2cad-4fa5-a5c4-fb0b3f82de71\",\n      \"rawTextureUuid\": \"96f0f06e-8912-4363-8d65-744d6b9991cc\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 80,\n      \"height\": 79,\n      \"rawWidth\": 80,\n      \"rawHeight\": 79,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_zmhl_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"cc096ac8-43a7-4969-90e7-638bb76f135e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 83,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_zmhl_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b1725fc6-0759-4097-91a0-0f94073e43af\",\n      \"rawTextureUuid\": \"cc096ac8-43a7-4969-90e7-638bb76f135e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 83,\n      \"height\": 75,\n      \"rawWidth\": 83,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_zmhl_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6998a461-8d05-4c8c-814e-65cbca6caf21\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 77,\n  \"height\": 68,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_zmhl_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4dbbf813-fa59-4a5a-99ca-35e588b8a87a\",\n      \"rawTextureUuid\": \"6998a461-8d05-4c8c-814e-65cbca6caf21\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 77,\n      \"height\": 68,\n      \"rawWidth\": 77,\n      \"rawHeight\": 68,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkm_zmhl_spark2_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5facc568-b6e2-471a-a58f-f39a600c85df\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 77,\n  \"height\": 69,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkm_zmhl_spark2_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"dfc3d794-52d9-4ae9-b4e3-50c4bb505b4a\",\n      \"rawTextureUuid\": \"5facc568-b6e2-471a-a58f-f39a600c85df\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 77,\n      \"height\": 69,\n      \"rawWidth\": 77,\n      \"rawHeight\": 69,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkzm01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3e2f2cb3-54ef-49f2-ad29-a2d5a75a8bbe\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 53,\n  \"height\": 74,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkzm01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"043e50a9-7612-48e1-91b4-04e304a20113\",\n      \"rawTextureUuid\": \"3e2f2cb3-54ef-49f2-ad29-a2d5a75a8bbe\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 53,\n      \"height\": 74,\n      \"rawWidth\": 53,\n      \"rawHeight\": 74,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkzm02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"edb64149-085b-4f38-a9f9-ab91d4ec2a28\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 55,\n  \"height\": 80,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkzm02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ac57cb37-6582-4c5d-93bc-c6e9412e0092\",\n      \"rawTextureUuid\": \"edb64149-085b-4f38-a9f9-ab91d4ec2a28\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 55,\n      \"height\": 80,\n      \"rawWidth\": 55,\n      \"rawHeight\": 80,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkzm03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"8afaebd3-3e90-44b1-ae63-37cd7e73435f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 63,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkzm03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"441b0c89-a8e7-44eb-9b5e-8ab842440f3b\",\n      \"rawTextureUuid\": \"8afaebd3-3e90-44b1-ae63-37cd7e73435f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 63,\n      \"height\": 60,\n      \"rawWidth\": 63,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkzm04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"009997d1-7368-4cd6-8bc7-99def9a16d6b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 67,\n  \"height\": 62,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkzm04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b4c47eec-57a2-476a-a3a8-a88577860a24\",\n      \"rawTextureUuid\": \"009997d1-7368-4cd6-8bc7-99def9a16d6b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 67,\n      \"height\": 62,\n      \"rawWidth\": 67,\n      \"rawHeight\": 62,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkzm05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"adc7db06-5a4a-484f-b77d-24a32b7b0808\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 62,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkzm05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"317de197-14c5-456c-9c6a-aefc3d664c59\",\n      \"rawTextureUuid\": \"adc7db06-5a4a-484f-b77d-24a32b7b0808\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 62,\n      \"height\": 60,\n      \"rawWidth\": 62,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkzm06.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ec5b48a5-3082-48e3-8c1f-f58a5f7262ab\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 67,\n  \"height\": 55,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkzm06\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"117e0ec0-b602-4f1d-8fe2-cc44a04cc8ce\",\n      \"rawTextureUuid\": \"ec5b48a5-3082-48e3-8c1f-f58a5f7262ab\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 67,\n      \"height\": 55,\n      \"rawWidth\": 67,\n      \"rawHeight\": 55,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkzm07.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c873ec4a-ccac-4311-82aa-20c6d7c468ce\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 63,\n  \"height\": 57,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkzm07\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"72053de5-50e8-47bc-9ace-ee9f5a35b138\",\n      \"rawTextureUuid\": \"c873ec4a-ccac-4311-82aa-20c6d7c468ce\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 63,\n      \"height\": 57,\n      \"rawWidth\": 63,\n      \"rawHeight\": 57,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkzmt01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b7884f8b-fa11-41d9-b2f4-b3eedc23de85\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 30,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkzmt01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5d098e0d-a08d-4451-9727-002985781c7e\",\n      \"rawTextureUuid\": \"b7884f8b-fa11-41d9-b2f4-b3eedc23de85\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 30,\n      \"rawWidth\": 31,\n      \"rawHeight\": 30,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkzmt02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f11893e9-b492-4d95-893c-a6aa7cb53124\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 31,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkzmt02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"71dc4e08-85f8-4ba2-a740-110aca482d91\",\n      \"rawTextureUuid\": \"f11893e9-b492-4d95-893c-a6aa7cb53124\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 31,\n      \"rawWidth\": 31,\n      \"rawHeight\": 31,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkzmt03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9983d0d4-71b6-4a48-87f0-2ea8783f4c32\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 30,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkzmt03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"70cad24b-674a-4f59-a69a-b8efa42a3b25\",\n      \"rawTextureUuid\": \"9983d0d4-71b6-4a48-87f0-2ea8783f4c32\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 30,\n      \"rawWidth\": 31,\n      \"rawHeight\": 30,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkzmt04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3f1f914a-00c0-4453-9bbb-fbfe4a830f63\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 31,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkzmt04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"13fd7fc2-9607-42ed-8173-5f967ea71552\",\n      \"rawTextureUuid\": \"3f1f914a-00c0-4453-9bbb-fbfe4a830f63\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 31,\n      \"rawWidth\": 31,\n      \"rawHeight\": 31,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkzmt05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7462dc32-71c5-4104-8bb6-42190b9fcf67\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 30,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkzmt05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1915d628-bc23-4c19-9a6d-b07e434de645\",\n      \"rawTextureUuid\": \"7462dc32-71c5-4104-8bb6-42190b9fcf67\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 30,\n      \"rawWidth\": 31,\n      \"rawHeight\": 30,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkzmt06.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"87e5507f-d5b8-4476-a459-fcdf56cf3307\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 31,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkzmt06\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5554931b-7f33-4fc4-bfe2-11247bcfac68\",\n      \"rawTextureUuid\": \"87e5507f-d5b8-4476-a459-fcdf56cf3307\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 31,\n      \"rawWidth\": 31,\n      \"rawHeight\": 31,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/pkzmt07.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"cd74dd72-4c40-46d5-9f45-f3b568f235bf\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 30,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"pkzmt07\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b0a7b7db-5e96-4b97-b616-381c64cf2d04\",\n      \"rawTextureUuid\": \"cd74dd72-4c40-46d5-9f45-f3b568f235bf\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 30,\n      \"rawWidth\": 31,\n      \"rawHeight\": 30,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sagi_bullet2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"318e1f7e-ff14-4bfe-8290-0301d06a97c4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 17,\n  \"height\": 65,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sagi_bullet2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"caaa636f-1284-4714-adb8-85ce2e6bd755\",\n      \"rawTextureUuid\": \"318e1f7e-ff14-4bfe-8290-0301d06a97c4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 17,\n      \"height\": 65,\n      \"rawWidth\": 17,\n      \"rawHeight\": 65,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sagi_bullet3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e8beb934-45d4-453f-8f66-ac77ddea1d7d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 38,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sagi_bullet3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"792ed494-441b-4791-91e9-b68e2494009c\",\n      \"rawTextureUuid\": \"e8beb934-45d4-453f-8f66-ac77ddea1d7d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 38,\n      \"height\": 90,\n      \"rawWidth\": 38,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sagi_skill_effect1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"877b90b4-711b-447a-bd95-4ec31c1a7bb4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 93,\n  \"height\": 109,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sagi_skill_effect1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"61898679-541a-430c-b35b-987a618c011c\",\n      \"rawTextureUuid\": \"877b90b4-711b-447a-bd95-4ec31c1a7bb4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 93,\n      \"height\": 109,\n      \"rawWidth\": 93,\n      \"rawHeight\": 109,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sagi_skill_effect2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9c363699-d030-4cf6-9104-59f7d2acc740\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 98,\n  \"height\": 144,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sagi_skill_effect2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e9615f6a-a870-433d-a3a0-eaf08f50a6b6\",\n      \"rawTextureUuid\": \"9c363699-d030-4cf6-9104-59f7d2acc740\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 98,\n      \"height\": 144,\n      \"rawWidth\": 98,\n      \"rawHeight\": 144,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sagi_skill_effect3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fd26e945-dc93-431e-869b-dc3d92b8452c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 112,\n  \"height\": 169,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sagi_skill_effect3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e71bf51a-3a29-4cad-8b98-bf8f9651a429\",\n      \"rawTextureUuid\": \"fd26e945-dc93-431e-869b-dc3d92b8452c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 112,\n      \"height\": 169,\n      \"rawWidth\": 112,\n      \"rawHeight\": 169,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sagi_skill_effect4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"03589682-703a-4d6c-a71a-fd57f83dd981\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 119,\n  \"height\": 156,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sagi_skill_effect4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c8230030-72b6-4825-add8-c81edfd4fa4a\",\n      \"rawTextureUuid\": \"03589682-703a-4d6c-a71a-fd57f83dd981\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 119,\n      \"height\": 156,\n      \"rawWidth\": 119,\n      \"rawHeight\": 156,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sagi_skill_effect5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"22997cb7-1947-4bb7-9eb9-0e28cfedb27e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 100,\n  \"height\": 153,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sagi_skill_effect5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"bfd33962-da46-47c0-a54b-e209b2eff635\",\n      \"rawTextureUuid\": \"22997cb7-1947-4bb7-9eb9-0e28cfedb27e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 100,\n      \"height\": 153,\n      \"rawWidth\": 100,\n      \"rawHeight\": 153,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xby_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4589defb-f2d5-484f-8fd9-e52931739dfd\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 89,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xby_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f993c90a-a078-4fe8-aaa6-21a795145915\",\n      \"rawTextureUuid\": \"4589defb-f2d5-484f-8fd9-e52931739dfd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 40,\n      \"height\": 89,\n      \"rawWidth\": 40,\n      \"rawHeight\": 89,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xby_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3fac71db-901c-4265-840f-62f0b5223229\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 72,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xby_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a9c22ff5-dabf-43df-bcfe-a3f9919ede55\",\n      \"rawTextureUuid\": \"3fac71db-901c-4265-840f-62f0b5223229\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 72,\n      \"height\": 75,\n      \"rawWidth\": 72,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xby_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d15a3629-0fae-42ba-8e3b-965bfcae0f89\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 89,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xby_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"386beedd-d36c-4a9e-aaee-a1422acbeed9\",\n      \"rawTextureUuid\": \"d15a3629-0fae-42ba-8e3b-965bfcae0f89\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 89,\n      \"height\": 75,\n      \"rawWidth\": 89,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xby_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9ac6f1a0-c3d3-482c-b49f-ce66abde347b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 90,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xby_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"10327281-3d42-4e52-b844-535b211dd7c9\",\n      \"rawTextureUuid\": \"9ac6f1a0-c3d3-482c-b49f-ce66abde347b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 90,\n      \"height\": 75,\n      \"rawWidth\": 90,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xby_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"88901d00-0e2b-420d-b9c0-4ad5c5042b17\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 90,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xby_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"460b891b-84cc-42bb-a842-b0d2860ae9be\",\n      \"rawTextureUuid\": \"88901d00-0e2b-420d-b9c0-4ad5c5042b17\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 90,\n      \"height\": 75,\n      \"rawWidth\": 90,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xby_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"032cbb17-f349-464f-98a6-bf0c92384458\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 87,\n  \"height\": 80,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xby_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4f04f953-ce13-4d5d-b4c6-9ff6daf708f9\",\n      \"rawTextureUuid\": \"032cbb17-f349-464f-98a6-bf0c92384458\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 87,\n      \"height\": 80,\n      \"rawWidth\": 87,\n      \"rawHeight\": 80,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xby_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d976fbde-dbe1-462b-9741-3699cebe3b57\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 101,\n  \"height\": 101,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xby_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ce2eace7-4a91-49ab-bccd-da08082870a2\",\n      \"rawTextureUuid\": \"d976fbde-dbe1-462b-9741-3699cebe3b57\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 101,\n      \"height\": 101,\n      \"rawWidth\": 101,\n      \"rawHeight\": 101,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xby_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9407a105-06d9-4a8f-b5bb-2772630f4ceb\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 110,\n  \"height\": 114,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xby_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4d8e5c49-27ff-4b9c-8f96-a8fe6c9bf205\",\n      \"rawTextureUuid\": \"9407a105-06d9-4a8f-b5bb-2772630f4ceb\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 110,\n      \"height\": 114,\n      \"rawWidth\": 110,\n      \"rawHeight\": 114,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xby_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"8b2a8f23-80f1-49cc-9745-1328320bb840\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 116,\n  \"height\": 117,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xby_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ad80b46a-8240-45a2-a428-687d5586f323\",\n      \"rawTextureUuid\": \"8b2a8f23-80f1-49cc-9745-1328320bb840\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 116,\n      \"height\": 117,\n      \"rawWidth\": 116,\n      \"rawHeight\": 117,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xby_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6cd799ae-0636-46d1-8300-96a93a27c1b9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 107,\n  \"height\": 116,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xby_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e99c264c-fdb1-466d-a479-627fb6ae3402\",\n      \"rawTextureUuid\": \"6cd799ae-0636-46d1-8300-96a93a27c1b9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 107,\n      \"height\": 116,\n      \"rawWidth\": 107,\n      \"rawHeight\": 116,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xby_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ce7b349c-141a-454b-9a47-09f4480db574\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 108,\n  \"height\": 96,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xby_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1e861295-6e53-4f5e-8c55-66400c434677\",\n      \"rawTextureUuid\": \"ce7b349c-141a-454b-9a47-09f4480db574\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 108,\n      \"height\": 96,\n      \"rawWidth\": 108,\n      \"rawHeight\": 96,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xby_spark2_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2ad0b1f1-5252-4852-81c2-bd2aeb6f73ca\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 102,\n  \"height\": 58,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xby_spark2_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"90d8dd85-2826-49a2-ba69-e361e4d49535\",\n      \"rawTextureUuid\": \"2ad0b1f1-5252-4852-81c2-bd2aeb6f73ca\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 102,\n      \"height\": 58,\n      \"rawWidth\": 102,\n      \"rawHeight\": 58,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"638e4cde-4699-4ee8-9b12-402fc4ed314e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 22,\n  \"height\": 69,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3803e550-4034-4d62-99c3-4ed9d73095b2\",\n      \"rawTextureUuid\": \"638e4cde-4699-4ee8-9b12-402fc4ed314e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 22,\n      \"height\": 69,\n      \"rawWidth\": 22,\n      \"rawHeight\": 69,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_bullet2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fb20b2fa-254e-47e3-af0a-d5cedf363bda\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 48,\n  \"height\": 138,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_bullet2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6e0ebac2-2bf5-4478-8ba4-0bc7b05e4dfa\",\n      \"rawTextureUuid\": \"fb20b2fa-254e-47e3-af0a-d5cedf363bda\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 48,\n      \"height\": 138,\n      \"rawWidth\": 48,\n      \"rawHeight\": 138,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_bullet2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"83cee657-96a3-4e86-a82a-e25e7c0fe318\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 48,\n  \"height\": 143,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_bullet2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ed8a3926-3172-4f2a-a2af-01c76c8aae8e\",\n      \"rawTextureUuid\": \"83cee657-96a3-4e86-a82a-e25e7c0fe318\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 48,\n      \"height\": 143,\n      \"rawWidth\": 48,\n      \"rawHeight\": 143,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_bullet2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"096ac293-0ab0-49df-81ce-73eaa56329e4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 47,\n  \"height\": 147,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_bullet2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c1baf8e0-faca-4170-91b7-f24051c25e9e\",\n      \"rawTextureUuid\": \"096ac293-0ab0-49df-81ce-73eaa56329e4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 47,\n      \"height\": 147,\n      \"rawWidth\": 47,\n      \"rawHeight\": 147,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_bullet2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e3a141b5-9d27-4a23-afd6-52e9de22c22a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 48,\n  \"height\": 135,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_bullet2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"507a8530-b1e5-4df9-9da2-186295bec5a7\",\n      \"rawTextureUuid\": \"e3a141b5-9d27-4a23-afd6-52e9de22c22a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 48,\n      \"height\": 135,\n      \"rawWidth\": 48,\n      \"rawHeight\": 135,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"251f5201-6119-4ad4-b502-9afa5bf5807d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 62,\n  \"height\": 61,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"77ce896d-8285-43ad-ab83-ffedb8cc4c8d\",\n      \"rawTextureUuid\": \"251f5201-6119-4ad4-b502-9afa5bf5807d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 62,\n      \"height\": 61,\n      \"rawWidth\": 62,\n      \"rawHeight\": 61,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ffea7e40-e5a3-443e-9541-fc9a17b16dc8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 93,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f0742788-82de-449f-9e0c-81ce6d8ca4d9\",\n      \"rawTextureUuid\": \"ffea7e40-e5a3-443e-9541-fc9a17b16dc8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 93,\n      \"height\": 90,\n      \"rawWidth\": 93,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fa1ae17a-9521-4e7a-9144-d491ef4b0afe\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 100,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"41efd20b-bbe4-41e6-853c-bc18411c6311\",\n      \"rawTextureUuid\": \"fa1ae17a-9521-4e7a-9144-d491ef4b0afe\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 100,\n      \"height\": 90,\n      \"rawWidth\": 100,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a9985c30-cc45-4907-bca4-013350a6240e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 100,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e04009ed-2a94-4060-bffb-6e1c7fa7b975\",\n      \"rawTextureUuid\": \"a9985c30-cc45-4907-bca4-013350a6240e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 100,\n      \"height\": 90,\n      \"rawWidth\": 100,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"716c6077-e90d-44c9-8689-3081482f58ac\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 90,\n  \"height\": 77,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"73e72072-45af-4de1-8b4b-1dff4e8db269\",\n      \"rawTextureUuid\": \"716c6077-e90d-44c9-8689-3081482f58ac\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 90,\n      \"height\": 77,\n      \"rawWidth\": 90,\n      \"rawHeight\": 77,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5bc76ee3-5e1b-4f1f-bfc9-94192384250d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 100,\n  \"height\": 86,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1fd17263-ce52-4771-a400-25259cc23de9\",\n      \"rawTextureUuid\": \"5bc76ee3-5e1b-4f1f-bfc9-94192384250d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 100,\n      \"height\": 86,\n      \"rawWidth\": 100,\n      \"rawHeight\": 86,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f62c2f56-169f-463a-b20c-9653cae7d01a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 100,\n  \"height\": 82,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0a09c9a0-56ff-464c-a698-6265617ed4c8\",\n      \"rawTextureUuid\": \"f62c2f56-169f-463a-b20c-9653cae7d01a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 100,\n      \"height\": 82,\n      \"rawWidth\": 100,\n      \"rawHeight\": 82,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5e140cf6-38ae-4eea-9505-48b16e6e56ae\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 100,\n  \"height\": 70,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a294ce03-4a6a-4c8c-bb04-b514a38b5206\",\n      \"rawTextureUuid\": \"5e140cf6-38ae-4eea-9505-48b16e6e56ae\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 100,\n      \"height\": 70,\n      \"rawWidth\": 100,\n      \"rawHeight\": 70,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c6f98384-e584-4779-9fe9-7f34a41155f3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 98,\n  \"height\": 70,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d7a10c93-256c-45d7-914c-3d7397292eed\",\n      \"rawTextureUuid\": \"c6f98384-e584-4779-9fe9-7f34a41155f3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 98,\n      \"height\": 70,\n      \"rawWidth\": 98,\n      \"rawHeight\": 70,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/sm_xhl_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0630cd5d-2510-4b9f-821f-2a5ceb38f629\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 87,\n  \"height\": 66,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sm_xhl_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d92bd3dd-20b6-499d-8510-9e8c3403ebfc\",\n      \"rawTextureUuid\": \"0630cd5d-2510-4b9f-821f-2a5ceb38f629\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 87,\n      \"height\": 66,\n      \"rawWidth\": 87,\n      \"rawHeight\": 66,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/smoke.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fe1c18cc-7494-40dc-a68a-9a06ce02b548\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 30,\n  \"height\": 30,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"smoke\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5b06a908-7827-43a1-a723-138a1f23a369\",\n      \"rawTextureUuid\": \"fe1c18cc-7494-40dc-a68a-9a06ce02b548\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 30,\n      \"height\": 30,\n      \"rawWidth\": 30,\n      \"rawHeight\": 30,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3762b5c7-40cc-4349-8872-d4f6c1d0f0b4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 81,\n  \"height\": 69,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"36a17bb2-34bf-46f4-a01d-157f1f3f395a\",\n      \"rawTextureUuid\": \"3762b5c7-40cc-4349-8872-d4f6c1d0f0b4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 81,\n      \"height\": 69,\n      \"rawWidth\": 81,\n      \"rawHeight\": 69,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st010.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"850da85b-b694-4495-b730-e18d91a9c37c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 160,\n  \"height\": 144,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st010\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1cf4af8e-5e17-4dfb-a7d6-cd3cc3ebbb9f\",\n      \"rawTextureUuid\": \"850da85b-b694-4495-b730-e18d91a9c37c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 160,\n      \"height\": 144,\n      \"rawWidth\": 160,\n      \"rawHeight\": 144,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st011.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"aeeb208e-1f84-4c40-af99-5897e0480843\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 152,\n  \"height\": 141,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st011\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b0030db7-4cec-44a0-bb4f-3e285094ba93\",\n      \"rawTextureUuid\": \"aeeb208e-1f84-4c40-af99-5897e0480843\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 152,\n      \"height\": 141,\n      \"rawWidth\": 152,\n      \"rawHeight\": 141,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st012.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6471e856-9ec0-4d6b-b9ef-0b7f3fde6c22\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 152,\n  \"height\": 141,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st012\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"583f5b08-4519-49bc-a4dc-b695e5b95605\",\n      \"rawTextureUuid\": \"6471e856-9ec0-4d6b-b9ef-0b7f3fde6c22\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 152,\n      \"height\": 141,\n      \"rawWidth\": 152,\n      \"rawHeight\": 141,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st013.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d5fb6289-6baa-4763-84de-d3b2103cda2d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 135,\n  \"height\": 136,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st013\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3698d760-972e-452f-b29c-f2c7bce42c3d\",\n      \"rawTextureUuid\": \"d5fb6289-6baa-4763-84de-d3b2103cda2d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 135,\n      \"height\": 136,\n      \"rawWidth\": 135,\n      \"rawHeight\": 136,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st014.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0330a74f-f5ad-483c-a409-b251c99f6515\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 135,\n  \"height\": 136,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st014\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"801648ae-c0af-4be8-8c3a-2e0b17374082\",\n      \"rawTextureUuid\": \"0330a74f-f5ad-483c-a409-b251c99f6515\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 135,\n      \"height\": 136,\n      \"rawWidth\": 135,\n      \"rawHeight\": 136,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st015.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0e0ec293-c69e-40b0-8c25-67cf87d0f0ba\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 135,\n  \"height\": 134,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st015\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"20af44e8-2572-47a7-8bc7-49fd8824563a\",\n      \"rawTextureUuid\": \"0e0ec293-c69e-40b0-8c25-67cf87d0f0ba\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 135,\n      \"height\": 134,\n      \"rawWidth\": 135,\n      \"rawHeight\": 134,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st016.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d667e975-a258-4190-8fbd-bf17463d20b9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 135,\n  \"height\": 134,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st016\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9921a961-4397-44c0-b1f5-76db7e7e27da\",\n      \"rawTextureUuid\": \"d667e975-a258-4190-8fbd-bf17463d20b9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 135,\n      \"height\": 134,\n      \"rawWidth\": 135,\n      \"rawHeight\": 134,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st017.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f4c30176-8dd1-4d0d-8395-e448bc22c9eb\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 135,\n  \"height\": 134,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st017\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6b3ad29d-6966-4f7b-ba87-8870af6f469b\",\n      \"rawTextureUuid\": \"f4c30176-8dd1-4d0d-8395-e448bc22c9eb\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 135,\n      \"height\": 134,\n      \"rawWidth\": 135,\n      \"rawHeight\": 134,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st018.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f161ce20-4d4b-424d-9860-11615cf16b8f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 134,\n  \"height\": 134,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st018\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a1c2b057-411e-4121-a62f-5ad75ae44c23\",\n      \"rawTextureUuid\": \"f161ce20-4d4b-424d-9860-11615cf16b8f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 134,\n      \"height\": 134,\n      \"rawWidth\": 134,\n      \"rawHeight\": 134,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st019.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ccb628b7-a694-4ef3-b808-53299ec38ca0\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 134,\n  \"height\": 134,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st019\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8ad271a7-31cd-41bd-90ed-67e4220b42d3\",\n      \"rawTextureUuid\": \"ccb628b7-a694-4ef3-b808-53299ec38ca0\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 134,\n      \"height\": 134,\n      \"rawWidth\": 134,\n      \"rawHeight\": 134,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1a84162c-a3d0-4d79-88db-f27bffffeb0b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 103,\n  \"height\": 108,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a196dc61-be97-42b4-8827-92a3350ef39b\",\n      \"rawTextureUuid\": \"1a84162c-a3d0-4d79-88db-f27bffffeb0b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 103,\n      \"height\": 108,\n      \"rawWidth\": 103,\n      \"rawHeight\": 108,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st020.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"90ba82d5-ae4c-4f7e-8ef3-ed7d0d51689d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 131,\n  \"height\": 130,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st020\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"fab94a18-6dd7-4337-82af-763c8ceaaedf\",\n      \"rawTextureUuid\": \"90ba82d5-ae4c-4f7e-8ef3-ed7d0d51689d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 131,\n      \"height\": 130,\n      \"rawWidth\": 131,\n      \"rawHeight\": 130,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"cb2acba3-9810-471e-b81e-1f2262f27b3b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 133,\n  \"height\": 134,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3b72c3fd-33a8-4c3b-91c1-ae441bc03a22\",\n      \"rawTextureUuid\": \"cb2acba3-9810-471e-b81e-1f2262f27b3b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 133,\n      \"height\": 134,\n      \"rawWidth\": 133,\n      \"rawHeight\": 134,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ad5a7f76-53e6-422e-a012-685b81190c31\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 134,\n  \"height\": 134,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"70927788-1f91-42f7-8503-7ba703ffacc7\",\n      \"rawTextureUuid\": \"ad5a7f76-53e6-422e-a012-685b81190c31\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 134,\n      \"height\": 134,\n      \"rawWidth\": 134,\n      \"rawHeight\": 134,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"206c6679-b5c7-47e6-ab6b-ab734f0d567f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 135,\n  \"height\": 137,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"785b0819-fed5-485f-aebc-64544876bcae\",\n      \"rawTextureUuid\": \"206c6679-b5c7-47e6-ab6b-ab734f0d567f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 135,\n      \"height\": 137,\n      \"rawWidth\": 135,\n      \"rawHeight\": 137,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st06.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2778d430-2fe7-4fbb-87ed-0b5fc7289a3e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 135,\n  \"height\": 137,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st06\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8a5adcf7-0b30-436d-bd87-3f79afe9650f\",\n      \"rawTextureUuid\": \"2778d430-2fe7-4fbb-87ed-0b5fc7289a3e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 135,\n      \"height\": 137,\n      \"rawWidth\": 135,\n      \"rawHeight\": 137,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st07.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9c332b23-6112-4ab1-a3ec-a2be84abda65\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 140,\n  \"height\": 136,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st07\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9e33f9ef-5964-48fd-a88c-9305d1811f24\",\n      \"rawTextureUuid\": \"9c332b23-6112-4ab1-a3ec-a2be84abda65\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 140,\n      \"height\": 136,\n      \"rawWidth\": 140,\n      \"rawHeight\": 136,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st08.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"352dc3e7-b353-40cf-9d17-d723c60a7f82\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 140,\n  \"height\": 136,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st08\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"05e29fd6-cf1a-4bfd-96c0-f66438fc392a\",\n      \"rawTextureUuid\": \"352dc3e7-b353-40cf-9d17-d723c60a7f82\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 140,\n      \"height\": 136,\n      \"rawWidth\": 140,\n      \"rawHeight\": 136,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/st09.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f3e11188-9c7d-4b45-b888-f55c28e0b706\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 160,\n  \"height\": 144,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"st09\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"66cba903-3047-4a24-a866-6486cb10095e\",\n      \"rawTextureUuid\": \"f3e11188-9c7d-4b45-b888-f55c28e0b706\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 160,\n      \"height\": 144,\n      \"rawWidth\": 160,\n      \"rawHeight\": 144,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_hf_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"cdc0555b-0c00-49ee-b898-c1b61114d67f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 37,\n  \"height\": 56,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_hf_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1e672471-9582-443c-af09-baaa639b3c33\",\n      \"rawTextureUuid\": \"cdc0555b-0c00-49ee-b898-c1b61114d67f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 37,\n      \"height\": 56,\n      \"rawWidth\": 37,\n      \"rawHeight\": 56,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_hf_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"af90eb23-bcc0-4a25-9c16-79eea49b4de4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 81,\n  \"height\": 69,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_hf_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8f77fd01-b75b-417c-bba3-a49f1f8e30e1\",\n      \"rawTextureUuid\": \"af90eb23-bcc0-4a25-9c16-79eea49b4de4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 81,\n      \"height\": 69,\n      \"rawWidth\": 81,\n      \"rawHeight\": 69,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_hf_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b2ef8902-ebe3-4f90-a305-efa45710e9c1\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 101,\n  \"height\": 86,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_hf_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7dd2d789-82ec-4e29-a7c9-d113a4ab31e2\",\n      \"rawTextureUuid\": \"b2ef8902-ebe3-4f90-a305-efa45710e9c1\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 101,\n      \"height\": 86,\n      \"rawWidth\": 101,\n      \"rawHeight\": 86,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_hf_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0640ed87-4054-4f8f-b48a-64e5b27be780\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 110,\n  \"height\": 96,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_hf_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a307df78-9935-4e56-965a-8b553e34eb21\",\n      \"rawTextureUuid\": \"0640ed87-4054-4f8f-b48a-64e5b27be780\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 110,\n      \"height\": 96,\n      \"rawWidth\": 110,\n      \"rawHeight\": 96,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_hf_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5707096d-eafe-46fa-9d7c-f6a1f44b674d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 107,\n  \"height\": 89,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_hf_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d3733273-e71c-4009-abd1-c5164da19afd\",\n      \"rawTextureUuid\": \"5707096d-eafe-46fa-9d7c-f6a1f44b674d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 107,\n      \"height\": 89,\n      \"rawWidth\": 107,\n      \"rawHeight\": 89,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_hf_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c42f1491-5079-4e32-a5d5-6af530760802\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 57,\n  \"height\": 95,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_hf_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ff535b45-34be-4758-ad7a-6dc7a8e37309\",\n      \"rawTextureUuid\": \"c42f1491-5079-4e32-a5d5-6af530760802\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 57,\n      \"height\": 95,\n      \"rawWidth\": 57,\n      \"rawHeight\": 95,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_hf_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"86a5aad5-ab75-4208-8a18-6c3eac556b0e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 73,\n  \"height\": 99,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_hf_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1a921e0a-9998-4996-8d16-47488b4b1ea4\",\n      \"rawTextureUuid\": \"86a5aad5-ab75-4208-8a18-6c3eac556b0e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 73,\n      \"height\": 99,\n      \"rawWidth\": 73,\n      \"rawHeight\": 99,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_hf_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f7db9aab-9566-4577-bdef-277ce03d7054\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 74,\n  \"height\": 103,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_hf_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"aff24d40-6a58-45fd-bc02-b87f8d7237af\",\n      \"rawTextureUuid\": \"f7db9aab-9566-4577-bdef-277ce03d7054\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 74,\n      \"height\": 103,\n      \"rawWidth\": 74,\n      \"rawHeight\": 103,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_hf_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9a8ca9d2-ff25-47f0-8c67-1411302fbe75\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 86,\n  \"height\": 103,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_hf_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0534f6f3-e388-4cd3-a7ab-76b0badf612b\",\n      \"rawTextureUuid\": \"9a8ca9d2-ff25-47f0-8c67-1411302fbe75\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 86,\n      \"height\": 103,\n      \"rawWidth\": 86,\n      \"rawHeight\": 103,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_hf_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b14d09d1-3b88-4853-a53f-88a8062358a6\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 85,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_hf_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"734c0d2b-63f5-4ef4-baa0-1e2c5e3b385d\",\n      \"rawTextureUuid\": \"b14d09d1-3b88-4853-a53f-88a8062358a6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 85,\n      \"height\": 104,\n      \"rawWidth\": 85,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_hf_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7a5a9999-07d7-44c7-93a5-976ddb89adfb\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 87,\n  \"height\": 91,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_hf_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b4206356-ba32-4d74-9b99-d6fcff5fc4bc\",\n      \"rawTextureUuid\": \"7a5a9999-07d7-44c7-93a5-976ddb89adfb\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 87,\n      \"height\": 91,\n      \"rawWidth\": 87,\n      \"rawHeight\": 91,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_hf_spark2_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e3d87898-8cb8-42cc-b424-ab6d488804f1\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 75,\n  \"height\": 92,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_hf_spark2_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9808beb2-d35b-4dbf-8645-fd2e23a441e4\",\n      \"rawTextureUuid\": \"e3d87898-8cb8-42cc-b424-ab6d488804f1\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 75,\n      \"height\": 92,\n      \"rawWidth\": 75,\n      \"rawHeight\": 92,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_tz_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"06f7fdad-2a1d-4c41-b4bd-375548da830a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 37,\n  \"height\": 56,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_tz_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7b4d4da3-2e38-41ae-b30b-99e6c189b642\",\n      \"rawTextureUuid\": \"06f7fdad-2a1d-4c41-b4bd-375548da830a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 37,\n      \"height\": 56,\n      \"rawWidth\": 37,\n      \"rawHeight\": 56,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_tz_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"eedfb3d5-f9af-4d1e-b5a1-e13a8d69aeac\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 83,\n  \"height\": 69,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_tz_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b2b95ae0-a0a2-439a-96da-16675076499b\",\n      \"rawTextureUuid\": \"eedfb3d5-f9af-4d1e-b5a1-e13a8d69aeac\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 83,\n      \"height\": 69,\n      \"rawWidth\": 83,\n      \"rawHeight\": 69,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_tz_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1c1e5909-a55b-4bb0-8850-6427cc6dc115\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 111,\n  \"height\": 105,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_tz_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c0909499-3ee1-4ca5-a346-90bee39ef955\",\n      \"rawTextureUuid\": \"1c1e5909-a55b-4bb0-8850-6427cc6dc115\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 111,\n      \"height\": 105,\n      \"rawWidth\": 111,\n      \"rawHeight\": 105,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_tz_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2b7efdb9-2a4f-44b4-8acd-ed25de572895\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 113,\n  \"height\": 105,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_tz_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2a7b5c42-9d07-417f-be40-14cb850350e4\",\n      \"rawTextureUuid\": \"2b7efdb9-2a4f-44b4-8acd-ed25de572895\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 113,\n      \"height\": 105,\n      \"rawWidth\": 113,\n      \"rawHeight\": 105,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_tz_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b3fbfebf-159f-4954-a469-5f5ca1ebc6f8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 111,\n  \"height\": 105,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_tz_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cc6313ce-8343-4035-a458-127f6e28ce64\",\n      \"rawTextureUuid\": \"b3fbfebf-159f-4954-a469-5f5ca1ebc6f8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 111,\n      \"height\": 105,\n      \"rawWidth\": 111,\n      \"rawHeight\": 105,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_tz_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"cde8f883-f5c7-40c6-a6d7-cc611b00991b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 73,\n  \"height\": 70,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_tz_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9e1d1574-17ed-4a51-9ac2-193ff15a89c7\",\n      \"rawTextureUuid\": \"cde8f883-f5c7-40c6-a6d7-cc611b00991b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 73,\n      \"height\": 70,\n      \"rawWidth\": 73,\n      \"rawHeight\": 70,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_tz_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5ff2b78c-dea2-4f0c-85ce-35f3f924d499\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 95,\n  \"height\": 102,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_tz_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"517ebab2-6c04-46ba-ab12-dec48eca911f\",\n      \"rawTextureUuid\": \"5ff2b78c-dea2-4f0c-85ce-35f3f924d499\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 95,\n      \"height\": 102,\n      \"rawWidth\": 95,\n      \"rawHeight\": 102,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_tz_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6d2f06b8-73d4-4da0-90ae-da456e59eb1b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 103,\n  \"height\": 111,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_tz_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5774436b-5b6f-4ea4-a1e1-8b749af19bc8\",\n      \"rawTextureUuid\": \"6d2f06b8-73d4-4da0-90ae-da456e59eb1b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 103,\n      \"height\": 111,\n      \"rawWidth\": 103,\n      \"rawHeight\": 111,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_tz_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6a859261-f0b8-4cbc-a794-f48b61424b33\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 107,\n  \"height\": 117,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_tz_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b7056000-9c3c-464a-86d5-2fd3ab8bce09\",\n      \"rawTextureUuid\": \"6a859261-f0b8-4cbc-a794-f48b61424b33\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 107,\n      \"height\": 117,\n      \"rawWidth\": 107,\n      \"rawHeight\": 117,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_tz_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"63505310-824f-447f-883f-5d03c007cbb4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 112,\n  \"height\": 121,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_tz_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f0c78236-a5ce-4ddb-91e2-23d5e9b09bf2\",\n      \"rawTextureUuid\": \"63505310-824f-447f-883f-5d03c007cbb4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 112,\n      \"height\": 121,\n      \"rawWidth\": 112,\n      \"rawHeight\": 121,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_tz_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"13a60105-8673-4a0b-a0cf-8ad1b86b6d62\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 115,\n  \"height\": 131,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_tz_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"14d8b3d1-b411-4ae1-8918-4fadbe88f2ee\",\n      \"rawTextureUuid\": \"13a60105-8673-4a0b-a0cf-8ad1b86b6d62\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 115,\n      \"height\": 131,\n      \"rawWidth\": 115,\n      \"rawHeight\": 131,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_tz_spark2_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c0e0929f-1345-4dfb-a568-6e7aacf14df5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 120,\n  \"height\": 135,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_tz_spark2_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ea453cfe-1142-41e4-98c1-65a0d987eabb\",\n      \"rawTextureUuid\": \"c0e0929f-1345-4dfb-a568-6e7aacf14df5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 120,\n      \"height\": 135,\n      \"rawWidth\": 120,\n      \"rawHeight\": 135,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tf_tz_spark2_8.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"449bc214-f94f-45ba-a6de-3324f21364c7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 94,\n  \"height\": 130,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tf_tz_spark2_8\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"619146c1-026a-4e68-acfa-b93855f19b98\",\n      \"rawTextureUuid\": \"449bc214-f94f-45ba-a6de-3324f21364c7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 94,\n      \"height\": 130,\n      \"rawWidth\": 94,\n      \"rawHeight\": 130,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tt_all_bullet.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"915125d5-be15-4ddf-a450-22d9e90c3271\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 26,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tt_all_bullet\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9a8f5253-a888-4245-9284-2b73e0d68931\",\n      \"rawTextureUuid\": \"915125d5-be15-4ddf-a450-22d9e90c3271\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 26,\n      \"height\": 90,\n      \"rawWidth\": 26,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tt_all_spark1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9968c74b-7a48-4732-8b34-a72281c9c70d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 81,\n  \"height\": 78,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tt_all_spark1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"75379e71-cf96-4aaa-b02b-503d929c7a2e\",\n      \"rawTextureUuid\": \"9968c74b-7a48-4732-8b34-a72281c9c70d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 81,\n      \"height\": 78,\n      \"rawWidth\": 81,\n      \"rawHeight\": 78,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tt_all_spark1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0a4a7b8d-0d9e-49df-a2db-dc42b8ac42bd\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 69,\n  \"height\": 66,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tt_all_spark1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"df8bab2c-e5e6-44ae-b6e5-e8c49563d12c\",\n      \"rawTextureUuid\": \"0a4a7b8d-0d9e-49df-a2db-dc42b8ac42bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 69,\n      \"height\": 66,\n      \"rawWidth\": 69,\n      \"rawHeight\": 66,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tt_all_spark1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b384c8d8-3d98-496b-868b-82ad21c6a674\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 73,\n  \"height\": 66,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tt_all_spark1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6f44179e-7d33-4a84-af51-757a8e21b8ec\",\n      \"rawTextureUuid\": \"b384c8d8-3d98-496b-868b-82ad21c6a674\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 73,\n      \"height\": 66,\n      \"rawWidth\": 73,\n      \"rawHeight\": 66,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tt_all_spark1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b9943291-1ef1-4725-9ec8-1771e01d9dc7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 74,\n  \"height\": 66,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tt_all_spark1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"eb0e00e7-5dd3-40a3-9023-16d0b7a71043\",\n      \"rawTextureUuid\": \"b9943291-1ef1-4725-9ec8-1771e01d9dc7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 74,\n      \"height\": 66,\n      \"rawWidth\": 74,\n      \"rawHeight\": 66,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tt_all_spark2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"8e668daa-063b-4b6d-bb72-58b7b9d468db\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 72,\n  \"height\": 65,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tt_all_spark2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2364f522-66a0-481a-bdd6-d5b106140668\",\n      \"rawTextureUuid\": \"8e668daa-063b-4b6d-bb72-58b7b9d468db\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 72,\n      \"height\": 65,\n      \"rawWidth\": 72,\n      \"rawHeight\": 65,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tt_all_spark2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"897744c8-d318-4017-a33c-3074b6dbc58e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 85,\n  \"height\": 67,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tt_all_spark2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"73d5b88b-95e5-4b8a-a077-f6480af225fa\",\n      \"rawTextureUuid\": \"897744c8-d318-4017-a33c-3074b6dbc58e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 85,\n      \"height\": 67,\n      \"rawWidth\": 85,\n      \"rawHeight\": 67,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tt_all_spark2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ca9793bc-4b9a-42d0-953b-6e4a275413ed\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 85,\n  \"height\": 64,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tt_all_spark2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"56cde4f2-71b0-451f-93e0-3c1b6463bd09\",\n      \"rawTextureUuid\": \"ca9793bc-4b9a-42d0-953b-6e4a275413ed\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 85,\n      \"height\": 64,\n      \"rawWidth\": 85,\n      \"rawHeight\": 64,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tt_all_spark2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"864dfc9d-7c19-4bb9-ba7d-7664f828187c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 84,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tt_all_spark2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9edd5371-0aef-4988-991b-26639b8519f5\",\n      \"rawTextureUuid\": \"864dfc9d-7c19-4bb9-ba7d-7664f828187c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 84,\n      \"height\": 60,\n      \"rawWidth\": 84,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tt_all_spark2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"67f57526-b602-4e72-8b0d-536484491fa4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 84,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tt_all_spark2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"975820aa-dd68-4993-967c-6c7529d8324c\",\n      \"rawTextureUuid\": \"67f57526-b602-4e72-8b0d-536484491fa4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 84,\n      \"height\": 60,\n      \"rawWidth\": 84,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tt_all_spark2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b778ec5f-476d-4290-a0d4-348cc46e7c26\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 83,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tt_all_spark2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7eb8c79d-cd88-49e5-a24b-c13bb3239d7d\",\n      \"rawTextureUuid\": \"b778ec5f-476d-4290-a0d4-348cc46e7c26\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 83,\n      \"height\": 50,\n      \"rawWidth\": 83,\n      \"rawHeight\": 50,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/tt_all_spark2_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c4eee5f6-e167-441a-ba4f-2d36a09b8aac\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 84,\n  \"height\": 52,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tt_all_spark2_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"640067d4-149f-43f1-bdeb-ab625e6739f2\",\n      \"rawTextureUuid\": \"c4eee5f6-e167-441a-ba4f-2d36a09b8aac\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 84,\n      \"height\": 52,\n      \"rawWidth\": 84,\n      \"rawHeight\": 52,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/txhd01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4ddc1e1e-bba7-4dd2-999a-11677a5ca70b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"txhd01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e5f4cbf0-a018-4772-8c33-60931013a959\",\n      \"rawTextureUuid\": \"4ddc1e1e-bba7-4dd2-999a-11677a5ca70b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/txhd02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"75bd7a2c-4eb4-45f4-85c3-42acac2d6808\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"txhd02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ca2a3af9-57d8-4d2f-b509-c19affb34a26\",\n      \"rawTextureUuid\": \"75bd7a2c-4eb4-45f4-85c3-42acac2d6808\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/txhd03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2ee38d15-2f68-45a7-a160-29324abd2f3c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"txhd03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"383b083e-b6a8-4f0d-93f4-63f5e636e9b8\",\n      \"rawTextureUuid\": \"2ee38d15-2f68-45a7-a160-29324abd2f3c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/txhd04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"931d908a-488c-4a85-9df3-036ee5a52197\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"txhd04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1dba4ef0-13fe-4de3-831b-dbacafdaa311\",\n      \"rawTextureUuid\": \"931d908a-488c-4a85-9df3-036ee5a52197\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/txhd05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"041a1e02-17cc-43fb-aa21-a47db7822f44\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"txhd05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"48ca4635-6ffe-4c9e-ae79-1ad1ba599d5e\",\n      \"rawTextureUuid\": \"041a1e02-17cc-43fb-aa21-a47db7822f44\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 75,\n      \"rawWidth\": 66,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/yx01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f1631004-0c73-459d-a6fa-349a1499682c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 47,\n  \"height\": 45,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"edf2d436-dbda-4399-934f-b7cd09dc4f61\",\n      \"rawTextureUuid\": \"f1631004-0c73-459d-a6fa-349a1499682c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 47,\n      \"height\": 45,\n      \"rawWidth\": 47,\n      \"rawHeight\": 45,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/yx010.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e2d2aee4-d3f7-49a2-a54a-607fb6ad9e34\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 47,\n  \"height\": 45,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx010\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1ec6279f-01e9-4a90-bae6-db58bdcaee4c\",\n      \"rawTextureUuid\": \"e2d2aee4-d3f7-49a2-a54a-607fb6ad9e34\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 47,\n      \"height\": 45,\n      \"rawWidth\": 47,\n      \"rawHeight\": 45,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/yx02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"63515da1-e97c-46b2-bebc-a49d7b7323c5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 47,\n  \"height\": 47,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"bc47e320-a844-4c1e-8d81-f5be4a8b6214\",\n      \"rawTextureUuid\": \"63515da1-e97c-46b2-bebc-a49d7b7323c5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 47,\n      \"height\": 47,\n      \"rawWidth\": 47,\n      \"rawHeight\": 47,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/yx03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"087a5f61-bd7a-4f2e-99b6-7db34e3bfaee\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 47,\n  \"height\": 49,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"319c3ca4-34bb-4f68-8bee-e6533186198b\",\n      \"rawTextureUuid\": \"087a5f61-bd7a-4f2e-99b6-7db34e3bfaee\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 47,\n      \"height\": 49,\n      \"rawWidth\": 47,\n      \"rawHeight\": 49,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/yx04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"092b6b01-7f65-4489-ad80-e8a8644835ed\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 50,\n  \"height\": 53,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d00b5a7e-3c1e-47b9-bae1-ccf54bfa6093\",\n      \"rawTextureUuid\": \"092b6b01-7f65-4489-ad80-e8a8644835ed\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 50,\n      \"height\": 53,\n      \"rawWidth\": 50,\n      \"rawHeight\": 53,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/yx05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f3ce4867-237f-41dd-9fca-982f2dbfbe2e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 52,\n  \"height\": 53,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3542ad25-b8bf-4fdc-b94d-b322ff9aa414\",\n      \"rawTextureUuid\": \"f3ce4867-237f-41dd-9fca-982f2dbfbe2e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 52,\n      \"height\": 53,\n      \"rawWidth\": 52,\n      \"rawHeight\": 53,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/yx06.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"dbba79a1-c2e4-4deb-820a-60feb866ef81\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 57,\n  \"height\": 55,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx06\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"31de81d5-a999-43a1-8b26-5b9a690cd2ec\",\n      \"rawTextureUuid\": \"dbba79a1-c2e4-4deb-820a-60feb866ef81\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 57,\n      \"height\": 55,\n      \"rawWidth\": 57,\n      \"rawHeight\": 55,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/yx07.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c35727c3-e3b4-4054-89a4-a5484b674cce\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 57,\n  \"height\": 54,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx07\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"26088977-bb7e-445c-8de8-c5653828eed1\",\n      \"rawTextureUuid\": \"c35727c3-e3b4-4054-89a4-a5484b674cce\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 57,\n      \"height\": 54,\n      \"rawWidth\": 57,\n      \"rawHeight\": 54,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/yx08.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"8e05544f-f7cb-40d6-bb25-aa958914ef2a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 53,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx08\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cacf8df7-a3ad-4a0d-b353-b59dc174b74e\",\n      \"rawTextureUuid\": \"8e05544f-f7cb-40d6-bb25-aa958914ef2a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 53,\n      \"rawWidth\": 54,\n      \"rawHeight\": 53,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/yx09.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d2eedf22-3c62-4c57-a737-d390c445e9dd\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 52,\n  \"height\": 47,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx09\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b3cac3b1-721b-4ea5-9fa6-f714cdd6066a\",\n      \"rawTextureUuid\": \"d2eedf22-3c62-4c57-a737-d390c445e9dd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 52,\n      \"height\": 47,\n      \"rawWidth\": 52,\n      \"rawHeight\": 47,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjs01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"07c64583-c017-4e38-a11d-504dfafe56a2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 48,\n  \"height\": 35,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjs01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1a438b4e-26ba-4ced-9801-3dc9234139a7\",\n      \"rawTextureUuid\": \"07c64583-c017-4e38-a11d-504dfafe56a2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 48,\n      \"height\": 35,\n      \"rawWidth\": 48,\n      \"rawHeight\": 35,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjs010.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"90f9a9d9-9803-4e64-8e04-e1d9717e049a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 36,\n  \"height\": 43,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjs010\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"af544b87-95bb-4110-88a1-200e60cb0c29\",\n      \"rawTextureUuid\": \"90f9a9d9-9803-4e64-8e04-e1d9717e049a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 36,\n      \"height\": 43,\n      \"rawWidth\": 36,\n      \"rawHeight\": 43,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjs02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"465a8189-1241-41b7-a1c2-393351e22ee6\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 51,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjs02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"df2604a5-eb40-429d-86d9-2ec15b2dd2a3\",\n      \"rawTextureUuid\": \"465a8189-1241-41b7-a1c2-393351e22ee6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 51,\n      \"height\": 50,\n      \"rawWidth\": 51,\n      \"rawHeight\": 50,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjs03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b89fef54-2c69-45d1-8ed7-e903a9a4d031\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 53,\n  \"height\": 49,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjs03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c8f2ce5a-eb96-4e20-8c01-515f55007ecd\",\n      \"rawTextureUuid\": \"b89fef54-2c69-45d1-8ed7-e903a9a4d031\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 53,\n      \"height\": 49,\n      \"rawWidth\": 53,\n      \"rawHeight\": 49,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjs04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"12d8dc96-09d1-4638-957e-af8120bd6441\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 48,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjs04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ffa6914a-f5d7-42b2-84a3-61c7597d8fb6\",\n      \"rawTextureUuid\": \"12d8dc96-09d1-4638-957e-af8120bd6441\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 48,\n      \"rawWidth\": 54,\n      \"rawHeight\": 48,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjs05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2cbdbc10-4de9-4021-bf19-a348a46444b0\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 56,\n  \"height\": 55,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjs05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"160954f8-cb39-4350-927c-e1749268aa01\",\n      \"rawTextureUuid\": \"2cbdbc10-4de9-4021-bf19-a348a46444b0\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 56,\n      \"height\": 55,\n      \"rawWidth\": 56,\n      \"rawHeight\": 55,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjs06.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"582f5a24-395d-47b1-b248-718e36cb40d8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 56,\n  \"height\": 53,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjs06\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9ed44c97-4ec2-4cec-805d-e60cc9725a46\",\n      \"rawTextureUuid\": \"582f5a24-395d-47b1-b248-718e36cb40d8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 56,\n      \"height\": 53,\n      \"rawWidth\": 56,\n      \"rawHeight\": 53,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjs07.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d7c3cc1e-d30a-4716-b527-5e5bee9be617\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 47,\n  \"height\": 55,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjs07\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"737f79bb-cc57-4c08-bbe8-92e6a7080384\",\n      \"rawTextureUuid\": \"d7c3cc1e-d30a-4716-b527-5e5bee9be617\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 47,\n      \"height\": 55,\n      \"rawWidth\": 47,\n      \"rawHeight\": 55,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjs08.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1d2f6890-21df-4361-b97f-b3b9f29f30db\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 44,\n  \"height\": 54,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjs08\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"92a2dfdf-8dfa-4683-88a0-ebf2373a19cd\",\n      \"rawTextureUuid\": \"1d2f6890-21df-4361-b97f-b3b9f29f30db\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 44,\n      \"height\": 54,\n      \"rawWidth\": 44,\n      \"rawHeight\": 54,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjs09.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"428b9cef-43b6-451e-819a-a2b34fa72999\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 38,\n  \"height\": 45,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjs09\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a00ee02c-0c64-42fc-b289-42ada4bb9f3d\",\n      \"rawTextureUuid\": \"428b9cef-43b6-451e-819a-a2b34fa72999\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 38,\n      \"height\": 45,\n      \"rawWidth\": 38,\n      \"rawHeight\": 45,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjst01.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3d252acf-ae8d-40da-a7c4-bc85bc44567f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 30,\n  \"height\": 27,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjst01\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e3d2e7f7-235e-4097-b7e8-10b82f31f8b4\",\n      \"rawTextureUuid\": \"3d252acf-ae8d-40da-a7c4-bc85bc44567f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 30,\n      \"height\": 27,\n      \"rawWidth\": 30,\n      \"rawHeight\": 27,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjst02.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"52bcd59f-807a-4dd3-8cf9-84912b0b2fa8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 30,\n  \"height\": 27,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjst02\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6a63e645-1958-4053-af03-5825219d0a8b\",\n      \"rawTextureUuid\": \"52bcd59f-807a-4dd3-8cf9-84912b0b2fa8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 30,\n      \"height\": 27,\n      \"rawWidth\": 30,\n      \"rawHeight\": 27,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjst03.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a684966f-70a3-4022-8e79-644c13eddc71\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 30,\n  \"height\": 28,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjst03\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6a33077f-afeb-4a3c-9a8b-1b82da6f993c\",\n      \"rawTextureUuid\": \"a684966f-70a3-4022-8e79-644c13eddc71\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 30,\n      \"height\": 28,\n      \"rawWidth\": 30,\n      \"rawHeight\": 28,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjst04.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"93ee7007-f3b7-4567-ad57-729d5ae4c1cd\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 31,\n  \"height\": 28,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjst04\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"29d9cad0-0952-4a0f-850f-7509e35cfd8f\",\n      \"rawTextureUuid\": \"93ee7007-f3b7-4567-ad57-729d5ae4c1cd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 31,\n      \"height\": 28,\n      \"rawWidth\": 31,\n      \"rawHeight\": 28,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjst05.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"38849a56-4b01-4485-ba11-b1d2a1a5c8c4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 30,\n  \"height\": 28,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjst05\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"45037f59-2d0f-4c48-852b-6aceda9ec08f\",\n      \"rawTextureUuid\": \"38849a56-4b01-4485-ba11-b1d2a1a5c8c4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 30,\n      \"height\": 28,\n      \"rawWidth\": 30,\n      \"rawHeight\": 28,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjst06.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5965ebb6-a126-4591-ab16-841a914f0832\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 30,\n  \"height\": 27,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjst06\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"547fecb5-3ca4-4fd2-9533-58799d0feaf0\",\n      \"rawTextureUuid\": \"5965ebb6-a126-4591-ab16-841a914f0832\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 30,\n      \"height\": 27,\n      \"rawWidth\": 30,\n      \"rawHeight\": 27,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect/zdjst07.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e51f1f90-f11b-4413-8b04-4d47a4f95c3b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 30,\n  \"height\": 27,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zdjst07\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a2909018-fd0c-4dc1-b527-409f10bb70d9\",\n      \"rawTextureUuid\": \"e51f1f90-f11b-4413-8b04-4d47a4f95c3b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 30,\n      \"height\": 27,\n      \"rawWidth\": 30,\n      \"rawHeight\": 27,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/BattleEffect.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"95204e8b-fa9a-49e2-81da-bac3d86b19dc\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/boom_effect0001.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"382d8f20-8385-4c9c-a0cd-5765d72ef285\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 128,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"boom_effect0001\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ec2970b7-5ace-4d8b-91a8-e6be10a3c345\",\n      \"rawTextureUuid\": \"382d8f20-8385-4c9c-a0cd-5765d72ef285\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 128,\n      \"rawWidth\": 104,\n      \"rawHeight\": 128,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/boom_effect0002.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"89404c60-aaef-43e4-853b-2bb0eb2bf551\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 121,\n  \"height\": 138,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"boom_effect0002\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9dc44144-30d5-4de1-8485-3760b0c0cfb7\",\n      \"rawTextureUuid\": \"89404c60-aaef-43e4-853b-2bb0eb2bf551\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 121,\n      \"height\": 138,\n      \"rawWidth\": 121,\n      \"rawHeight\": 138,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/boom_effect0003.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"01fb012b-b417-4566-a51f-ba5e2b3a2a08\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 153,\n  \"height\": 150,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"boom_effect0003\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"432adaab-8f75-4cc9-a744-373f04914a67\",\n      \"rawTextureUuid\": \"01fb012b-b417-4566-a51f-ba5e2b3a2a08\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 153,\n      \"height\": 150,\n      \"rawWidth\": 153,\n      \"rawHeight\": 150,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/boom_effect0004.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"67358bff-add2-45ac-a58c-598d1d1db17f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 165,\n  \"height\": 159,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"boom_effect0004\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"da86d859-3301-406e-8e95-8cb891d86ca0\",\n      \"rawTextureUuid\": \"67358bff-add2-45ac-a58c-598d1d1db17f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 165,\n      \"height\": 159,\n      \"rawWidth\": 165,\n      \"rawHeight\": 159,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/boom_effect0005.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ec34c187-6218-4f43-b57a-2902bcc5c2ce\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 85,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"boom_effect0005\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"11043e89-1db8-4c61-b535-5a26045c068b\",\n      \"rawTextureUuid\": \"ec34c187-6218-4f43-b57a-2902bcc5c2ce\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 85,\n      \"height\": 90,\n      \"rawWidth\": 85,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/boom_effect0006.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f0514e61-4d7c-4a0b-a9e7-b091bd1b3bbe\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 83,\n  \"height\": 82,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"boom_effect0006\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"48dc95a4-abdb-4d67-a882-15558baeb6bb\",\n      \"rawTextureUuid\": \"f0514e61-4d7c-4a0b-a9e7-b091bd1b3bbe\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 83,\n      \"height\": 82,\n      \"rawWidth\": 83,\n      \"rawHeight\": 82,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_0.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5664095e-a408-4d58-98ab-8b40d872e3bf\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 1,\n  \"height\": 1,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"39b876c4-9f3d-4755-b6cd-0c3838aae7c2\",\n      \"rawTextureUuid\": \"5664095e-a408-4d58-98ab-8b40d872e3bf\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 1,\n      \"height\": 1,\n      \"rawWidth\": 1,\n      \"rawHeight\": 1,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fa3f57f2-61f1-4975-a22c-2375df19166e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 29,\n  \"height\": 35,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"deb47514-6758-4204-aae4-62ad0425459d\",\n      \"rawTextureUuid\": \"fa3f57f2-61f1-4975-a22c-2375df19166e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 29,\n      \"height\": 35,\n      \"rawWidth\": 29,\n      \"rawHeight\": 35,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_10.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"dc901e30-3327-443b-b428-5604264a354a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 73,\n  \"height\": 70,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_10\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"20c1f023-4fed-4bce-8676-8067c99aface\",\n      \"rawTextureUuid\": \"dc901e30-3327-443b-b428-5604264a354a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 73,\n      \"height\": 70,\n      \"rawWidth\": 73,\n      \"rawHeight\": 70,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_11.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5767fe39-bfdc-4931-a9d5-19168575778c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 76,\n  \"height\": 68,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_11\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3347fdc3-82df-4da2-95f6-6754b1ec10fa\",\n      \"rawTextureUuid\": \"5767fe39-bfdc-4931-a9d5-19168575778c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 76,\n      \"height\": 68,\n      \"rawWidth\": 76,\n      \"rawHeight\": 68,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_12.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"75922bbc-e4bc-4fe8-a31e-83d74197997f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 77,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_12\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a05b6f5a-fc59-4dd5-b565-fe87e3457716\",\n      \"rawTextureUuid\": \"75922bbc-e4bc-4fe8-a31e-83d74197997f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 77,\n      \"height\": 40,\n      \"rawWidth\": 77,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_13.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"73b87da2-e53b-4df4-9418-aba6e393c1e0\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_13\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"95200270-1aff-4afb-84e1-5b3b0aedb5a3\",\n      \"rawTextureUuid\": \"73b87da2-e53b-4df4-9418-aba6e393c1e0\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 80,\n      \"height\": 40,\n      \"rawWidth\": 80,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_14.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"05435469-d7be-4036-8a79-1414cd81a75d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 47,\n  \"height\": 15,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_14\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5062bef5-371c-4c09-9ef0-0ac3c3e04eeb\",\n      \"rawTextureUuid\": \"05435469-d7be-4036-8a79-1414cd81a75d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 47,\n      \"height\": 15,\n      \"rawWidth\": 47,\n      \"rawHeight\": 15,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_15.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0678a2a4-ff3d-4b73-aca5-f086211ede78\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 1,\n  \"height\": 1,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_15\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"27be3028-5beb-4a17-8a7b-57768f0fec43\",\n      \"rawTextureUuid\": \"0678a2a4-ff3d-4b73-aca5-f086211ede78\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 1,\n      \"height\": 1,\n      \"rawWidth\": 1,\n      \"rawHeight\": 1,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1bda0fe3-cdef-4db8-99c5-2d3f4a3fd0b6\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 42,\n  \"height\": 68,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f1917ca3-1116-49a3-8b69-14ea9a0480bc\",\n      \"rawTextureUuid\": \"1bda0fe3-cdef-4db8-99c5-2d3f4a3fd0b6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 42,\n      \"height\": 68,\n      \"rawWidth\": 42,\n      \"rawHeight\": 68,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c8a3135f-d905-4930-955b-b1dfe12c61c8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 47,\n  \"height\": 62,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"99d21fcc-b9ce-47ef-8b25-7599890569cf\",\n      \"rawTextureUuid\": \"c8a3135f-d905-4930-955b-b1dfe12c61c8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 47,\n      \"height\": 62,\n      \"rawWidth\": 47,\n      \"rawHeight\": 62,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"957bb203-0703-434a-bf35-a241c2a8fed3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 56,\n  \"height\": 67,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"236b3be3-2828-40e9-8206-cfd85986c97f\",\n      \"rawTextureUuid\": \"957bb203-0703-434a-bf35-a241c2a8fed3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 56,\n      \"height\": 67,\n      \"rawWidth\": 56,\n      \"rawHeight\": 67,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"48823d79-76a5-43a6-88b2-552615d45392\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 60,\n  \"height\": 67,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"636c8ea5-f4d3-40ad-b16e-1b972813769b\",\n      \"rawTextureUuid\": \"48823d79-76a5-43a6-88b2-552615d45392\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 60,\n      \"height\": 67,\n      \"rawWidth\": 60,\n      \"rawHeight\": 67,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1df45003-6944-4fdc-b08e-9958ee0d897a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 64,\n  \"height\": 68,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"db7aa47a-c7df-4c6b-a163-a406574c6583\",\n      \"rawTextureUuid\": \"1df45003-6944-4fdc-b08e-9958ee0d897a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 64,\n      \"height\": 68,\n      \"rawWidth\": 64,\n      \"rawHeight\": 68,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"90be1ce0-5dc8-4a5d-9ef6-8f05f52404f8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 65,\n  \"height\": 69,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5d7f84ef-771b-4008-98db-b00f11f75642\",\n      \"rawTextureUuid\": \"90be1ce0-5dc8-4a5d-9ef6-8f05f52404f8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 65,\n      \"height\": 69,\n      \"rawWidth\": 65,\n      \"rawHeight\": 69,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_8.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"de9e9908-f691-4905-838c-309878006cf7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 68,\n  \"height\": 71,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_8\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1ffa2b20-611e-4d1d-bab9-35d831e3ed95\",\n      \"rawTextureUuid\": \"de9e9908-f691-4905-838c-309878006cf7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 68,\n      \"height\": 71,\n      \"rawWidth\": 68,\n      \"rawHeight\": 71,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/coin_effect-coin_effect_9.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a79506af-0d99-4da2-99eb-352cda34c883\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 71,\n  \"height\": 71,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"coin_effect-coin_effect_9\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f3d2e5d9-b496-4da3-b904-e320a31b4734\",\n      \"rawTextureUuid\": \"a79506af-0d99-4da2-99eb-352cda34c883\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 71,\n      \"height\": 71,\n      \"rawWidth\": 71,\n      \"rawHeight\": 71,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_1_effect_1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6c30fb3a-8ae6-4273-a378-ccf27d8fc416\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 53,\n  \"height\": 48,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_1_effect_1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6875c25f-61cf-46f2-b692-1d2eaae49ac2\",\n      \"rawTextureUuid\": \"6c30fb3a-8ae6-4273-a378-ccf27d8fc416\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 53,\n      \"height\": 48,\n      \"rawWidth\": 53,\n      \"rawHeight\": 48,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_1_effect_1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"920efe63-bfa4-43be-b305-ce727d1c7a65\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 57,\n  \"height\": 89,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_1_effect_1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f8de46d1-c1c1-4dd5-85b0-cf2cb50f22a4\",\n      \"rawTextureUuid\": \"920efe63-bfa4-43be-b305-ce727d1c7a65\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 57,\n      \"height\": 89,\n      \"rawWidth\": 57,\n      \"rawHeight\": 89,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_1_effect_1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a84f7e27-2e34-4f9e-8c71-ec8aed6b2288\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 57,\n  \"height\": 105,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_1_effect_1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"05f793ce-71f9-4c49-ad20-a2678ac34c3a\",\n      \"rawTextureUuid\": \"a84f7e27-2e34-4f9e-8c71-ec8aed6b2288\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 57,\n      \"height\": 105,\n      \"rawWidth\": 57,\n      \"rawHeight\": 105,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_1_effect_1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"46623054-a4cf-4f5a-9f28-3e3cad46f287\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 57,\n  \"height\": 112,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_1_effect_1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"06c432ff-4c0f-47ea-beaf-34646f29356a\",\n      \"rawTextureUuid\": \"46623054-a4cf-4f5a-9f28-3e3cad46f287\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 57,\n      \"height\": 112,\n      \"rawWidth\": 57,\n      \"rawHeight\": 112,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_1_effect_1_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"550cd3db-623b-4ca5-a615-bafdebc576f3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 57,\n  \"height\": 119,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_1_effect_1_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0f65e4d6-bb40-4cd8-a4a6-fd11684324c9\",\n      \"rawTextureUuid\": \"550cd3db-623b-4ca5-a615-bafdebc576f3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 57,\n      \"height\": 119,\n      \"rawWidth\": 57,\n      \"rawHeight\": 119,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_1_effect_1_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e6769a3a-9ec4-44cf-8891-a788f01cfcbc\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 57,\n  \"height\": 116,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_1_effect_1_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"236e368b-fc8f-473b-828b-dd08bd943fd3\",\n      \"rawTextureUuid\": \"e6769a3a-9ec4-44cf-8891-a788f01cfcbc\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 57,\n      \"height\": 116,\n      \"rawWidth\": 57,\n      \"rawHeight\": 116,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_1_effect_1_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"81ae0440-cdf1-446f-b86a-e1f41b6ba0bd\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 58,\n  \"height\": 118,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_1_effect_1_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5aa109b6-9f0c-43ca-b824-a43a0c399cae\",\n      \"rawTextureUuid\": \"81ae0440-cdf1-446f-b86a-e1f41b6ba0bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 58,\n      \"height\": 118,\n      \"rawWidth\": 58,\n      \"rawHeight\": 118,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_1_effect_1_8.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"864f8a61-5fbf-4de7-b889-7c800ea38053\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 58,\n  \"height\": 90,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_1_effect_1_8\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"da997079-408d-4b0f-8add-63405288e1d9\",\n      \"rawTextureUuid\": \"864f8a61-5fbf-4de7-b889-7c800ea38053\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 58,\n      \"height\": 90,\n      \"rawWidth\": 58,\n      \"rawHeight\": 90,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_1_effect_1_9.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b31206d6-d42b-4ee5-b845-d032912733be\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 58,\n  \"height\": 92,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_1_effect_1_9\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5893ed99-ad7f-4f07-8106-b99aad100760\",\n      \"rawTextureUuid\": \"b31206d6-d42b-4ee5-b845-d032912733be\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 58,\n      \"height\": 92,\n      \"rawWidth\": 58,\n      \"rawHeight\": 92,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_2_effect_1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"dc7ee8ba-9219-457d-9e2c-99d76b9684f6\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 53,\n  \"height\": 79,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_2_effect_1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"34911789-c684-4378-8ab9-aa449e7cd91b\",\n      \"rawTextureUuid\": \"dc7ee8ba-9219-457d-9e2c-99d76b9684f6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 53,\n      \"height\": 79,\n      \"rawWidth\": 53,\n      \"rawHeight\": 79,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_2_effect_1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"14c01166-649e-4ca3-9354-6107175d9f86\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 53,\n  \"height\": 111,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_2_effect_1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"18cb85f9-9fcc-4d90-a6ec-45a7e3998e11\",\n      \"rawTextureUuid\": \"14c01166-649e-4ca3-9354-6107175d9f86\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 53,\n      \"height\": 111,\n      \"rawWidth\": 53,\n      \"rawHeight\": 111,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_2_effect_1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fd03ce44-5775-4036-90c0-764616ef2f75\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 57,\n  \"height\": 116,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_2_effect_1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9e32f31f-7cfb-4531-a563-bb2bb9072fbb\",\n      \"rawTextureUuid\": \"fd03ce44-5775-4036-90c0-764616ef2f75\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 57,\n      \"height\": 116,\n      \"rawWidth\": 57,\n      \"rawHeight\": 116,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_2_effect_1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7b2908c0-bf51-46cb-a411-e41d5a7549c2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 121,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_2_effect_1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"90a0718b-3059-4464-94e9-919fd99e3e9b\",\n      \"rawTextureUuid\": \"7b2908c0-bf51-46cb-a411-e41d5a7549c2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 121,\n      \"rawWidth\": 54,\n      \"rawHeight\": 121,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_2_effect_1_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1f8bcddd-34d3-49fa-ba20-1d3443666da6\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 125,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_2_effect_1_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0e13a483-0196-43f7-ab80-5ec6c6488b8e\",\n      \"rawTextureUuid\": \"1f8bcddd-34d3-49fa-ba20-1d3443666da6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 125,\n      \"rawWidth\": 54,\n      \"rawHeight\": 125,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_2_effect_1_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bd5ccff6-bafc-4ce0-886d-10aa50251da2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 52,\n  \"height\": 127,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_2_effect_1_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d30f28fd-e954-4f59-9b34-9c7353c98bd2\",\n      \"rawTextureUuid\": \"bd5ccff6-bafc-4ce0-886d-10aa50251da2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 52,\n      \"height\": 127,\n      \"rawWidth\": 52,\n      \"rawHeight\": 127,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_2_effect_1_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d5dc6a54-a932-436b-aa4f-1b21687327ae\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 51,\n  \"height\": 130,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_2_effect_1_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ac1068ed-d522-4595-a79f-e92a4efc987c\",\n      \"rawTextureUuid\": \"d5dc6a54-a932-436b-aa4f-1b21687327ae\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 51,\n      \"height\": 130,\n      \"rawWidth\": 51,\n      \"rawHeight\": 130,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1b842040-8cc6-4249-9950-45aca5df6b57\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 79,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6181555a-efef-4df1-a81e-16b7bc86647f\",\n      \"rawTextureUuid\": \"1b842040-8cc6-4249-9950-45aca5df6b57\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 79,\n      \"rawWidth\": 54,\n      \"rawHeight\": 79,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_1_10.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"cae876de-5fd7-4599-9801-2a5f3263d13b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 78,\n  \"height\": 37,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_1_10\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c0c5e85c-934d-4ff7-be3b-8ad0deb6e36e\",\n      \"rawTextureUuid\": \"cae876de-5fd7-4599-9801-2a5f3263d13b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 78,\n      \"height\": 37,\n      \"rawWidth\": 78,\n      \"rawHeight\": 37,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_1_11.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"66f9fe8e-5244-49c6-a0d1-8ec0215d349e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 116,\n  \"height\": 15,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_1_11\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"615f0636-1492-4751-95ac-2a1dbc8f2873\",\n      \"rawTextureUuid\": \"66f9fe8e-5244-49c6-a0d1-8ec0215d349e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 116,\n      \"height\": 15,\n      \"rawWidth\": 116,\n      \"rawHeight\": 15,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_1_12.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4c063477-d15b-46c1-b3b4-6ce71fc94de4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 92,\n  \"height\": 13,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_1_12\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e8469c4f-37dc-4615-b507-b58dc9a3aa56\",\n      \"rawTextureUuid\": \"4c063477-d15b-46c1-b3b4-6ce71fc94de4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 92,\n      \"height\": 13,\n      \"rawWidth\": 92,\n      \"rawHeight\": 13,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a149efec-dc41-42c6-a406-537eeffb9523\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 107,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8dfb7141-391a-4d7a-baa0-c9429006b285\",\n      \"rawTextureUuid\": \"a149efec-dc41-42c6-a406-537eeffb9523\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 107,\n      \"rawWidth\": 54,\n      \"rawHeight\": 107,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"cd8d5235-0190-4cfa-be5e-97d10d731673\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 55,\n  \"height\": 110,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a0891a13-da51-4f73-a72d-1c36c2dfdd6f\",\n      \"rawTextureUuid\": \"cd8d5235-0190-4cfa-be5e-97d10d731673\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 55,\n      \"height\": 110,\n      \"rawWidth\": 55,\n      \"rawHeight\": 110,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4c83dd4c-28dc-4d6b-b53b-3f2f1db444fd\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 74,\n  \"height\": 111,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c485e40b-14c6-4c14-9671-0ece2283b70d\",\n      \"rawTextureUuid\": \"4c83dd4c-28dc-4d6b-b53b-3f2f1db444fd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 74,\n      \"height\": 111,\n      \"rawWidth\": 74,\n      \"rawHeight\": 111,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_1_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bb16fb97-9fc6-4ce2-ae95-7030a7515119\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 74,\n  \"height\": 119,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_1_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5b37edaf-2d1e-40fa-b1bc-fd49b820d640\",\n      \"rawTextureUuid\": \"bb16fb97-9fc6-4ce2-ae95-7030a7515119\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 74,\n      \"height\": 119,\n      \"rawWidth\": 74,\n      \"rawHeight\": 119,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_1_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b25bcb8e-6136-4731-a9b2-9f8a9235dfb8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 78,\n  \"height\": 136,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_1_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"952e2584-e7cf-4dc9-8044-5d6d019553f8\",\n      \"rawTextureUuid\": \"b25bcb8e-6136-4731-a9b2-9f8a9235dfb8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 78,\n      \"height\": 136,\n      \"rawWidth\": 78,\n      \"rawHeight\": 136,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_1_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ef7761be-96cb-4563-8f87-756f7cf7a364\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 81,\n  \"height\": 138,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_1_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"33f7c18b-b2bb-4254-ab7e-7e8699f7b581\",\n      \"rawTextureUuid\": \"ef7761be-96cb-4563-8f87-756f7cf7a364\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 81,\n      \"height\": 138,\n      \"rawWidth\": 81,\n      \"rawHeight\": 138,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_1_8.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"8eeb67c5-7d97-42de-831b-836d727ed01e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 80,\n  \"height\": 129,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_1_8\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"82683a8f-9bb5-4638-aa7c-787660f8dcb8\",\n      \"rawTextureUuid\": \"8eeb67c5-7d97-42de-831b-836d727ed01e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 80,\n      \"height\": 129,\n      \"rawWidth\": 80,\n      \"rawHeight\": 129,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_1_9.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a7809b5f-3d7a-4707-bd20-7584076fe70d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 81,\n  \"height\": 129,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_1_9\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"31d43a5c-da9f-44cd-8aad-11637f5c309b\",\n      \"rawTextureUuid\": \"a7809b5f-3d7a-4707-bd20-7584076fe70d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 81,\n      \"height\": 129,\n      \"rawWidth\": 81,\n      \"rawHeight\": 129,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"dc43bfcf-9d92-43c6-985b-5bb3687a51df\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 49,\n  \"height\": 49,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"016ac84b-3cb9-4b6f-8457-cf8610434067\",\n      \"rawTextureUuid\": \"dc43bfcf-9d92-43c6-985b-5bb3687a51df\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 49,\n      \"height\": 49,\n      \"rawWidth\": 49,\n      \"rawHeight\": 49,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"49b7d89c-4331-467d-84a5-cd25cec831be\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 49,\n  \"height\": 49,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5c4fcff7-260f-4bcf-8fc1-b7551bc8237e\",\n      \"rawTextureUuid\": \"49b7d89c-4331-467d-84a5-cd25cec831be\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 49,\n      \"height\": 49,\n      \"rawWidth\": 49,\n      \"rawHeight\": 49,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"518da7ca-dd5b-43ea-bdc8-c62e4987c703\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 49,\n  \"height\": 49,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"82fe70c8-c66b-4b39-ae03-4fd693fbfa19\",\n      \"rawTextureUuid\": \"518da7ca-dd5b-43ea-bdc8-c62e4987c703\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 49,\n      \"height\": 49,\n      \"rawWidth\": 49,\n      \"rawHeight\": 49,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a790ae4f-fd10-4b20-9bdc-01f440efd289\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 49,\n  \"height\": 49,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3806650b-8285-4eb1-a703-26c4e876dd81\",\n      \"rawTextureUuid\": \"a790ae4f-fd10-4b20-9bdc-01f440efd289\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 49,\n      \"height\": 49,\n      \"rawWidth\": 49,\n      \"rawHeight\": 49,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7f016735-dd8e-4065-be30-03fdc9c5110a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 49,\n  \"height\": 49,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"73150284-2ad8-45d7-bbf2-e658dea2fa51\",\n      \"rawTextureUuid\": \"7f016735-dd8e-4065-be30-03fdc9c5110a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 49,\n      \"height\": 49,\n      \"rawWidth\": 49,\n      \"rawHeight\": 49,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_2_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b3df9e63-cd38-4b74-b9ad-50863749466d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 49,\n  \"height\": 49,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_2_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1678aff1-7dba-428b-b73e-8969633a522e\",\n      \"rawTextureUuid\": \"b3df9e63-cd38-4b74-b9ad-50863749466d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 49,\n      \"height\": 49,\n      \"rawWidth\": 49,\n      \"rawHeight\": 49,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_3_effect_2_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f38f3fc2-7801-4435-b6fd-544a54712d56\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 49,\n  \"height\": 49,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3_effect_2_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d70a39cb-4ec9-4e78-8dc2-0d1eafd97e60\",\n      \"rawTextureUuid\": \"f38f3fc2-7801-4435-b6fd-544a54712d56\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 49,\n      \"height\": 49,\n      \"rawWidth\": 49,\n      \"rawHeight\": 49,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"71d7ff9b-594e-469f-a611-532e38ca13ce\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 100,\n  \"height\": 117,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c2914a31-05ce-4f98-8e0e-5518a72b5d2a\",\n      \"rawTextureUuid\": \"71d7ff9b-594e-469f-a611-532e38ca13ce\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 100,\n      \"height\": 117,\n      \"rawWidth\": 100,\n      \"rawHeight\": 117,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_1_10.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"11373c70-e05b-42f9-9ee4-92fa8ee079cf\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 46,\n  \"height\": 71,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_1_10\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7501926e-c736-45ca-95d1-e544aefdf349\",\n      \"rawTextureUuid\": \"11373c70-e05b-42f9-9ee4-92fa8ee079cf\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 46,\n      \"height\": 71,\n      \"rawWidth\": 46,\n      \"rawHeight\": 71,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4f7cc4b8-3bc7-4de3-b1e1-a86bae0fe76a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 103,\n  \"height\": 139,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7b9c70ec-dbd0-445f-8832-f9723bac93d2\",\n      \"rawTextureUuid\": \"4f7cc4b8-3bc7-4de3-b1e1-a86bae0fe76a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 103,\n      \"height\": 139,\n      \"rawWidth\": 103,\n      \"rawHeight\": 139,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3ad3ae98-2cdd-4240-93cf-ff219573f2b5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 110,\n  \"height\": 146,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"07c45b50-7a5b-4031-a0b4-98386174643b\",\n      \"rawTextureUuid\": \"3ad3ae98-2cdd-4240-93cf-ff219573f2b5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 110,\n      \"height\": 146,\n      \"rawWidth\": 110,\n      \"rawHeight\": 146,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"29fd1ebe-dd2f-42cc-b5d9-655cd937dfe9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 68,\n  \"height\": 149,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"892f7aa2-0ce6-47eb-82b1-9feeefb6d14f\",\n      \"rawTextureUuid\": \"29fd1ebe-dd2f-42cc-b5d9-655cd937dfe9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 68,\n      \"height\": 149,\n      \"rawWidth\": 68,\n      \"rawHeight\": 149,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_1_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ea52d5f0-89cf-4eb3-9d00-611c2c418088\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 61,\n  \"height\": 143,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_1_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f5b35b30-4aa0-44a6-90de-f83ddcc0feff\",\n      \"rawTextureUuid\": \"ea52d5f0-89cf-4eb3-9d00-611c2c418088\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 61,\n      \"height\": 143,\n      \"rawWidth\": 61,\n      \"rawHeight\": 143,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_1_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bee4371b-5445-4e84-84d1-8e7cbba6eeb3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 136,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_1_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c91ec013-46e1-4c3c-a944-f59c752c47cc\",\n      \"rawTextureUuid\": \"bee4371b-5445-4e84-84d1-8e7cbba6eeb3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 136,\n      \"rawWidth\": 66,\n      \"rawHeight\": 136,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_1_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"abac6679-f125-4ac3-a1cf-f2b1195c7e7c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 67,\n  \"height\": 146,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_1_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7ecd64e4-2122-4466-8afc-90eca8af7792\",\n      \"rawTextureUuid\": \"abac6679-f125-4ac3-a1cf-f2b1195c7e7c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 67,\n      \"height\": 146,\n      \"rawWidth\": 67,\n      \"rawHeight\": 146,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_1_8.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"54818f14-a6cb-4d8e-b4a6-25c81028b0ad\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 60,\n  \"height\": 71,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_1_8\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9c7050b3-d667-4833-ab08-d74fe183a05d\",\n      \"rawTextureUuid\": \"54818f14-a6cb-4d8e-b4a6-25c81028b0ad\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 60,\n      \"height\": 71,\n      \"rawWidth\": 60,\n      \"rawHeight\": 71,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_1_9.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7fe5425f-aa35-47aa-8082-85d3877462f2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 60,\n  \"height\": 76,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_1_9\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4eff22a2-fefb-4deb-86c6-4480b4266d77\",\n      \"rawTextureUuid\": \"7fe5425f-aa35-47aa-8082-85d3877462f2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 60,\n      \"height\": 76,\n      \"rawWidth\": 60,\n      \"rawHeight\": 76,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_2_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a4674f7c-f5fc-4f13-bdfb-131eb3c9797f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 68,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_2_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"010c2db8-7a7f-4be1-9338-8c8fcf4e9bc2\",\n      \"rawTextureUuid\": \"a4674f7c-f5fc-4f13-bdfb-131eb3c9797f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 68,\n      \"height\": 75,\n      \"rawWidth\": 68,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_2_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"13483f33-3252-4bb2-b6ea-02c9f574e334\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 68,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_2_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"699a90d4-37d5-4aff-8260-ecb6301f11f1\",\n      \"rawTextureUuid\": \"13483f33-3252-4bb2-b6ea-02c9f574e334\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 68,\n      \"height\": 75,\n      \"rawWidth\": 68,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_2_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5cd4e869-632c-4eba-a3a2-d179e46a9fb0\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 68,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_2_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f2c2b41c-1d0f-44b7-8cb4-b342e7a8cf51\",\n      \"rawTextureUuid\": \"5cd4e869-632c-4eba-a3a2-d179e46a9fb0\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 68,\n      \"height\": 75,\n      \"rawWidth\": 68,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_2_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"540305b8-4030-47cc-9d42-fd0b1bccadc9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 68,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_2_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2331df60-1236-4d69-a9ff-7990171e148e\",\n      \"rawTextureUuid\": \"540305b8-4030-47cc-9d42-fd0b1bccadc9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 68,\n      \"height\": 75,\n      \"rawWidth\": 68,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_4_effect_2_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"88218509-8848-4c32-8a98-1625bdb8713b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 68,\n  \"height\": 75,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4_effect_2_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"de51aac6-5bed-401c-8ab3-0a89ab796ae9\",\n      \"rawTextureUuid\": \"88218509-8848-4c32-8a98-1625bdb8713b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 68,\n      \"height\": 75,\n      \"rawWidth\": 68,\n      \"rawHeight\": 75,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_5_effect_1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d1c66c08-55fa-4fdc-879b-0eec073c0ffb\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 41,\n  \"height\": 59,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_5_effect_1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1186797d-060f-41d0-b2c5-82d4f76cad8b\",\n      \"rawTextureUuid\": \"d1c66c08-55fa-4fdc-879b-0eec073c0ffb\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 41,\n      \"height\": 59,\n      \"rawWidth\": 41,\n      \"rawHeight\": 59,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_5_effect_1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a01e558e-3791-4d3b-b814-fd65b28b360e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 70,\n  \"height\": 107,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_5_effect_1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6f9c0934-6d82-4aae-b513-fb5742ff299b\",\n      \"rawTextureUuid\": \"a01e558e-3791-4d3b-b814-fd65b28b360e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 70,\n      \"height\": 107,\n      \"rawWidth\": 70,\n      \"rawHeight\": 107,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_5_effect_1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2e38e930-21cb-425c-8457-13adc012da11\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 70,\n  \"height\": 119,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_5_effect_1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"bcf553ee-017e-47a7-8d26-2ee379875777\",\n      \"rawTextureUuid\": \"2e38e930-21cb-425c-8457-13adc012da11\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 70,\n      \"height\": 119,\n      \"rawWidth\": 70,\n      \"rawHeight\": 119,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_5_effect_1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"60f48968-9a54-436d-ab11-530f4a562a75\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 76,\n  \"height\": 141,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_5_effect_1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8f613e1e-ea89-4e2f-a258-60bd00a9237d\",\n      \"rawTextureUuid\": \"60f48968-9a54-436d-ab11-530f4a562a75\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 76,\n      \"height\": 141,\n      \"rawWidth\": 76,\n      \"rawHeight\": 141,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_5_effect_1_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ec75169b-9075-4a20-96e1-c75ddfcbb2cb\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 82,\n  \"height\": 165,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_5_effect_1_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ab292a18-ee41-4c33-83ae-4a9b1c974558\",\n      \"rawTextureUuid\": \"ec75169b-9075-4a20-96e1-c75ddfcbb2cb\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 82,\n      \"height\": 165,\n      \"rawWidth\": 82,\n      \"rawHeight\": 165,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_5_effect_1_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ab3bbbdc-a0d6-4f90-8867-fc21832f1d51\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 88,\n  \"height\": 178,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_5_effect_1_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"33400e7a-e229-4d9e-b7b6-44f6ca3e1fbb\",\n      \"rawTextureUuid\": \"ab3bbbdc-a0d6-4f90-8867-fc21832f1d51\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 88,\n      \"height\": 178,\n      \"rawWidth\": 88,\n      \"rawHeight\": 178,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_5_effect_1_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e70d0ac9-095e-40eb-8d02-d8eb3f7dcacf\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 94,\n  \"height\": 184,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_5_effect_1_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d18f0129-a4a9-439b-b10a-941f9cbe18b0\",\n      \"rawTextureUuid\": \"e70d0ac9-095e-40eb-8d02-d8eb3f7dcacf\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 94,\n      \"height\": 184,\n      \"rawWidth\": 94,\n      \"rawHeight\": 184,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_5_effect_1_8.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6150df9b-7b0a-4d20-b0f3-1880b99adf04\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 165,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_5_effect_1_8\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"254eb826-7999-4809-a187-b06910c427f9\",\n      \"rawTextureUuid\": \"6150df9b-7b0a-4d20-b0f3-1880b99adf04\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 40,\n      \"height\": 165,\n      \"rawWidth\": 40,\n      \"rawHeight\": 165,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_6_effect_1_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b00b0f0e-5c5a-453c-9d4f-59b179687e88\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 92,\n  \"height\": 80,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_6_effect_1_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3d98a1ef-63b6-42fb-98dd-3ce0eb71428c\",\n      \"rawTextureUuid\": \"b00b0f0e-5c5a-453c-9d4f-59b179687e88\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 92,\n      \"height\": 80,\n      \"rawWidth\": 92,\n      \"rawHeight\": 80,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_6_effect_1_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"03f52c76-d42f-43ca-ad0e-5e9be0aaf0b4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 91,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_6_effect_1_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"02f7c31b-7cab-4d11-98ba-838c8242ee0f\",\n      \"rawTextureUuid\": \"03f52c76-d42f-43ca-ad0e-5e9be0aaf0b4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 91,\n      \"rawWidth\": 104,\n      \"rawHeight\": 91,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_6_effect_1_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"8d7ed647-9c48-4fdf-bebd-9ae18f0f8a21\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 116,\n  \"height\": 101,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_6_effect_1_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"10548c97-a9ea-468e-9206-880b5c937bae\",\n      \"rawTextureUuid\": \"8d7ed647-9c48-4fdf-bebd-9ae18f0f8a21\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 116,\n      \"height\": 101,\n      \"rawWidth\": 116,\n      \"rawHeight\": 101,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_6_effect_1_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"71729b65-9311-4521-b484-49b8472fc8f7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 126,\n  \"height\": 110,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_6_effect_1_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0879015e-8572-4895-845a-357bc917380d\",\n      \"rawTextureUuid\": \"71729b65-9311-4521-b484-49b8472fc8f7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 126,\n      \"height\": 110,\n      \"rawWidth\": 126,\n      \"rawHeight\": 110,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_6_effect_1_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b115d5b5-5ba8-4bc0-afee-e131f9dcb861\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 135,\n  \"height\": 115,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_6_effect_1_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"79e78bed-39af-4c2a-b445-a8ea2371094a\",\n      \"rawTextureUuid\": \"b115d5b5-5ba8-4bc0-afee-e131f9dcb861\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 135,\n      \"height\": 115,\n      \"rawWidth\": 135,\n      \"rawHeight\": 115,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/item_6_effect_1_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7bdde9b2-a49f-41be-9413-82975492b683\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 90,\n  \"height\": 76,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_6_effect_1_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"60e02fe8-2f52-4c09-8e38-cd0f5d77d2d0\",\n      \"rawTextureUuid\": \"7bdde9b2-a49f-41be-9413-82975492b683\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 90,\n      \"height\": 76,\n      \"rawWidth\": 90,\n      \"rawHeight\": 76,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_1_boom_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f06d6719-de05-48d7-8ff1-39469fecb626\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 101,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_1_boom_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"62d0772a-71c5-4f39-be0f-26c8e48b7603\",\n      \"rawTextureUuid\": \"f06d6719-de05-48d7-8ff1-39469fecb626\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 101,\n      \"height\": 104,\n      \"rawWidth\": 101,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_1_boom_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"62498079-c8f0-4df0-9a4a-925917fe3b59\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 130,\n  \"height\": 145,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_1_boom_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"184acac2-d2a1-4eea-9fae-4a68a99c8d64\",\n      \"rawTextureUuid\": \"62498079-c8f0-4df0-9a4a-925917fe3b59\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 130,\n      \"height\": 145,\n      \"rawWidth\": 130,\n      \"rawHeight\": 145,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_1_boom_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bca699a5-012c-4e09-ab97-7cc107725d63\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 139,\n  \"height\": 142,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_1_boom_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"bd710e15-da3c-47f5-b14a-6f4444e1cdb9\",\n      \"rawTextureUuid\": \"bca699a5-012c-4e09-ab97-7cc107725d63\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 139,\n      \"height\": 142,\n      \"rawWidth\": 139,\n      \"rawHeight\": 142,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_1_boom_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"315053a3-717a-4d80-9a37-0bbc0b84ed27\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 146,\n  \"height\": 141,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_1_boom_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"bc497e09-481e-4ba7-b1ea-71e11f11eae6\",\n      \"rawTextureUuid\": \"315053a3-717a-4d80-9a37-0bbc0b84ed27\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 146,\n      \"height\": 141,\n      \"rawWidth\": 146,\n      \"rawHeight\": 141,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_2_boom_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"aa2b0fa4-65fe-4694-8802-e3ed13697906\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 101,\n  \"height\": 103,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_2_boom_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"13206392-8fb4-45e3-9359-3e7af5ac9a7c\",\n      \"rawTextureUuid\": \"aa2b0fa4-65fe-4694-8802-e3ed13697906\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 101,\n      \"height\": 103,\n      \"rawWidth\": 101,\n      \"rawHeight\": 103,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_2_boom_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"39187cc6-f967-4acc-8b89-e7eb4811dcd2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 130,\n  \"height\": 145,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_2_boom_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9b38003b-2196-42eb-825f-5396e048509f\",\n      \"rawTextureUuid\": \"39187cc6-f967-4acc-8b89-e7eb4811dcd2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 130,\n      \"height\": 145,\n      \"rawWidth\": 130,\n      \"rawHeight\": 145,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_2_boom_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"63ab9f93-3e7f-4645-a0dc-b137aa491ec0\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 139,\n  \"height\": 146,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_2_boom_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5f40bfa0-a823-4c72-8ee8-dd3c83b14a22\",\n      \"rawTextureUuid\": \"63ab9f93-3e7f-4645-a0dc-b137aa491ec0\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 139,\n      \"height\": 146,\n      \"rawWidth\": 139,\n      \"rawHeight\": 146,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_2_boom_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7ebe616f-8242-4f87-bb94-dc2f3a723c75\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 146,\n  \"height\": 139,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_2_boom_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"173140c9-039f-471b-af20-ecaa1484c40d\",\n      \"rawTextureUuid\": \"7ebe616f-8242-4f87-bb94-dc2f3a723c75\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 146,\n      \"height\": 139,\n      \"rawWidth\": 146,\n      \"rawHeight\": 139,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_3_boom_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"187b2ea1-ef82-4f9d-a900-0fa83ff6f8e0\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 101,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_3_boom_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"fef3433c-821a-40a2-9747-21291fa1f42f\",\n      \"rawTextureUuid\": \"187b2ea1-ef82-4f9d-a900-0fa83ff6f8e0\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 101,\n      \"height\": 104,\n      \"rawWidth\": 101,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_3_boom_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"aad73d5d-8fc3-49e9-90e6-706b27c2a9ed\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 118,\n  \"height\": 120,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_3_boom_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"38ef92da-2651-4fef-b229-f5204542b41e\",\n      \"rawTextureUuid\": \"aad73d5d-8fc3-49e9-90e6-706b27c2a9ed\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 118,\n      \"height\": 120,\n      \"rawWidth\": 118,\n      \"rawHeight\": 120,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_3_boom_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ba23eeef-7dc6-4424-b34a-d6ae52f035a2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 141,\n  \"height\": 138,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_3_boom_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6dfe96dc-07a6-4dac-bf1a-6179835a055b\",\n      \"rawTextureUuid\": \"ba23eeef-7dc6-4424-b34a-d6ae52f035a2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 141,\n      \"height\": 138,\n      \"rawWidth\": 141,\n      \"rawHeight\": 138,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_3_boom_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5c390773-cadf-41e8-9815-ab8f3532ed26\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 145,\n  \"height\": 141,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_3_boom_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a8a0a14b-d7bd-4082-926b-3b9d36c9df93\",\n      \"rawTextureUuid\": \"5c390773-cadf-41e8-9815-ab8f3532ed26\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 145,\n      \"height\": 141,\n      \"rawWidth\": 145,\n      \"rawHeight\": 141,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_3_boom_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ecf45437-a27e-4bad-b623-e6d3efd5cb56\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 71,\n  \"height\": 59,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_3_boom_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2d1a54a4-83b8-401e-b5dc-c3d5a0e363e6\",\n      \"rawTextureUuid\": \"ecf45437-a27e-4bad-b623-e6d3efd5cb56\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 71,\n      \"height\": 59,\n      \"rawWidth\": 71,\n      \"rawHeight\": 59,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_3_boom_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ecdabbc1-ea0f-4f9c-a1e6-56100e7ab787\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 72,\n  \"height\": 59,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_3_boom_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d57c8232-fd49-480a-add2-a374f017290e\",\n      \"rawTextureUuid\": \"ecdabbc1-ea0f-4f9c-a1e6-56100e7ab787\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 72,\n      \"height\": 59,\n      \"rawWidth\": 72,\n      \"rawHeight\": 59,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_3_boom_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"cea04d55-ae54-4754-b15a-d8717a8b4385\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 62,\n  \"height\": 56,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_3_boom_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9a1aef3f-2419-4406-920d-646588f16cd7\",\n      \"rawTextureUuid\": \"cea04d55-ae54-4754-b15a-d8717a8b4385\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 62,\n      \"height\": 56,\n      \"rawWidth\": 62,\n      \"rawHeight\": 56,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_4_boom_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fc79a297-235d-4d24-a250-8f110f906c2a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 101,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_4_boom_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b48e319e-73da-4486-826d-3b794991556d\",\n      \"rawTextureUuid\": \"fc79a297-235d-4d24-a250-8f110f906c2a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 101,\n      \"height\": 104,\n      \"rawWidth\": 101,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_4_boom_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c36886f2-1ad6-43e7-8c0c-2a7e47077ad9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 130,\n  \"height\": 143,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_4_boom_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a2788890-1ee0-4d68-8916-d0e8c840eea3\",\n      \"rawTextureUuid\": \"c36886f2-1ad6-43e7-8c0c-2a7e47077ad9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 130,\n      \"height\": 143,\n      \"rawWidth\": 130,\n      \"rawHeight\": 143,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_4_boom_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1164e954-923f-4796-a0a0-b001953211bc\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 140,\n  \"height\": 146,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_4_boom_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e9544787-45d6-4c93-b849-c87f9d817624\",\n      \"rawTextureUuid\": \"1164e954-923f-4796-a0a0-b001953211bc\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 140,\n      \"height\": 146,\n      \"rawWidth\": 140,\n      \"rawHeight\": 146,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_4_boom_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"33c49aeb-d8a4-4e76-9f94-0ad25cb7468b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 146,\n  \"height\": 138,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_4_boom_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"bfc72931-86ba-4ef9-aaa7-aec029640895\",\n      \"rawTextureUuid\": \"33c49aeb-d8a4-4e76-9f94-0ad25cb7468b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 146,\n      \"height\": 138,\n      \"rawWidth\": 146,\n      \"rawHeight\": 138,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_5_boom_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"16829c63-7f5c-4408-a7ba-05c44e649f72\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 101,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_5_boom_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"46e61d31-6692-40cb-a14c-ce756b4d3066\",\n      \"rawTextureUuid\": \"16829c63-7f5c-4408-a7ba-05c44e649f72\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 101,\n      \"height\": 104,\n      \"rawWidth\": 101,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_5_boom_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"898a0a8c-0b52-4358-82b1-09c34c5ab170\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 130,\n  \"height\": 143,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_5_boom_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c96bb953-4b17-4701-bd2d-c48bd3f47f4b\",\n      \"rawTextureUuid\": \"898a0a8c-0b52-4358-82b1-09c34c5ab170\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 130,\n      \"height\": 143,\n      \"rawWidth\": 130,\n      \"rawHeight\": 143,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_5_boom_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"df4643b5-8a1e-4749-b1b3-a22876700b1c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 140,\n  \"height\": 146,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_5_boom_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b18f3fec-08e2-4c03-bd92-d442d4bd68e9\",\n      \"rawTextureUuid\": \"df4643b5-8a1e-4749-b1b3-a22876700b1c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 140,\n      \"height\": 146,\n      \"rawWidth\": 140,\n      \"rawHeight\": 146,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect/q_za_5_boom_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1a6f2fe8-788a-4903-adaa-da2eca84cc58\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 146,\n  \"height\": 138,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"q_za_5_boom_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"66bf6425-9570-432f-a8a4-f534de569cc1\",\n      \"rawTextureUuid\": \"1a6f2fe8-788a-4903-adaa-da2eca84cc58\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 146,\n      \"height\": 138,\n      \"rawWidth\": 146,\n      \"rawHeight\": 138,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Effect.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"43daec94-a1b5-4a7f-b4fa-b649041c462c\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/GameUI/Common/empty.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e47596d5-db1e-4377-bca5-80f4651232ab\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 1,\n  \"height\": 1,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"empty\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"06d2dc4a-5a4c-4e30-997c-121f42cf3ef8\",\n      \"rawTextureUuid\": \"e47596d5-db1e-4377-bca5-80f4651232ab\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 1,\n      \"height\": 1,\n      \"rawWidth\": 1,\n      \"rawHeight\": 1,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/GameUI/Common.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"376c92f7-cdd0-4ea4-b5e9-92d4f6564162\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/GameUI/item_dot_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e2ccb610-61bc-481f-9010-b8945315043e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 15,\n  \"height\": 15,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_dot_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5e889f5a-2c3f-4865-b4be-2c5350eeb2b2\",\n      \"rawTextureUuid\": \"e2ccb610-61bc-481f-9010-b8945315043e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 15,\n      \"height\": 15,\n      \"rawWidth\": 15,\n      \"rawHeight\": 15,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/GameUI/item_dot_8.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9244b8a7-c0e4-4249-a921-b8375b8b1bf7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 15,\n  \"height\": 15,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_dot_8\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cd6d9bed-41c7-426e-98f9-83720fcd99a7\",\n      \"rawTextureUuid\": \"9244b8a7-c0e4-4249-a921-b8375b8b1bf7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 15,\n      \"height\": 15,\n      \"rawWidth\": 15,\n      \"rawHeight\": 15,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/GameUI/yx_sha_x2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"55dbec1d-4f02-4a18-9a4f-02cbc54b109d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 46,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx_sha_x2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"862369e2-e1b2-4329-a434-c278004d36f3\",\n      \"rawTextureUuid\": \"55dbec1d-4f02-4a18-9a4f-02cbc54b109d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 46,\n      \"height\": 20,\n      \"rawWidth\": 46,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/GameUI/yx_sha_x3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ee386688-12ed-4c7b-a271-748a76a630e9\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 46,\n  \"height\": 19,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx_sha_x3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"29cc823d-fefc-4415-b30f-8cb14356c26a\",\n      \"rawTextureUuid\": \"ee386688-12ed-4c7b-a271-748a76a630e9\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 46,\n      \"height\": 19,\n      \"rawWidth\": 46,\n      \"rawHeight\": 19,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/GameUI/yx_sha_x4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d4250cf3-56cb-43d0-8a99-400a944d0cca\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 47,\n  \"height\": 19,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx_sha_x4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9db584d3-340f-4cdb-b5c6-e9daabc2563e\",\n      \"rawTextureUuid\": \"d4250cf3-56cb-43d0-8a99-400a944d0cca\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 47,\n      \"height\": 19,\n      \"rawWidth\": 47,\n      \"rawHeight\": 19,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/GameUI/yx_sha_x5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bc2eb9b9-e00a-43ae-9623-4e1080bb9ea7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 45,\n  \"height\": 19,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx_sha_x5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7ea98a9a-3b9e-49d1-9871-1acc9ac166bc\",\n      \"rawTextureUuid\": \"bc2eb9b9-e00a-43ae-9623-4e1080bb9ea7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 45,\n      \"height\": 19,\n      \"rawWidth\": 45,\n      \"rawHeight\": 19,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/GameUI.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"fcb19582-8300-4ed8-9ba5-303361884ef1\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Metal/hz_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5b804437-366d-4a11-980e-ebed3f439d9e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 70,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hz_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"10473227-7ff5-4b3b-80a0-a3a30f81e81e\",\n      \"rawTextureUuid\": \"5b804437-366d-4a11-980e-ebed3f439d9e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 70,\n      \"height\": 60,\n      \"rawWidth\": 70,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Metal/hz_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0224c24f-cbfc-4754-a024-fbf738903520\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 69,\n  \"height\": 59,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hz_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2f2c864d-fa28-4a96-ba5b-58a1ee998209\",\n      \"rawTextureUuid\": \"0224c24f-cbfc-4754-a024-fbf738903520\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 69,\n      \"height\": 59,\n      \"rawWidth\": 69,\n      \"rawHeight\": 59,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Metal/hz_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"94ba80f9-be3c-479b-855d-8c4a94a40fe6\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 74,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hz_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"df1121a5-73a9-438d-bf28-ded1b2ab87a4\",\n      \"rawTextureUuid\": \"94ba80f9-be3c-479b-855d-8c4a94a40fe6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 74,\n      \"height\": 60,\n      \"rawWidth\": 74,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Metal/hz_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a0ea0083-faa9-4329-9453-6bda49bf9286\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 77,\n  \"height\": 61,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hz_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e831c92b-f786-4db3-b57a-b58a9f363b25\",\n      \"rawTextureUuid\": \"a0ea0083-faa9-4329-9453-6bda49bf9286\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 77,\n      \"height\": 61,\n      \"rawWidth\": 77,\n      \"rawHeight\": 61,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Metal/hz_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b3b07fd2-3020-4463-96af-4871a19802e8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 74,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hz_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"fc35c773-8148-482e-acd4-2b8e0569a1fc\",\n      \"rawTextureUuid\": \"b3b07fd2-3020-4463-96af-4871a19802e8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 74,\n      \"height\": 60,\n      \"rawWidth\": 74,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Metal/hz_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"331045ca-7212-41aa-933a-4547a1037d09\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 76,\n  \"height\": 61,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hz_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9af7bfa8-4165-4f4a-816a-329743499d4a\",\n      \"rawTextureUuid\": \"331045ca-7212-41aa-933a-4547a1037d09\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 76,\n      \"height\": 61,\n      \"rawWidth\": 76,\n      \"rawHeight\": 61,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Metal.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"7c5acece-7836-433b-87da-60405097eb7b\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Moji/bq_0.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"3e337580-0668-43c0-a5c3-fcd504d260da\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bq_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"729716f8-00e1-43c9-a983-1b40bb483d0f\",\n      \"rawTextureUuid\": \"3e337580-0668-43c0-a5c3-fcd504d260da\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 60,\n      \"rawWidth\": 54,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Moji/bq_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"45f52ced-7adf-410f-9761-aec4618c2b3f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bq_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c36a218a-bd58-4caa-875a-db3109567230\",\n      \"rawTextureUuid\": \"45f52ced-7adf-410f-9761-aec4618c2b3f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 60,\n      \"rawWidth\": 54,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Moji/bq_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"86b5007a-1660-422a-aa95-0caa80a1a1dc\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bq_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"24c6bed5-e25f-403f-bdad-356179da2f0c\",\n      \"rawTextureUuid\": \"86b5007a-1660-422a-aa95-0caa80a1a1dc\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 60,\n      \"rawWidth\": 54,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Moji/bq_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"490eccdf-7ea1-449b-9a8c-cd0208ba3ffb\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bq_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e411de27-cd02-4697-bedb-242cb4e180b6\",\n      \"rawTextureUuid\": \"490eccdf-7ea1-449b-9a8c-cd0208ba3ffb\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 60,\n      \"rawWidth\": 54,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Moji/bq_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"37af2fde-c051-4c35-bc69-d46f2b573965\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bq_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9e5fa1f8-9a5e-406d-b336-5a9873613e17\",\n      \"rawTextureUuid\": \"37af2fde-c051-4c35-bc69-d46f2b573965\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 60,\n      \"rawWidth\": 54,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Moji/bqtz_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"810bb982-4b80-47d7-b55a-c5448ed313b0\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 55,\n  \"height\": 70,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bqtz_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"290c5854-e477-475d-be00-c8683c2d15e4\",\n      \"rawTextureUuid\": \"810bb982-4b80-47d7-b55a-c5448ed313b0\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 55,\n      \"height\": 70,\n      \"rawWidth\": 55,\n      \"rawHeight\": 70,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Moji/bqtz_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4342e44e-2803-4a93-9595-9ef9d9821cb4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 56,\n  \"height\": 70,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bqtz_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"58a3822c-6110-4890-8d41-c8cd0ad9cc02\",\n      \"rawTextureUuid\": \"4342e44e-2803-4a93-9595-9ef9d9821cb4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 56,\n      \"height\": 70,\n      \"rawWidth\": 56,\n      \"rawHeight\": 70,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Moji/bqtz_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4fdd24ea-e742-46c4-a9c1-b88da5ac11cf\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 58,\n  \"height\": 70,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bqtz_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a7e6d2eb-3abe-4e3f-be76-d77d5f87233a\",\n      \"rawTextureUuid\": \"4fdd24ea-e742-46c4-a9c1-b88da5ac11cf\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 58,\n      \"height\": 70,\n      \"rawWidth\": 58,\n      \"rawHeight\": 70,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Moji/bqtz_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d4bb8373-c433-4092-8c67-a863505a79b8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 55,\n  \"height\": 70,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bqtz_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"188e3a03-21d8-4c56-8afb-76f1dd85c9b9\",\n      \"rawTextureUuid\": \"d4bb8373-c433-4092-8c67-a863505a79b8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 55,\n      \"height\": 70,\n      \"rawWidth\": 55,\n      \"rawHeight\": 70,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Moji/face_bg.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4f0bdde7-44bc-4400-8204-1f3fd9e4da73\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"face_bg\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"182fcbcb-658c-4987-8cc7-4e392e3b3d19\",\n      \"rawTextureUuid\": \"4f0bdde7-44bc-4400-8204-1f3fd9e4da73\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 60,\n      \"rawWidth\": 54,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Moji/face_bg_cover.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a5c8654f-279a-4f13-b1ce-88e02c673ba8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"face_bg_cover\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"58c34278-5699-4446-af87-bf102a9cc80d\",\n      \"rawTextureUuid\": \"a5c8654f-279a-4f13-b1ce-88e02c673ba8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 60,\n      \"rawWidth\": 54,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Moji/face_tag.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6bb39f25-7d1e-443a-8d94-601ae0f595af\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 37,\n  \"height\": 9,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"face_tag\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e70895bf-add2-4464-9027-2a5b3f4f637f\",\n      \"rawTextureUuid\": \"6bb39f25-7d1e-443a-8d94-601ae0f595af\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 37,\n      \"height\": 9,\n      \"rawWidth\": 37,\n      \"rawHeight\": 9,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/Moji.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"195175a9-e673-4ae4-9262-de8ed619b555\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/OutScene/Boss/door.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c6942f57-a4ed-437e-bdcb-d57e6cf1c8a3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 18,\n  \"height\": 18,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"door\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cb8f3d95-7ada-4922-9f11-bacd05f8b8a6\",\n      \"rawTextureUuid\": \"c6942f57-a4ed-437e-bdcb-d57e6cf1c8a3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 18,\n      \"height\": 18,\n      \"rawWidth\": 18,\n      \"rawHeight\": 18,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/OutScene/Boss/yx_boom.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1246d8f6-f610-48d5-abbe-61ac5e76d98f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 9,\n  \"height\": 9,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx_boom\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f60200d2-2618-4258-b7e0-19723b466ab6\",\n      \"rawTextureUuid\": \"1246d8f6-f610-48d5-abbe-61ac5e76d98f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 9,\n      \"height\": 9,\n      \"rawWidth\": 9,\n      \"rawHeight\": 9,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/OutScene/Boss/yx_boss_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"43e1d0a9-e107-4ae2-a917-3e4f9bc2cced\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 20,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx_boss_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5f8db992-d4dd-4f11-9be6-1a8716eb0721\",\n      \"rawTextureUuid\": \"43e1d0a9-e107-4ae2-a917-3e4f9bc2cced\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/OutScene/Boss/yx_fort_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f0d2ad62-bd96-4879-9036-5e1c17816d46\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 12,\n  \"height\": 12,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx_fort_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"93c44508-f88d-4656-9969-7fce0349eef8\",\n      \"rawTextureUuid\": \"f0d2ad62-bd96-4879-9036-5e1c17816d46\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 12,\n      \"height\": 12,\n      \"rawWidth\": 12,\n      \"rawHeight\": 12,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/OutScene/Boss/yx_free_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"129b70db-baaf-4bd3-818b-7ed72379c55a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 9,\n  \"height\": 9,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx_free_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"af0ccf57-dcbf-46da-895d-8735b5823607\",\n      \"rawTextureUuid\": \"129b70db-baaf-4bd3-818b-7ed72379c55a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 9,\n      \"height\": 9,\n      \"rawWidth\": 9,\n      \"rawHeight\": 9,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/OutScene/Boss/yx_patrol_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"8f2f92a8-d2e6-403f-85e7-19c08d9d0f5f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 11,\n  \"height\": 11,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx_patrol_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"61dd79e0-b15c-431c-9760-73d881a2b8ed\",\n      \"rawTextureUuid\": \"8f2f92a8-d2e6-403f-85e7-19c08d9d0f5f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 11,\n      \"height\": 11,\n      \"rawWidth\": 11,\n      \"rawHeight\": 11,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/OutScene/Boss/yx_pz_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"90107614-2a77-40bd-b1cb-dae526cc7c24\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 24,\n  \"height\": 24,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx_pz_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e984b91e-ab0c-49a4-97fa-29e7b8b40413\",\n      \"rawTextureUuid\": \"90107614-2a77-40bd-b1cb-dae526cc7c24\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 24,\n      \"height\": 24,\n      \"rawWidth\": 24,\n      \"rawHeight\": 24,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/OutScene/Boss/yx_sm_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fb437516-d868-471f-aec9-dbcd7854a93c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 15,\n  \"height\": 15,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx_sm_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"22e82a19-a16e-471c-b792-f1095c0a4b78\",\n      \"rawTextureUuid\": \"fb437516-d868-471f-aec9-dbcd7854a93c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 15,\n      \"height\": 15,\n      \"rawWidth\": 15,\n      \"rawHeight\": 15,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/OutScene/Boss/yx_sniper_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"13eea083-a783-429b-814a-390944f435b4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 10,\n  \"height\": 9,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx_sniper_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8c8f3dd7-eb19-47ea-94cb-fabd69abdbe7\",\n      \"rawTextureUuid\": \"13eea083-a783-429b-814a-390944f435b4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 10,\n      \"height\": 9,\n      \"rawWidth\": 10,\n      \"rawHeight\": 9,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/OutScene/Boss/yx_tk_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f48755ec-36ff-423d-b756-752cb6bf6bf8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 15,\n  \"height\": 15,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"yx_tk_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"efe09ea8-47b6-4d58-8233-8a04d2e0e4ba\",\n      \"rawTextureUuid\": \"f48755ec-36ff-423d-b756-752cb6bf6bf8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 15,\n      \"height\": 15,\n      \"rawWidth\": 15,\n      \"rawHeight\": 15,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/OutScene/Boss.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"a0a74d64-39e9-4f59-aeac-b9a4364fc379\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/OutScene.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"cb53a67e-6e27-4504-a73b-daedfc52b7bb\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/aimat.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ef31be03-c14f-42dd-b4b6-e025869dfce5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 61,\n  \"height\": 61,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"aimat\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7fe2cd26-b47e-4667-a0e5-62c7fff4b048\",\n      \"rawTextureUuid\": \"ef31be03-c14f-42dd-b4b6-e025869dfce5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 61,\n      \"height\": 61,\n      \"rawWidth\": 61,\n      \"rawHeight\": 61,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/bullet_tip_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d046b9ac-7854-4c88-a126-ca39c91984ae\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 21,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bullet_tip_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"58d8546f-9bea-4a65-83b9-a88fac27cce3\",\n      \"rawTextureUuid\": \"d046b9ac-7854-4c88-a126-ca39c91984ae\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 21,\n      \"height\": 20,\n      \"rawWidth\": 21,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/bullet_tip_cover.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5c5531e8-d0d9-4804-a8fa-b2e02c5b4d3d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 21,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bullet_tip_cover\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"21bf6fc8-ef94-4a8d-b3d5-9474c7ca626f\",\n      \"rawTextureUuid\": \"5c5531e8-d0d9-4804-a8fa-b2e02c5b4d3d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 21,\n      \"height\": 20,\n      \"rawWidth\": 21,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/dominating_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"cde0d396-ce69-482f-b1da-2baeb051a191\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 64,\n  \"height\": 56,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dominating_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2766c953-aeaa-4846-9363-35018cad50c1\",\n      \"rawTextureUuid\": \"cde0d396-ce69-482f-b1da-2baeb051a191\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 64,\n      \"height\": 56,\n      \"rawWidth\": 64,\n      \"rawHeight\": 56,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/dominating_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"93d89e76-e908-4ac6-b05c-7357d6174167\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 64,\n  \"height\": 56,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dominating_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0902b3cf-94c9-4e83-bf72-fda3ff4d06a3\",\n      \"rawTextureUuid\": \"93d89e76-e908-4ac6-b05c-7357d6174167\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 64,\n      \"height\": 56,\n      \"rawWidth\": 64,\n      \"rawHeight\": 56,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/first_blood_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2d06cc5c-f947-41bd-b92e-542d4bf1e967\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 58,\n  \"height\": 22,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"first_blood_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5fa07198-68f0-4c3a-a12c-f2d8891fcd43\",\n      \"rawTextureUuid\": \"2d06cc5c-f947-41bd-b92e-542d4bf1e967\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 58,\n      \"height\": 22,\n      \"rawWidth\": 58,\n      \"rawHeight\": 22,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/first_blood_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9c760c87-a258-45f9-91e1-fffe5e617ba0\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 62,\n  \"height\": 55,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"first_blood_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"23cd761c-8871-44d5-a045-a972a91ad009\",\n      \"rawTextureUuid\": \"9c760c87-a258-45f9-91e1-fffe5e617ba0\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 62,\n      \"height\": 55,\n      \"rawWidth\": 62,\n      \"rawHeight\": 55,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/god_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"09a4ed6e-e21e-42ce-87df-2046cfbac515\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 65,\n  \"height\": 57,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"god_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d2b52c84-a707-4eaf-967c-b90cbd79412b\",\n      \"rawTextureUuid\": \"09a4ed6e-e21e-42ce-87df-2046cfbac515\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 65,\n      \"height\": 57,\n      \"rawWidth\": 65,\n      \"rawHeight\": 57,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/god_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"cd0486ed-62a1-479d-bf9f-2a9f4542b72f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 64,\n  \"height\": 56,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"god_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"875d34e2-3d4c-43e3-a94a-5f545067ef6c\",\n      \"rawTextureUuid\": \"cd0486ed-62a1-479d-bf9f-2a9f4542b72f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 64,\n      \"height\": 56,\n      \"rawWidth\": 64,\n      \"rawHeight\": 56,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/kill_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"aa595eed-5e0f-4f07-a918-ceb5a2eb1932\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 65,\n  \"height\": 56,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"kill_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"cc143c8d-3b25-405e-8959-d388c73768b4\",\n      \"rawTextureUuid\": \"aa595eed-5e0f-4f07-a918-ceb5a2eb1932\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 65,\n      \"height\": 56,\n      \"rawWidth\": 65,\n      \"rawHeight\": 56,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/kill_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"977f2660-3907-4417-8060-7fbf01d6d55e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 65,\n  \"height\": 57,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"kill_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d20804c6-0d14-4ca6-8fea-33f6addafce8\",\n      \"rawTextureUuid\": \"977f2660-3907-4417-8060-7fbf01d6d55e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 65,\n      \"height\": 57,\n      \"rawWidth\": 65,\n      \"rawHeight\": 57,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/kill_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"64555a51-a34f-487f-8d32-627bce5f5713\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 65,\n  \"height\": 57,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"kill_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"01f06b76-a6de-4a22-8b76-ec406d06c99c\",\n      \"rawTextureUuid\": \"64555a51-a34f-487f-8d32-627bce5f5713\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 65,\n      \"height\": 57,\n      \"rawWidth\": 65,\n      \"rawHeight\": 57,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/kill_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a4c919a9-7bc0-495e-bd5c-3ed1b0acb4a3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 64,\n  \"height\": 55,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"kill_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9455f8b5-a5da-4af4-a560-8f8c6c408037\",\n      \"rawTextureUuid\": \"a4c919a9-7bc0-495e-bd5c-3ed1b0acb4a3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 64,\n      \"height\": 55,\n      \"rawWidth\": 64,\n      \"rawHeight\": 55,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/kill_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4f0118c3-5ce8-4059-bc68-00db590999f4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 56,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"kill_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8c15b0c9-f564-456d-add1-9bdd2254d52e\",\n      \"rawTextureUuid\": \"4f0118c3-5ce8-4059-bc68-00db590999f4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 56,\n      \"rawWidth\": 66,\n      \"rawHeight\": 56,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/kill_gq_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9a42d654-7411-4d94-9b69-074dbc581937\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 102,\n  \"height\": 102,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"kill_gq_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"aa3fa8f0-1f45-4ad1-9fbc-205e17a9b662\",\n      \"rawTextureUuid\": \"9a42d654-7411-4d94-9b69-074dbc581937\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 102,\n      \"height\": 102,\n      \"rawWidth\": 102,\n      \"rawHeight\": 102,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/kill_gq_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0973d434-ed49-4611-af30-0b809d45ed7c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 107,\n  \"height\": 107,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"kill_gq_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"abe98fba-a98f-485b-b2f9-c7cc21e96fde\",\n      \"rawTextureUuid\": \"0973d434-ed49-4611-af30-0b809d45ed7c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 107,\n      \"height\": 107,\n      \"rawWidth\": 107,\n      \"rawHeight\": 107,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/kill_kill.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"50910e23-8313-4eaf-8776-a2c831072827\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 63,\n  \"height\": 57,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"kill_kill\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2688ebaa-5ad1-4ef0-8ed4-133a09655fe3\",\n      \"rawTextureUuid\": \"50910e23-8313-4eaf-8776-a2c831072827\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 63,\n      \"height\": 57,\n      \"rawWidth\": 63,\n      \"rawHeight\": 57,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/killing_spree_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5eeb65b1-6be9-40bb-9dfd-be282ac50c76\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 65,\n  \"height\": 57,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"killing_spree_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"716304bd-a48c-4215-86cc-7e58cb7eeb4a\",\n      \"rawTextureUuid\": \"5eeb65b1-6be9-40bb-9dfd-be282ac50c76\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 65,\n      \"height\": 57,\n      \"rawWidth\": 65,\n      \"rawHeight\": 57,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/killing_spree_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"65091b76-188d-4193-b052-07806ce7893e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 64,\n  \"height\": 56,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"killing_spree_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5f4956ef-5d4f-4051-baa8-df0915736d2c\",\n      \"rawTextureUuid\": \"65091b76-188d-4193-b052-07806ce7893e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 64,\n      \"height\": 56,\n      \"rawWidth\": 64,\n      \"rawHeight\": 56,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/legendary_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6366a9dd-9fd9-4ee4-8109-c95a48aba056\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 63,\n  \"height\": 57,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"legendary_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"876ed722-18a4-4f9b-a803-a3fa58be32b0\",\n      \"rawTextureUuid\": \"6366a9dd-9fd9-4ee4-8109-c95a48aba056\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 63,\n      \"height\": 57,\n      \"rawWidth\": 63,\n      \"rawHeight\": 57,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/legendary_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"bf5eed6b-4a4a-41b6-8b1d-3a0f59a6503f\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 64,\n  \"height\": 56,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"legendary_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"de980516-7f17-4d91-bf0d-346cbd710309\",\n      \"rawTextureUuid\": \"bf5eed6b-4a4a-41b6-8b1d-3a0f59a6503f\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 64,\n      \"height\": 56,\n      \"rawWidth\": 64,\n      \"rawHeight\": 56,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/prop.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"41ea5ab8-8726-4b8f-8ccf-247f1792f5bd\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 244,\n  \"height\": 37,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"prop\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b5eb4d04-1b0e-455d-aafa-8e1bef13a65f\",\n      \"rawTextureUuid\": \"41ea5ab8-8726-4b8f-8ccf-247f1792f5bd\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 244,\n      \"height\": 37,\n      \"rawWidth\": 244,\n      \"rawHeight\": 37,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/rampage_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f3a0f11c-a66f-4f4a-9ef6-96469ecb7975\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 64,\n  \"height\": 57,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"rampage_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"175b5119-a4ea-4a1f-8997-9eacc7dfd891\",\n      \"rawTextureUuid\": \"f3a0f11c-a66f-4f4a-9ef6-96469ecb7975\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 64,\n      \"height\": 57,\n      \"rawWidth\": 64,\n      \"rawHeight\": 57,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/rampage_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"24b3dea6-4d77-4e5f-b038-a4fa407e7355\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 63,\n  \"height\": 56,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"rampage_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7312b2db-5baf-42f6-b39b-27d0684deb65\",\n      \"rawTextureUuid\": \"24b3dea6-4d77-4e5f-b038-a4fa407e7355\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 63,\n      \"height\": 56,\n      \"rawWidth\": 63,\n      \"rawHeight\": 56,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/role_lock.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5d620a09-4a10-45dc-b2eb-fb67a90417fe\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 99,\n  \"height\": 109,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"role_lock\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0c85aa2c-2d55-46d8-a332-49413b66a676\",\n      \"rawTextureUuid\": \"5d620a09-4a10-45dc-b2eb-fb67a90417fe\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 99,\n      \"height\": 109,\n      \"rawWidth\": 99,\n      \"rawHeight\": 109,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/unstopppedable_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"49380e57-928b-4b65-a513-88611638db39\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 65,\n  \"height\": 56,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"unstopppedable_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"d17bae09-d395-4b67-b9e6-ed532baa3716\",\n      \"rawTextureUuid\": \"49380e57-928b-4b65-a513-88611638db39\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 65,\n      \"height\": 56,\n      \"rawWidth\": 65,\n      \"rawHeight\": 56,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene/unstopppedable_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f496ebc3-bb83-47e2-827a-38f31de98f63\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 64,\n  \"height\": 56,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"unstopppedable_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3043979f-9b87-42c2-ae9d-d2ded3604e1c\",\n      \"rawTextureUuid\": \"f496ebc3-bb83-47e2-827a-38f31de98f63\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 64,\n      \"height\": 56,\n      \"rawWidth\": 64,\n      \"rawHeight\": 56,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/TheScene.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"96100129-365f-451c-82e7-4405fe28c581\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/base.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1c619ba7-91cb-411f-a8a3-326cf200c2e0\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 118,\n  \"height\": 119,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"base\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7a9b6853-75e7-4683-b5b3-4487b6270621\",\n      \"rawTextureUuid\": \"1c619ba7-91cb-411f-a8a3-326cf200c2e0\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 118,\n      \"height\": 119,\n      \"rawWidth\": 118,\n      \"rawHeight\": 119,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/base_broken.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f1bb2758-05af-4d9b-b3a9-b86b19e1ecd1\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 118,\n  \"height\": 119,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"base_broken\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"3fba8e3e-3d8f-41a0-a54f-7167b6199e4d\",\n      \"rawTextureUuid\": \"f1bb2758-05af-4d9b-b3a9-b86b19e1ecd1\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 118,\n      \"height\": 119,\n      \"rawWidth\": 118,\n      \"rawHeight\": 119,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/bodyRect.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b8242da3-ca11-4fbd-843d-768e84cb11fc\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 20,\n  \"height\": 20,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bodyRect\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"bdbca426-cab4-4a9d-b9b8-ebba8ee85e7c\",\n      \"rawTextureUuid\": \"b8242da3-ca11-4fbd-843d-768e84cb11fc\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 20,\n      \"height\": 20,\n      \"rawWidth\": 20,\n      \"rawHeight\": 20,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/bulletTrail.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"18cbefbe-d2ee-4731-a5f7-15af345dd6a3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 3,\n  \"height\": 3,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bulletTrail\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c1eeefbf-7c3d-49a1-8e8b-a0fa94a9c55c\",\n      \"rawTextureUuid\": \"18cbefbe-d2ee-4731-a5f7-15af345dd6a3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 3,\n      \"height\": 3,\n      \"rawWidth\": 3,\n      \"rawHeight\": 3,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/bullet_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"cc4a393d-5022-4b27-ba64-a1275a82d8b7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 9,\n  \"height\": 22,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bullet_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"9bf1ff1f-944c-4d9d-8b02-91e641852c64\",\n      \"rawTextureUuid\": \"cc4a393d-5022-4b27-ba64-a1275a82d8b7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 9,\n      \"height\": 22,\n      \"rawWidth\": 9,\n      \"rawHeight\": 22,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/bullet_tip_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a0e5a1ec-74bb-4542-8ca1-5e2d04b2b5e3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 200,\n  \"height\": 39,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"bullet_tip_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"befa91d0-42c6-4374-80b5-ccf468b09e23\",\n      \"rawTextureUuid\": \"a0e5a1ec-74bb-4542-8ca1-5e2d04b2b5e3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 200,\n      \"height\": 39,\n      \"rawWidth\": 200,\n      \"rawHeight\": 39,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/cly.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e030876d-9074-47e8-8012-1ad5a92fa0b3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 11,\n  \"height\": 11,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"cly\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ed50d44b-1718-4975-8002-41a75dbaf1ce\",\n      \"rawTextureUuid\": \"e030876d-9074-47e8-8012-1ad5a92fa0b3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 11,\n      \"height\": 11,\n      \"rawWidth\": 11,\n      \"rawHeight\": 11,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/danger_tip_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"33d7bb75-9ebf-4d29-9bbe-454b9dcaeea1\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 49,\n  \"height\": 61,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"danger_tip_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"6cfd5b16-4457-4d30-a02a-21af84a93080\",\n      \"rawTextureUuid\": \"33d7bb75-9ebf-4d29-9bbe-454b9dcaeea1\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 49,\n      \"height\": 61,\n      \"rawWidth\": 49,\n      \"rawHeight\": 61,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/danger_tip_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e8a25d9b-b577-44c3-a4d7-74b66c03cd48\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 9,\n  \"height\": 29,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"danger_tip_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a2d2b5da-e15b-48ea-8ba9-9827624768ee\",\n      \"rawTextureUuid\": \"e8a25d9b-b577-44c3-a4d7-74b66c03cd48\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 9,\n      \"height\": 29,\n      \"rawWidth\": 9,\n      \"rawHeight\": 29,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/dot.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"810bd88b-6e39-478d-8f6c-74d31691c105\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 10,\n  \"height\": 10,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dot\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5179046d-3d21-4bb6-a6cf-7fa0ef13ca24\",\n      \"rawTextureUuid\": \"810bd88b-6e39-478d-8f6c-74d31691c105\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 10,\n      \"height\": 10,\n      \"rawWidth\": 10,\n      \"rawHeight\": 10,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/dot_p.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c1bfc1a2-6113-4bef-936d-5d39be8cc50c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 10,\n  \"height\": 10,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"dot_p\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f019ec56-ce3f-493d-8739-728fe8719c2d\",\n      \"rawTextureUuid\": \"c1bfc1a2-6113-4bef-936d-5d39be8cc50c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 10,\n      \"height\": 10,\n      \"rawWidth\": 10,\n      \"rawHeight\": 10,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/gameItem/20y.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1d8742aa-ce1e-4429-969e-0432b900ce1b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 17,\n  \"height\": 11,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"20y\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"53bb36a2-8fbc-413a-8518-ae72be8301fc\",\n      \"rawTextureUuid\": \"1d8742aa-ce1e-4429-969e-0432b900ce1b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 17,\n      \"height\": 11,\n      \"rawWidth\": 17,\n      \"rawHeight\": 11,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/gameItem/item_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2baa54b5-daa6-4965-a5af-2d5351f62f37\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 46,\n  \"height\": 51,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1a32997d-b214-4ab3-a4b9-5006afceb256\",\n      \"rawTextureUuid\": \"2baa54b5-daa6-4965-a5af-2d5351f62f37\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 46,\n      \"height\": 51,\n      \"rawWidth\": 46,\n      \"rawHeight\": 51,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/gameItem/item_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6dcf8b42-8289-45b5-b87c-5bc100edb266\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 46,\n  \"height\": 52,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f0712792-9980-480d-824f-ab8b053af27c\",\n      \"rawTextureUuid\": \"6dcf8b42-8289-45b5-b87c-5bc100edb266\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 46,\n      \"height\": 52,\n      \"rawWidth\": 46,\n      \"rawHeight\": 52,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/gameItem/item_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4ba48955-cef0-4d46-a90d-1d90c7def1f6\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 47,\n  \"height\": 51,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"50c0dea5-f9c1-4d2a-bfe8-ccc6acc46e43\",\n      \"rawTextureUuid\": \"4ba48955-cef0-4d46-a90d-1d90c7def1f6\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 47,\n      \"height\": 51,\n      \"rawWidth\": 47,\n      \"rawHeight\": 51,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/gameItem/item_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"7457d9c8-d810-4b2f-9f9e-91fb05d3c409\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 47,\n  \"height\": 51,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"15136acf-b283-4095-b84a-3f90052ff34b\",\n      \"rawTextureUuid\": \"7457d9c8-d810-4b2f-9f9e-91fb05d3c409\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 47,\n      \"height\": 51,\n      \"rawWidth\": 47,\n      \"rawHeight\": 51,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/gameItem/item_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0f905ce7-56ee-415e-9779-aaf41476b1b3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 45,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"59c0701b-c2f5-4b88-8fce-a5402fa53da7\",\n      \"rawTextureUuid\": \"0f905ce7-56ee-415e-9779-aaf41476b1b3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 45,\n      \"height\": 50,\n      \"rawWidth\": 45,\n      \"rawHeight\": 50,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/gameItem/item_6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"d28941df-220b-46f9-a851-7a86b7493ade\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 45,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a2f474e9-4359-4e3a-bb3f-53f9b2176ee6\",\n      \"rawTextureUuid\": \"d28941df-220b-46f9-a851-7a86b7493ade\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 45,\n      \"height\": 50,\n      \"rawWidth\": 45,\n      \"rawHeight\": 50,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/gameItem/item_7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"84bc26dd-926d-49c9-9f39-ed7f80d2e103\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 45,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2038224b-abef-445e-accc-2875cdcd4276\",\n      \"rawTextureUuid\": \"84bc26dd-926d-49c9-9f39-ed7f80d2e103\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 45,\n      \"height\": 50,\n      \"rawWidth\": 45,\n      \"rawHeight\": 50,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/gameItem/item_8.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"75429582-78ed-433e-95c9-b96824e31ef4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 45,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_8\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"ee8f23f9-4f5a-4572-808d-fb5dfc84c98c\",\n      \"rawTextureUuid\": \"75429582-78ed-433e-95c9-b96824e31ef4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 45,\n      \"height\": 50,\n      \"rawWidth\": 45,\n      \"rawHeight\": 50,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/gameItem/item_ty.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f8cc29d3-5374-4469-9d30-5496e584a3e3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 39,\n  \"height\": 34,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"item_ty\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1e464f31-6a36-4fd1-960b-df13244bf753\",\n      \"rawTextureUuid\": \"f8cc29d3-5374-4469-9d30-5496e584a3e3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 39,\n      \"height\": 34,\n      \"rawWidth\": 39,\n      \"rawHeight\": 34,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/gameItem.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"5ddb2ee9-5dc5-4457-b1e8-10d685b39093\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/hurt_zone.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"f6a5ae8b-a587-4d6f-a191-721a458cb421\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 220,\n  \"height\": 220,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"hurt_zone\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b9207f0e-ee2e-442f-a3a9-684d3fddc1c7\",\n      \"rawTextureUuid\": \"f6a5ae8b-a587-4d6f-a191-721a458cb421\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 220,\n      \"height\": 220,\n      \"rawWidth\": 220,\n      \"rawHeight\": 220,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/id20.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5643543e-361e-48c3-a69e-d25cf8966d2b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 59,\n  \"height\": 58,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"id20\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"df6af376-a869-45e0-843c-4480902adae9\",\n      \"rawTextureUuid\": \"5643543e-361e-48c3-a69e-d25cf8966d2b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 59,\n      \"height\": 58,\n      \"rawWidth\": 59,\n      \"rawHeight\": 58,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/js.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"327bb2bf-d530-453f-a93b-7a7242577fbf\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 59,\n  \"height\": 58,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"js\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7f7bb870-5f30-4247-be34-df41e2ac8440\",\n      \"rawTextureUuid\": \"327bb2bf-d530-453f-a93b-7a7242577fbf\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 59,\n      \"height\": 58,\n      \"rawWidth\": 59,\n      \"rawHeight\": 58,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/js_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4bec4155-b822-4bf8-91b7-e2a9ec822f35\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 95,\n  \"height\": 65,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"js_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a4731609-1b34-4d64-8db4-bb73c8cac794\",\n      \"rawTextureUuid\": \"4bec4155-b822-4bf8-91b7-e2a9ec822f35\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 95,\n      \"height\": 65,\n      \"rawWidth\": 95,\n      \"rawHeight\": 65,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/js_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"652cc1ee-49d8-4c6c-a571-39a5b85faf4a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 92,\n  \"height\": 63,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"js_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2d1edc74-6c03-4391-bd79-30a45cbd840a\",\n      \"rawTextureUuid\": \"652cc1ee-49d8-4c6c-a571-39a5b85faf4a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 92,\n      \"height\": 63,\n      \"rawWidth\": 92,\n      \"rawHeight\": 63,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/jsg.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"de0faf11-68f5-46ac-8703-02dd7e3f5c81\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 49,\n  \"height\": 49,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"jsg\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2f0feff1-d417-4340-bfd5-fbf19d473f20\",\n      \"rawTextureUuid\": \"de0faf11-68f5-46ac-8703-02dd7e3f5c81\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 49,\n      \"height\": 49,\n      \"rawWidth\": 49,\n      \"rawHeight\": 49,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/mb_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9e59f132-17dd-4ea1-b22c-483690290cfc\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 51,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"mb_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"612c2cfd-228f-41a0-b0f0-180811e88dc2\",\n      \"rawTextureUuid\": \"9e59f132-17dd-4ea1-b22c-483690290cfc\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 51,\n      \"rawWidth\": 54,\n      \"rawHeight\": 51,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/mb_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1b6f3343-8c3c-47da-996c-86d3be93e3de\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 54,\n  \"height\": 60,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"mb_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"00174494-3e79-4daf-b3e0-ce3db29e4bba\",\n      \"rawTextureUuid\": \"1b6f3343-8c3c-47da-996c-86d3be93e3de\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 54,\n      \"height\": 60,\n      \"rawWidth\": 54,\n      \"rawHeight\": 60,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/role8_tw.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"009a486d-43c2-4b0b-997c-5f7789b1a9ac\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 39,\n  \"height\": 53,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"role8_tw\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4c4f3ac4-7d1f-4e24-b1b1-c3a903f1ce96\",\n      \"rawTextureUuid\": \"009a486d-43c2-4b0b-997c-5f7789b1a9ac\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 39,\n      \"height\": 53,\n      \"rawWidth\": 39,\n      \"rawHeight\": 53,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/role9_tw.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"fdecb16c-2850-442e-9197-f16e823ad617\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 39,\n  \"height\": 53,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"role9_tw\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"39c85c00-586f-4586-8b57-c01a620a8b35\",\n      \"rawTextureUuid\": \"fdecb16c-2850-442e-9197-f16e823ad617\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 39,\n      \"height\": 53,\n      \"rawWidth\": 39,\n      \"rawHeight\": 53,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/role_tw.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"99e11ce6-13d0-46cb-a504-a0c251c65ccb\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 37,\n  \"height\": 53,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"role_tw\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"c9a2a3e2-95d2-400c-8889-22561e9b77bb\",\n      \"rawTextureUuid\": \"99e11ce6-13d0-46cb-a504-a0c251c65ccb\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 37,\n      \"height\": 53,\n      \"rawWidth\": 37,\n      \"rawHeight\": 53,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/skill_tip_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"02fa2a20-45fc-4e49-8736-7cfd37c0c5c2\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 138,\n  \"height\": 70,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"skill_tip_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7900cb21-8b13-4e6c-a0ce-37b8d57150ad\",\n      \"rawTextureUuid\": \"02fa2a20-45fc-4e49-8736-7cfd37c0c5c2\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 138,\n      \"height\": 70,\n      \"rawWidth\": 138,\n      \"rawHeight\": 70,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/speed_tw.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"cb081b55-c51e-4c00-8b8e-b1a7c61843df\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 39,\n  \"height\": 53,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"speed_tw\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"48a5913d-aa1f-47a3-966d-af11744550dc\",\n      \"rawTextureUuid\": \"cb081b55-c51e-4c00-8b8e-b1a7c61843df\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 39,\n      \"height\": 53,\n      \"rawWidth\": 39,\n      \"rawHeight\": 53,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/ts_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1df462d3-a6fa-4775-bad0-7221c3cd5d75\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 66,\n  \"height\": 65,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ts_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a1b4038e-4f80-482b-8495-151bf304cf77\",\n      \"rawTextureUuid\": \"1df462d3-a6fa-4775-bad0-7221c3cd5d75\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 66,\n      \"height\": 65,\n      \"rawWidth\": 66,\n      \"rawHeight\": 65,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/ts_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"79587fa4-85a7-4d51-853e-4029e85e28fe\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 45,\n  \"height\": 45,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ts_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"850df2b5-948f-475a-a917-bc193d918862\",\n      \"rawTextureUuid\": \"79587fa4-85a7-4d51-853e-4029e85e28fe\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 45,\n      \"height\": 45,\n      \"rawWidth\": 45,\n      \"rawHeight\": 45,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/ts_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"48a7201a-2151-4be0-ab88-376666393a92\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 11,\n  \"height\": 32,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ts_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"348d41b1-1ece-452a-aecd-7c693f7ae2a3\",\n      \"rawTextureUuid\": \"48a7201a-2151-4be0-ab88-376666393a92\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 11,\n      \"height\": 32,\n      \"rawWidth\": 11,\n      \"rawHeight\": 32,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/ts_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2725e5e4-a3ac-403f-8a7a-b40c975bc915\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 60,\n  \"height\": 61,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"ts_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2147a698-1d5c-4079-beb1-3e09372f0b55\",\n      \"rawTextureUuid\": \"2725e5e4-a3ac-403f-8a7a-b40c975bc915\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 60,\n      \"height\": 61,\n      \"rawWidth\": 60,\n      \"rawHeight\": 61,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/wifi_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4f5ffea8-3877-4d73-aaaa-7ba935f98c11\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 7,\n  \"height\": 5,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"wifi_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"2264f4c8-2d6d-4903-8560-395f60c8b15c\",\n      \"rawTextureUuid\": \"4f5ffea8-3877-4d73-aaaa-7ba935f98c11\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 7,\n      \"height\": 5,\n      \"rawWidth\": 7,\n      \"rawHeight\": 5,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic/zd.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4e135906-9008-4cce-b74a-47fe7fbf450c\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 10,\n  \"height\": 12,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zd\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5052387a-dec1-4d51-8dee-6a0bafb8876b\",\n      \"rawTextureUuid\": \"4e135906-9008-4cce-b74a-47fe7fbf450c\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 10,\n      \"height\": 12,\n      \"rawWidth\": 10,\n      \"rawHeight\": 12,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/themanpic.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"d6c19abf-9235-4a15-867e-d72852cdc0c0\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/AutoAtlas.pac",
    "content": "{\n    \"__type__\": \"cc.SpriteAtlas\"\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/AutoAtlas.pac.meta",
    "content": "{\n  \"ver\": \"1.2.0\",\n  \"uuid\": \"d8fedbda-13ea-44a4-8cbd-d735f1d70940\",\n  \"maxWidth\": 1024,\n  \"maxHeight\": 1024,\n  \"padding\": 2,\n  \"allowRotation\": true,\n  \"forceSquared\": false,\n  \"powerOfTwo\": true,\n  \"algorithm\": \"MaxRects\",\n  \"format\": \"png\",\n  \"quality\": 80,\n  \"contourBleed\": false,\n  \"paddingBleed\": false,\n  \"filterUnused\": false,\n  \"packable\": false,\n  \"premultiplyAlpha\": false,\n  \"filterMode\": \"bilinear\",\n  \"platformSettings\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/grade1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"36f3ee9c-588a-46e4-b23d-319e5a4e6302\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"grade1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0bea8cf1-1661-4fa1-be92-01c5eda39cc9\",\n      \"rawTextureUuid\": \"36f3ee9c-588a-46e4-b23d-319e5a4e6302\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -0.5,\n      \"offsetY\": 1,\n      \"trimX\": 2,\n      \"trimY\": 5,\n      \"width\": 35,\n      \"height\": 28,\n      \"rawWidth\": 40,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/grade10.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5892b609-5ccf-4632-8ca9-2f0fabe38849\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"grade10\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"71259728-83b9-4ebc-ba45-1775f2825f1d\",\n      \"rawTextureUuid\": \"5892b609-5ccf-4632-8ca9-2f0fabe38849\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0.5,\n      \"offsetY\": 0.5,\n      \"trimX\": 2,\n      \"trimY\": 4,\n      \"width\": 37,\n      \"height\": 31,\n      \"rawWidth\": 40,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/grade2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"c8e7b2cd-2f54-4f34-a18a-0083a69c5bf7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"grade2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"150d095a-0f5c-4077-a13a-2a77cc79b3a1\",\n      \"rawTextureUuid\": \"c8e7b2cd-2f54-4f34-a18a-0083a69c5bf7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -0.5,\n      \"offsetY\": 1,\n      \"trimX\": 2,\n      \"trimY\": 5,\n      \"width\": 35,\n      \"height\": 28,\n      \"rawWidth\": 40,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/grade3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ea2ec6f9-eb3a-407c-8e56-9be987f2eb39\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"grade3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"4c203f6e-7937-41ee-bf31-c77056925ad3\",\n      \"rawTextureUuid\": \"ea2ec6f9-eb3a-407c-8e56-9be987f2eb39\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 1,\n      \"trimX\": 2,\n      \"trimY\": 5,\n      \"width\": 36,\n      \"height\": 28,\n      \"rawWidth\": 40,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/grade4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"ef27812f-4bae-4aaa-ad44-d79c84ce9d23\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"grade4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"18b5e2d3-c4e8-44ff-a587-01a9e9bb04ee\",\n      \"rawTextureUuid\": \"ef27812f-4bae-4aaa-ad44-d79c84ce9d23\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": -0.5,\n      \"offsetY\": 1,\n      \"trimX\": 2,\n      \"trimY\": 5,\n      \"width\": 35,\n      \"height\": 28,\n      \"rawWidth\": 40,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/grade5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b2c70d58-428e-4035-9de7-aaa64a0e31f7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"grade5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1c54a708-fec2-4f5a-8200-42d306cc9ec5\",\n      \"rawTextureUuid\": \"b2c70d58-428e-4035-9de7-aaa64a0e31f7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0.5,\n      \"trimX\": 2,\n      \"trimY\": 4,\n      \"width\": 36,\n      \"height\": 31,\n      \"rawWidth\": 40,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/grade6.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"579747f7-4ce8-43d9-b299-cffe3de3fa16\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"grade6\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"0d76e7f9-8ead-488d-8060-23fd9ed5f424\",\n      \"rawTextureUuid\": \"579747f7-4ce8-43d9-b299-cffe3de3fa16\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0.5,\n      \"trimX\": 2,\n      \"trimY\": 4,\n      \"width\": 36,\n      \"height\": 31,\n      \"rawWidth\": 40,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/grade7.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4d166efa-f55e-439f-806b-8ddd82e1ceeb\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"grade7\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7806e9a8-4594-4098-b531-52b6ee3f4660\",\n      \"rawTextureUuid\": \"4d166efa-f55e-439f-806b-8ddd82e1ceeb\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0.5,\n      \"trimX\": 2,\n      \"trimY\": 4,\n      \"width\": 36,\n      \"height\": 31,\n      \"rawWidth\": 40,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/grade8.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"37838c49-9a56-4fc7-808b-f1720defef97\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"grade8\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a16bba77-bc9d-4056-a8f5-d129736c834f\",\n      \"rawTextureUuid\": \"37838c49-9a56-4fc7-808b-f1720defef97\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0.5,\n      \"trimX\": 2,\n      \"trimY\": 4,\n      \"width\": 36,\n      \"height\": 31,\n      \"rawWidth\": 40,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/grade9.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"6da6a70c-7b91-4f77-a915-ce273d4c5943\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 40,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"grade9\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"eaf4957f-e774-4aa4-a349-865cdbe13570\",\n      \"rawTextureUuid\": \"6da6a70c-7b91-4f77-a915-ce273d4c5943\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0.5,\n      \"trimX\": 2,\n      \"trimY\": 4,\n      \"width\": 36,\n      \"height\": 31,\n      \"rawWidth\": 40,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_boy_0.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0f920508-14dc-4a74-b0a1-bff751527a39\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_boy_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1a8614f1-055a-4ef6-9b8a-c7494b9e21ee\",\n      \"rawTextureUuid\": \"0f920508-14dc-4a74-b0a1-bff751527a39\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 104,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_boy_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e0964e5d-bbd2-4717-92b3-48b402e35f6e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_boy_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f4291eab-d5c4-4f85-9784-466782ce4e77\",\n      \"rawTextureUuid\": \"e0964e5d-bbd2-4717-92b3-48b402e35f6e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 104,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_boy_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"80a1ce43-3622-4345-92f2-7d0f0df12370\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_boy_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"da999093-058c-4060-8758-9ac6c13b20bb\",\n      \"rawTextureUuid\": \"80a1ce43-3622-4345-92f2-7d0f0df12370\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 104,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_boy_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"b5bf529d-64bb-4930-a3ff-304d3a386b1d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_boy_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b8497473-5d8f-48ac-8bf1-41c00eca0154\",\n      \"rawTextureUuid\": \"b5bf529d-64bb-4930-a3ff-304d3a386b1d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 104,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_boy_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"1ffb2a90-fe20-4e7c-879f-88e03e46a377\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_boy_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"5a0919bf-4cf7-49e2-bc32-115c0968926e\",\n      \"rawTextureUuid\": \"1ffb2a90-fe20-4e7c-879f-88e03e46a377\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 104,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_boy_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"0712a418-c289-409c-827b-5fbd4572cb39\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_boy_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"baa15fbd-591c-428f-86d9-95d999912d6f\",\n      \"rawTextureUuid\": \"0712a418-c289-409c-827b-5fbd4572cb39\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 104,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_diamond.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9ba59dcf-e607-43d1-8293-2240342756d7\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 49,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_diamond\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"13d69ba9-cdf8-4b38-aa27-30566838e7ee\",\n      \"rawTextureUuid\": \"9ba59dcf-e607-43d1-8293-2240342756d7\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 49,\n      \"height\": 40,\n      \"rawWidth\": 49,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_exp.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"8efc747b-4f71-4942-8ca9-43b7e3e894d4\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 49,\n  \"height\": 40,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_exp\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"b7ceaf14-f3fc-45dc-9d29-f57c1c0162ee\",\n      \"rawTextureUuid\": \"8efc747b-4f71-4942-8ca9-43b7e3e894d4\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 1.5,\n      \"offsetY\": 0,\n      \"trimX\": 3,\n      \"trimY\": 0,\n      \"width\": 46,\n      \"height\": 40,\n      \"rawWidth\": 49,\n      \"rawHeight\": 40,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_girl_0.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"35ba7862-96ca-41ca-9966-34c36dafb9f3\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_girl_0\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8634744a-ef46-4d3d-94a9-628d0a11396e\",\n      \"rawTextureUuid\": \"35ba7862-96ca-41ca-9966-34c36dafb9f3\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 104,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_girl_1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"13a1e277-35b5-417c-8c35-c8f0cd16d397\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_girl_1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e5a63e5c-fac7-47fc-a1bf-69aafd6e16b2\",\n      \"rawTextureUuid\": \"13a1e277-35b5-417c-8c35-c8f0cd16d397\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 104,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_girl_2.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"943498ca-a4f7-4ecd-9946-d140d8d8f78a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_girl_2\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"f84136de-fa2c-40e6-aba3-80ac9ca9c876\",\n      \"rawTextureUuid\": \"943498ca-a4f7-4ecd-9946-d140d8d8f78a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 104,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_girl_3.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"73340004-e44b-468f-8c7a-cc524d4a432b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_girl_3\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1ae09d07-5d6c-4c21-8e19-85b40d2902d5\",\n      \"rawTextureUuid\": \"73340004-e44b-468f-8c7a-cc524d4a432b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 104,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_girl_4.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e67eccb8-4c5d-4e9a-9c9d-cb8ee7509169\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_girl_4\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"1203c8ab-ab77-4419-8cf4-fbead8bccb91\",\n      \"rawTextureUuid\": \"e67eccb8-4c5d-4e9a-9c9d-cb8ee7509169\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 104,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_girl_5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"95e0d3c3-f613-470b-afda-e5ffb62fee32\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 104,\n  \"height\": 104,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_girl_5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"eec162c8-8b6a-4457-a777-5e98958a4b28\",\n      \"rawTextureUuid\": \"95e0d3c3-f613-470b-afda-e5ffb62fee32\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 104,\n      \"height\": 104,\n      \"rawWidth\": 104,\n      \"rawHeight\": 104,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/icon_gold.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"a413ae29-d8f4-4a15-b7f3-4ae06b006bc8\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 41,\n  \"height\": 41,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"icon_gold\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e716974f-f6e7-4e72-8824-b9fe2a9b0a2a\",\n      \"rawTextureUuid\": \"a413ae29-d8f4-4a15-b7f3-4ae06b006bc8\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 41,\n      \"height\": 41,\n      \"rawWidth\": 41,\n      \"rawHeight\": 41,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/sex_boy.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"22db5ecd-61ab-4ea7-bf58-61f7bfbbfe2e\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 44,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sex_boy\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"8ddb4aec-0c0c-4e5e-987c-85638169457d\",\n      \"rawTextureUuid\": \"22db5ecd-61ab-4ea7-bf58-61f7bfbbfe2e\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": -0.5,\n      \"trimX\": 2,\n      \"trimY\": 1,\n      \"width\": 40,\n      \"height\": 49,\n      \"rawWidth\": 44,\n      \"rawHeight\": 50,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user/sex_girl.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"e4ce54f7-aea4-44c3-a52e-6f8029ad197a\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 44,\n  \"height\": 50,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"sex_girl\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"e464c27b-6de5-414b-b350-ee3e57d5766a\",\n      \"rawTextureUuid\": \"e4ce54f7-aea4-44c3-a52e-6f8029ad197a\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 1,\n      \"offsetY\": -1,\n      \"trimX\": 4,\n      \"trimY\": 3,\n      \"width\": 38,\n      \"height\": 46,\n      \"rawWidth\": 44,\n      \"rawHeight\": 50,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/user.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"25923a22-0dba-4e58-a5a2-32c7aaf1d7aa\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture/zjm_di.jpg.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"4caf8edb-1357-4359-bd32-005fe0c31612\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 803,\n  \"height\": 480,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"zjm_di\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"43b7e345-af28-4d6f-a98a-6bcc2deb962c\",\n      \"rawTextureUuid\": \"4caf8edb-1357-4359-bd32-005fe0c31612\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 803,\n      \"height\": 480,\n      \"rawWidth\": 803,\n      \"rawHeight\": 480,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/Texture.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"7b81d4e8-ec84-4716-968d-500ac1d78a54\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/migration/use_v2.0.x_cc.Toggle_event.js",
    "content": "/*\n * This script is automatically generated by Cocos Creator and is only compatible with projects prior to v2.1.0.\n * You do not need to manually add this script in any other project.\n * If you don't use cc.Toggle in your project, you can delete this script directly.\n * If your project is hosted in VCS such as git, submit this script together.\n *\n * 此脚本由 Cocos Creator 自动生成，仅用于兼容 v2.1.0 之前版本的工程，\n * 你无需在任何其它项目中手动添加此脚本。\n * 如果你的项目中没用到 Toggle，可直接删除该脚本。\n * 如果你的项目有托管于 git 等版本库，请将此脚本一并上传。\n */\n\nif (cc.Toggle) {\n    // Whether the 'toggle' and 'checkEvents' events are fired when 'toggle.check() / toggle.uncheck()' is called in the code\n    // 在代码中调用 'toggle.check() / toggle.uncheck()' 时是否触发 'toggle' 与 'checkEvents' 事件\n    cc.Toggle._triggerEventInScript_check = true;\n}\n"
  },
  {
    "path": "ChessCardHall/assets/migration/use_v2.0.x_cc.Toggle_event.js.meta",
    "content": "{\n  \"ver\": \"1.0.8\",\n  \"uuid\": \"61df9144-cdf4-4632-8cce-161c7b820b56\",\n  \"isPlugin\": false,\n  \"loadPluginInWeb\": true,\n  \"loadPluginInNative\": true,\n  \"loadPluginInEditor\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/migration.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"c34b18a5-4fee-4636-8c48-483610aaafe8\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/prefabs/Canvas.prefab",
    "content": "[\n  {\n    \"__type__\": \"cc.Prefab\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_native\": \"\",\n    \"data\": {\n      \"__id__\": 1\n    },\n    \"optimizationPolicy\": 0,\n    \"asyncLoadAssets\": false,\n    \"readonly\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Canvas\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [\n      {\n        \"__id__\": 2\n      },\n      {\n        \"__id__\": 5\n      },\n      {\n        \"__id__\": 9\n      },\n      {\n        \"__id__\": 74\n      },\n      {\n        \"__id__\": 90\n      },\n      {\n        \"__id__\": 93\n      },\n      {\n        \"__id__\": 127\n      },\n      {\n        \"__id__\": 177\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 180\n      },\n      {\n        \"__id__\": 181\n      },\n      {\n        \"__id__\": 182\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 183\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        568,\n        320,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Main Camera\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 3\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 4\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        243.35313846342729,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Camera\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_cullingMask\": 4294967295,\n    \"_clearFlags\": 7,\n    \"_backgroundColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_depth\": -1,\n    \"_zoomRatio\": 1,\n    \"_targetTexture\": null,\n    \"_fov\": 60,\n    \"_orthoSize\": 10,\n    \"_nearClip\": 1,\n    \"_farClip\": 4096,\n    \"_ortho\": true,\n    \"_rect\": {\n      \"__type__\": \"cc.Rect\",\n      \"x\": 0,\n      \"y\": 0,\n      \"width\": 1,\n      \"height\": 1\n    },\n    \"_renderStages\": 1,\n    \"_alignWithScreen\": true,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"ec9jiIKiRLUY6EO5SpWEmT\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 6\n      },\n      {\n        \"__id__\": 7\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 8\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 5\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"43b7e345-af28-4d6f-a98a-6bcc2deb962c\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 5\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 1280,\n    \"_originalHeight\": 720,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"9d6BtRbz1BV6gA/PJG+4Bt\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"top\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 10\n      },\n      {\n        \"__id__\": 49\n      },\n      {\n        \"__id__\": 67\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 71\n      },\n      {\n        \"__id__\": 72\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 73\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 860,\n      \"height\": 86\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        320,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"userInfo\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 9\n    },\n    \"_children\": [\n      {\n        \"__id__\": 11\n      },\n      {\n        \"__id__\": 14\n      },\n      {\n        \"__id__\": 17\n      },\n      {\n        \"__id__\": 20\n      },\n      {\n        \"__id__\": 23\n      },\n      {\n        \"__id__\": 26\n      },\n      {\n        \"__id__\": 29\n      },\n      {\n        \"__id__\": 38\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 47\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 48\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -325,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_payerInfo\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 10\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 12\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 13\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 158,\n      \"height\": 64\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        156,\n        -43,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 11\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5477c0ae-965b-45dc-987e-06a9bb13edf1\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"52KIQywg1K1ZmiGCkssEyC\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 10\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 15\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 16\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 72,\n      \"height\": 72\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        48,\n        -43,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 14\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"f4291eab-d5c4-4f85-9784-466782ce4e77\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"12bZ03e8FKUbaWw83ZPeQM\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"grade\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 10\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 18\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 19\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 35,\n      \"height\": 28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        106,\n        -31,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 17\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"0bea8cf1-1661-4fa1-be92-01c5eda39cc9\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"06PtNTYBNFWJQAyhsP6WJX\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"level\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 10\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 21\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 22\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 11,\n      \"g\": 229,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 52.64,\n      \"height\": 30.24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        129,\n        -32,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 20\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"Lv.1\",\n    \"_N$string\": \"Lv.1\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"21IMhaG6hMs6wFvECbUIms\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"nickname\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 10\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 24\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 25\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 100,\n      \"height\": 25.2\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        90,\n        -60,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 23\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"我是小小人\",\n    \"_N$string\": \"我是小小人\",\n    \"_fontSize\": 20,\n    \"_lineHeight\": 20,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"c26d8l+aBGP5ot3Hjgvckx\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnUserInfo\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 10\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 27\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 28\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 200,\n      \"height\": 80\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        110.30000000000001,\n        -43,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 26\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 0,\n    \"transition\": 0,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 26\n    },\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"6ciDC58SpJloU8ANyvg2fZ\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"gold\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 10\n    },\n    \"_children\": [\n      {\n        \"__id__\": 30\n      },\n      {\n        \"__id__\": 33\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 36\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 37\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 170,\n      \"height\": 48\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        354,\n        -42,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 29\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 31\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 32\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 246,\n      \"b\": 11,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 105,\n      \"height\": 37.8\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -36,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 30\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"8.888亿\",\n    \"_N$string\": \"8.888亿\",\n    \"_fontSize\": 30,\n    \"_lineHeight\": 30,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"caWBQTKrRJp7MwAm+ovRf3\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon_gold\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 29\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 34\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 35\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 41,\n      \"height\": 41\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -60,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 33\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"e716974f-f6e7-4e72-8824-b9fe2a9b0a2a\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"34po6JFq1FOaH1HOhzhFpb\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 29\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a6930f2b-007c-4e60-8008-5b8148640bb3\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"5dppfaRrlBdrWl0fJzV4cL\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"diamond\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 10\n    },\n    \"_children\": [\n      {\n        \"__id__\": 39\n      },\n      {\n        \"__id__\": 42\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 45\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 46\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 170,\n      \"height\": 48\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        565,\n        -42,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 40\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 41\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 114,\n      \"b\": 249,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 105,\n      \"height\": 37.8\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -36,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 39\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"66.66万\",\n    \"_N$string\": \"66.66万\",\n    \"_fontSize\": 30,\n    \"_lineHeight\": 30,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"36ZW8mdLBL+oFwC3VhBpg6\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon_diamond\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 43\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 44\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 49,\n      \"height\": 40\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -60,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 42\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"13d69ba9-cdf8-4b38-aa27-30566838e7ee\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"8fuw09YZxFMYfBC0RjA/Mm\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 38\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a6930f2b-007c-4e60-8008-5b8148640bb3\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"6eIWWxclxMebdGypW9+SbC\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 10\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 8,\n    \"_left\": 105,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"08KfmLu2JL9Yp03g01pSsX\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"notice\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 9\n    },\n    \"_children\": [\n      {\n        \"__id__\": 50\n      },\n      {\n        \"__id__\": 62\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 65\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 66\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -315,\n        -123,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_notice\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 49\n    },\n    \"_children\": [\n      {\n        \"__id__\": 51\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 60\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 61\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 530,\n      \"height\": 62\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"mask\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 50\n    },\n    \"_children\": [\n      {\n        \"__id__\": 52\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 58\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 59\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 516,\n      \"height\": 62\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        10,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 51\n    },\n    \"_children\": [\n      {\n        \"__id__\": 53\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 56\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 57\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 64,\n      \"height\": 63\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        520,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrivateNode\",\n    \"_name\": \"RICHTEXT_CHILD\",\n    \"_objFlags\": 1024,\n    \"_parent\": {\n      \"__id__\": 52\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 54\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 55\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 64,\n      \"height\": 63\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -31.5,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_zIndex\": -32768,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"showInEditor\": false,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 53\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": true,\n    \"_string\": \"信息\",\n    \"_N$string\": \"信息\",\n    \"_fontSize\": 32,\n    \"_lineHeight\": 50,\n    \"_enableWrapText\": true,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"eeyH+EwG9P2athn+W/cLBm\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.RichText\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 52\n    },\n    \"_enabled\": true,\n    \"_fontFamily\": \"Arial\",\n    \"_isSystemFontUsed\": true,\n    \"_N$string\": \"信息\",\n    \"_N$horizontalAlign\": 0,\n    \"_N$fontSize\": 32,\n    \"_N$font\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_N$cacheMode\": 0,\n    \"_N$maxWidth\": 0,\n    \"_N$lineHeight\": 50,\n    \"_N$imageAtlas\": {\n      \"__uuid__\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\"\n    },\n    \"_N$handleTouchEvent\": true,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"4drdS2e9dEr5n/NTEDCB9O\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Mask\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 51\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_segments\": 64,\n    \"_N$alphaThreshold\": 1,\n    \"_N$inverted\": false,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"f1oTgFlrZNF4rXnjVjXm4a\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 50\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"9b5af999-533e-452c-a11a-d0c005c92130\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"efLuCMMshJn7EWf+RncHDO\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon_notice\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 49\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 63\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 64\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 74,\n      \"height\": 71\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -3,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 62\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ce9d845c-e5b8-4125-805f-c48743b8114a\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"4cFGojo+NH7KWgf1Ek2zlT\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"948b8vnTe1CjLnp5HZycxwU\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 49\n    },\n    \"_enabled\": true,\n    \"msg\": {\n      \"__id__\": 56\n    },\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"55jDDq8WtFaIRjw4pa2Ecm\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnTurntable\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 9\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 68\n      },\n      {\n        \"__id__\": 69\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 70\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 123,\n      \"height\": 129\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        513,\n        -105,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 67\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 67\n    },\n    \"_enabled\": false,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 0,\n    \"transition\": 0,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 67\n    },\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"bam06lv6ZB0bcQsxon3tD1\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 9\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"714f8522-8124-42d5-a866-e42931aedc8f\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 9\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 1,\n    \"_left\": 360,\n    \"_right\": 360,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"69ZRGn93dObaodUlKH5zWl\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"center \",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 75\n      },\n      {\n        \"__id__\": 82\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 89\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"ButtonPVE\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 74\n    },\n    \"_children\": [\n      {\n        \"__id__\": 76\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 79\n      },\n      {\n        \"__id__\": 80\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 81\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 600,\n      \"height\": 80\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -47,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        0\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 75\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 77\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 78\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 100,\n      \"height\": 40\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 76\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"PVE\",\n    \"_N$string\": \"PVE\",\n    \"_fontSize\": 20,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"dba5GV5bZBZYcEqDFAJ83K\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 75\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a6930f2b-007c-4e60-8008-5b8148640bb3\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 75\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 3,\n    \"transition\": 3,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": {\n      \"__uuid__\": \"a6930f2b-007c-4e60-8008-5b8148640bb3\"\n    },\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 75\n    },\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"87srcB5clHLpgkXsmwTkfm\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"ButtonPVP\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 74\n    },\n    \"_children\": [\n      {\n        \"__id__\": 83\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 86\n      },\n      {\n        \"__id__\": 87\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 88\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 240,\n      \"g\": 250,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 600,\n      \"height\": 80\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -124,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 82\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 84\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 85\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 100,\n      \"height\": 40\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 83\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"PVP\",\n    \"_N$string\": \"PVP\",\n    \"_fontSize\": 20,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"4cINXv6VhPxLmqjUfpnSzL\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 82\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a6930f2b-007c-4e60-8008-5b8148640bb3\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 82\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 3,\n    \"transition\": 3,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": {\n      \"__uuid__\": \"a6930f2b-007c-4e60-8008-5b8148640bb3\"\n    },\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 82\n    },\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"aeexT3DP9K+4acj5klghMB\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"9bgRW4NMJLFrJ03KW+iWra\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"buttom\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 91\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 92\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -320,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 90\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 4,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"26uS0dVOZFybF2P6zRAZOf\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"playerList\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 94\n      },\n      {\n        \"__id__\": 109\n      },\n      {\n        \"__id__\": 112\n      },\n      {\n        \"__id__\": 115\n      },\n      {\n        \"__id__\": 118\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 121\n      },\n      {\n        \"__id__\": 122\n      },\n      {\n        \"__id__\": 123\n      },\n      {\n        \"__id__\": 124\n      },\n      {\n        \"__id__\": 125\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 126\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 158.71,\n      \"height\": 44\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -563,\n        294,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"playerList\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 93\n    },\n    \"_children\": [\n      {\n        \"__id__\": 95\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 108\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        2,\n        -46,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New ScrollView\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 94\n    },\n    \"_children\": [\n      {\n        \"__id__\": 96\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 105\n      },\n      {\n        \"__id__\": 106\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 107\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 184,\n      \"g\": 184,\n      \"b\": 184,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 180,\n      \"height\": 200\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        88,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"view\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 95\n    },\n    \"_children\": [\n      {\n        \"__id__\": 97\n      },\n      {\n        \"__id__\": 100\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 103\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 104\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 180,\n      \"height\": 200\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"content\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 96\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 98\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 99\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 180,\n      \"height\": 1\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 97\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 180,\n      \"height\": 1\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 2,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 0,\n    \"_N$paddingRight\": 0,\n    \"_N$paddingTop\": 4,\n    \"_N$paddingBottom\": 4,\n    \"_N$spacingX\": 0,\n    \"_N$spacingY\": 7,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0,\n    \"_N$affectedByScale\": false,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"7aaaUjtAJNYaPA9rhT8GQ6\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"list\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 96\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 101\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 102\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 58,\n      \"g\": 213,\n      \"b\": 213,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 164.66,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -83,\n        -14,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 100\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"Lv99 玩家名字\",\n    \"_N$string\": \"Lv99 玩家名字\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"01+q2qaVZN8rT3hRWm9GUm\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Mask\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 96\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_segments\": 64,\n    \"_N$alphaThreshold\": 1,\n    \"_N$inverted\": false,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"d7vrxgdANEjqTWqQDr6jem\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.ScrollView\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 95\n    },\n    \"_enabled\": true,\n    \"horizontal\": false,\n    \"vertical\": true,\n    \"inertia\": true,\n    \"brake\": 0.75,\n    \"elastic\": true,\n    \"bounceDuration\": 0.23,\n    \"scrollEvents\": [],\n    \"cancelInnerEvents\": true,\n    \"_N$content\": {\n      \"__id__\": 97\n    },\n    \"content\": {\n      \"__id__\": 97\n    },\n    \"_N$horizontalScrollBar\": null,\n    \"_N$verticalScrollBar\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 95\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ba04946c-b9d3-41b7-8160-6d99973cc159\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"5aQwzI8a5NTLs7vULbOFoL\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"5fxdDjHpBPSpiVuzbKObGb\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 93\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 110\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 111\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 70,\n      \"height\": 35.28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        40,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 109\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"在线:\",\n    \"_N$string\": \"在线:\",\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"807BWxe01LcJCkqGHpeyHJ\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"num\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 93\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 113\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 114\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 3,\n      \"g\": 233,\n      \"b\": 49,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 14,\n      \"height\": 35.28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        85,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 112\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"9\",\n    \"_N$string\": \"9\",\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"53s7vP5U5E9b6/l2WiDsA7\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 93\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 116\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 117\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 28,\n      \"height\": 35.28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        109,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 115\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"人\",\n    \"_N$string\": \"人\",\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"cfP6HP+KxEjKPuTk7vuRm7\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"arrow\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 93\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 119\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 120\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 27.71,\n      \"height\": 35.28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        139.855,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 118\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"▼\",\n    \"_N$string\": \"▼\",\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"90RNhRlClN0Js5jeV+6US/\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 93\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ba04946c-b9d3-41b7-8160-6d99973cc159\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 93\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 158.71,\n      \"height\": 44\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 1,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 2,\n    \"_N$paddingRight\": 5,\n    \"_N$paddingTop\": 0,\n    \"_N$paddingBottom\": 0,\n    \"_N$spacingX\": 3,\n    \"_N$spacingY\": 0,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0,\n    \"_N$affectedByScale\": false,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 93\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 9,\n    \"_left\": 5,\n    \"_right\": 0,\n    \"_top\": 26,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"b0e84Fx8oNKto4NyLP7VepY\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 93\n    },\n    \"_enabled\": true,\n    \"playerNum\": {\n      \"__id__\": 113\n    },\n    \"list\": {\n      \"__id__\": 100\n    },\n    \"ScrollView\": {\n      \"__id__\": 95\n    },\n    \"content\": {\n      \"__id__\": 97\n    },\n    \"arrow\": {\n      \"__id__\": 118\n    },\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 93\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 0,\n    \"transition\": 0,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 93\n    },\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"a1ihCmO05CWYXnE0Zbd58I\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"rankList\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 128\n      },\n      {\n        \"__id__\": 131\n      },\n      {\n        \"__id__\": 134\n      },\n      {\n        \"__id__\": 137\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 171\n      },\n      {\n        \"__id__\": 172\n      },\n      {\n        \"__id__\": 173\n      },\n      {\n        \"__id__\": 174\n      },\n      {\n        \"__id__\": 175\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 176\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 127.71000000000001,\n      \"height\": 44\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 1,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        563,\n        319,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"arrow\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 127\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 129\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 130\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 27.71,\n      \"height\": 35.28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -111.855,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 128\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"▼\",\n    \"_N$string\": \"▼\",\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"49ImGsENlLXpWXpjChoH81\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 127\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 132\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 133\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 70,\n      \"height\": 35.28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -60,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 131\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"排名:\",\n    \"_N$string\": \"排名:\",\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"861+bz5/1M97snZdkEV8L2\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"num\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 127\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 135\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 136\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 3,\n      \"g\": 233,\n      \"b\": 49,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 14,\n      \"height\": 35.28\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -15,\n        -22,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 134\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"0\",\n    \"_N$string\": \"0\",\n    \"_fontSize\": 28,\n    \"_lineHeight\": 28,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"d3LeSNVHlC/Yjsb36isM3S\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"rankList\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 127\n    },\n    \"_children\": [\n      {\n        \"__id__\": 138\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 170\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -5,\n        -46,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New ScrollView\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 137\n    },\n    \"_children\": [\n      {\n        \"__id__\": 139\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 167\n      },\n      {\n        \"__id__\": 168\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 169\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 184,\n      \"g\": 184,\n      \"b\": 184,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 200\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -145,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"view\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 138\n    },\n    \"_children\": [\n      {\n        \"__id__\": 140\n      },\n      {\n        \"__id__\": 151\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 165\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 166\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 200\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"list\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 139\n    },\n    \"_children\": [\n      {\n        \"__id__\": 141\n      },\n      {\n        \"__id__\": 144\n      },\n      {\n        \"__id__\": 147\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 150\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 250,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -47,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"rank\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 140\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 142\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 143\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 247,\n      \"g\": 85,\n      \"b\": 189,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 36,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -107.9,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 141\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"999\",\n    \"_N$string\": \"999\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"47Mun9AF1NUovJJTNNY18Q\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"name\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 140\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 145\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 146\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 95,\n      \"g\": 155,\n      \"b\": 245,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 96,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -14,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 144\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"我很牛牛\",\n    \"_N$string\": \"我很牛牛\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"6bRDSAwWtCY5ZpXRv4nnXb\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"gold\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 140\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 148\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 149\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 213,\n      \"g\": 221,\n      \"b\": 9,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 67.98,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        95,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 147\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"1000亿\",\n    \"_N$string\": \"1000亿\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"84TC7tDulFHY0cB03LgyEV\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"c5SRwDrQZHW61hKLJ4L+r8\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"content\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 139\n    },\n    \"_children\": [\n      {\n        \"__id__\": 152\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 163\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 164\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 32\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"title\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 151\n    },\n    \"_children\": [\n      {\n        \"__id__\": 153\n      },\n      {\n        \"__id__\": 156\n      },\n      {\n        \"__id__\": 159\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 162\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 58,\n      \"g\": 213,\n      \"b\": 213,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -16,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"rank\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 152\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 154\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 155\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 247,\n      \"g\": 85,\n      \"b\": 189,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 48,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -107.9,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 153\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"名次\",\n    \"_N$string\": \"名次\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"2c5v3xHqBKt5GkQg/xfJtq\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"name\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 152\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 157\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 158\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 95,\n      \"g\": 155,\n      \"b\": 245,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 48,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -14,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 156\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"姓名\",\n    \"_N$string\": \"姓名\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"2dKJgwtfBGY5NPPgpDdXJg\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"gold\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 152\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 160\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 161\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 213,\n      \"g\": 221,\n      \"b\": 9,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 48,\n      \"height\": 24\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        95,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 159\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"金币\",\n    \"_N$string\": \"金币\",\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"c0HIrTvblMbLEJXQEEjHy6\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"42+VT7C/pAZrGwec98KydK\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 151\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 300,\n      \"height\": 32\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 2,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 0,\n    \"_N$paddingRight\": 0,\n    \"_N$paddingTop\": 4,\n    \"_N$paddingBottom\": 4,\n    \"_N$spacingX\": 0,\n    \"_N$spacingY\": 7,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0,\n    \"_N$affectedByScale\": false,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"535LzA6fNObJrbXcIsV6id\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Mask\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 139\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_segments\": 64,\n    \"_N$alphaThreshold\": 1,\n    \"_N$inverted\": false,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"82FrnGDfFH0p+Q35yBUXjU\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.ScrollView\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 138\n    },\n    \"_enabled\": true,\n    \"horizontal\": false,\n    \"vertical\": true,\n    \"inertia\": true,\n    \"brake\": 0.75,\n    \"elastic\": true,\n    \"bounceDuration\": 0.23,\n    \"scrollEvents\": [],\n    \"cancelInnerEvents\": true,\n    \"_N$content\": {\n      \"__id__\": 151\n    },\n    \"content\": {\n      \"__id__\": 151\n    },\n    \"_N$horizontalScrollBar\": null,\n    \"_N$verticalScrollBar\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 138\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ba04946c-b9d3-41b7-8160-6d99973cc159\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"322DgYTGVNEJR8vK2bS14u\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"echw8dxLhARbHcVvGyvQVG\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 127\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ba04946c-b9d3-41b7-8160-6d99973cc159\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 127\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 127.71000000000001,\n      \"height\": 44\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 1,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 2,\n    \"_N$paddingRight\": 5,\n    \"_N$paddingTop\": 0,\n    \"_N$paddingBottom\": 0,\n    \"_N$spacingX\": 3,\n    \"_N$spacingY\": 0,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0,\n    \"_N$affectedByScale\": false,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 127\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 33,\n    \"_left\": 587.29,\n    \"_right\": 5,\n    \"_top\": 1,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"ea89bn3rB5I0JjOqv+rvIUH\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 127\n    },\n    \"_enabled\": true,\n    \"playerNum\": {\n      \"__id__\": 135\n    },\n    \"list\": {\n      \"__id__\": 140\n    },\n    \"ScrollView\": {\n      \"__id__\": 138\n    },\n    \"content\": {\n      \"__id__\": 151\n    },\n    \"arrow\": {\n      \"__id__\": 128\n    },\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 127\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 0,\n    \"transition\": 0,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 127\n    },\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"21RvWIFtBF1qtrCcYdmams\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"prefabs\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 178\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 179\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 177\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"b47OPYM3tBFa69HJfOe8T3\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Canvas\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"_designResolution\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_fitWidth\": true,\n    \"_fitHeight\": true,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"82d97FmxlNJ2Zpfzr2+TKHm\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"icon\": {\n      \"__id__\": 15\n    },\n    \"nickname\": {\n      \"__id__\": 24\n    },\n    \"level\": {\n      \"__id__\": 21\n    },\n    \"grade\": {\n      \"__id__\": 18\n    },\n    \"gold\": {\n      \"__id__\": 31\n    },\n    \"diamond\": {\n      \"__id__\": 40\n    },\n    \"btnUserInfo\": {\n      \"__id__\": 26\n    },\n    \"btnHalls\": [\n      {\n        \"__id__\": 67\n      }\n    ],\n    \"btnGames\": [\n      {\n        \"__id__\": 75\n      },\n      {\n        \"__id__\": 82\n      }\n    ],\n    \"iconBoys\": [\n      {\n        \"__uuid__\": \"1a8614f1-055a-4ef6-9b8a-c7494b9e21ee\"\n      },\n      {\n        \"__uuid__\": \"f4291eab-d5c4-4f85-9784-466782ce4e77\"\n      },\n      {\n        \"__uuid__\": \"da999093-058c-4060-8758-9ac6c13b20bb\"\n      },\n      {\n        \"__uuid__\": \"b8497473-5d8f-48ac-8bf1-41c00eca0154\"\n      },\n      {\n        \"__uuid__\": \"5a0919bf-4cf7-49e2-bc32-115c0968926e\"\n      },\n      {\n        \"__uuid__\": \"baa15fbd-591c-428f-86d9-95d999912d6f\"\n      }\n    ],\n    \"iconGirls\": [\n      {\n        \"__uuid__\": \"8634744a-ef46-4d3d-94a9-628d0a11396e\"\n      },\n      {\n        \"__uuid__\": \"e5a63e5c-fac7-47fc-a1bf-69aafd6e16b2\"\n      },\n      {\n        \"__uuid__\": \"f84136de-fa2c-40e6-aba3-80ac9ca9c876\"\n      },\n      {\n        \"__uuid__\": \"1ae09d07-5d6c-4c21-8e19-85b40d2902d5\"\n      },\n      {\n        \"__uuid__\": \"1203c8ab-ab77-4419-8cf4-fbead8bccb91\"\n      },\n      {\n        \"__uuid__\": \"eec162c8-8b6a-4457-a777-5e98958a4b28\"\n      }\n    ],\n    \"grades\": [\n      {\n        \"__uuid__\": \"0bea8cf1-1661-4fa1-be92-01c5eda39cc9\"\n      },\n      {\n        \"__uuid__\": \"150d095a-0f5c-4077-a13a-2a77cc79b3a1\"\n      },\n      {\n        \"__uuid__\": \"4c203f6e-7937-41ee-bf31-c77056925ad3\"\n      },\n      {\n        \"__uuid__\": \"18b5e2d3-c4e8-44ff-a587-01a9e9bb04ee\"\n      },\n      {\n        \"__uuid__\": \"1c54a708-fec2-4f5a-8200-42d306cc9ec5\"\n      },\n      {\n        \"__uuid__\": \"0d76e7f9-8ead-488d-8060-23fd9ed5f424\"\n      },\n      {\n        \"__uuid__\": \"7806e9a8-4594-4098-b531-52b6ee3f4660\"\n      },\n      {\n        \"__uuid__\": \"a16bba77-bc9d-4056-a8f5-d129736c834f\"\n      },\n      {\n        \"__uuid__\": \"eaf4957f-e774-4aa4-a349-865cdbe13570\"\n      },\n      {\n        \"__uuid__\": \"71259728-83b9-4ebc-ba45-1775f2825f1d\"\n      }\n    ],\n    \"userInfo\": {\n      \"__id__\": 10\n    },\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"alignMode\": 1,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\"\n    },\n    \"fileId\": \"3bIAzylIdCKYklFw7FUjWU\",\n    \"sync\": false\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/prefabs/Canvas.prefab.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"9380232b-e50f-4f4d-8f32-7353a1df49e5\",\n  \"optimizationPolicy\": \"AUTO\",\n  \"asyncLoadAssets\": false,\n  \"readonly\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/prefabs.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"b63adad1-7f33-4375-bf71-a9dfa40f9064\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/preview/AGGFU2@WP$2]CXDBD3`5QGH.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"91315802-5ce6-48e0-91cd-968b38122f21\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 1284,\n  \"height\": 752,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"AGGFU2@WP$2]CXDBD3`5QGH\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"50f54035-83ad-4b0c-9a7a-2eb080a25e91\",\n      \"rawTextureUuid\": \"91315802-5ce6-48e0-91cd-968b38122f21\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 1284,\n      \"height\": 752,\n      \"rawWidth\": 1284,\n      \"rawHeight\": 752,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/preview/OWFBLGN70GMBUR{[X{Z%VV5.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"2eb33e78-d6bc-4b12-991b-1caa93fbb5ce\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 1284,\n  \"height\": 752,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"OWFBLGN70GMBUR{[X{Z%VV5\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"88e34eb3-e1e1-4806-add9-e15e2b853f87\",\n      \"rawTextureUuid\": \"2eb33e78-d6bc-4b12-991b-1caa93fbb5ce\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 1284,\n      \"height\": 752,\n      \"rawWidth\": 1284,\n      \"rawHeight\": 752,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/preview/fight1.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"baf3226a-e23e-4bf8-bc63-5cd4449e44e5\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 1284,\n  \"height\": 752,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"fight1\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a00bb469-7522-45d4-aa66-b05fbd3643e3\",\n      \"rawTextureUuid\": \"baf3226a-e23e-4bf8-bc63-5cd4449e44e5\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 1284,\n      \"height\": 752,\n      \"rawWidth\": 1284,\n      \"rawHeight\": 752,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/preview/tank_main.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"5a8f5e43-bf8f-49b9-b294-e5a37289024b\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 1284,\n  \"height\": 752,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"tank_main\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"7b8457f9-80cd-444e-9969-d20b08d2e3ac\",\n      \"rawTextureUuid\": \"5a8f5e43-bf8f-49b9-b294-e5a37289024b\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 1284,\n      \"height\": 752,\n      \"rawWidth\": 1284,\n      \"rawHeight\": 752,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/preview/}UJ4}JOHW9[E4WZC)1)@82R.png.meta",
    "content": "{\n  \"ver\": \"2.3.5\",\n  \"uuid\": \"9227e835-e8a4-470d-8609-5a525dc50d4d\",\n  \"type\": \"sprite\",\n  \"wrapMode\": \"clamp\",\n  \"filterMode\": \"bilinear\",\n  \"premultiplyAlpha\": false,\n  \"genMipmaps\": false,\n  \"packable\": true,\n  \"width\": 1284,\n  \"height\": 752,\n  \"platformSettings\": {},\n  \"subMetas\": {\n    \"}UJ4}JOHW9[E4WZC)1)@82R\": {\n      \"ver\": \"1.0.4\",\n      \"uuid\": \"a39b2303-80eb-4781-b1bf-2a2c200c742c\",\n      \"rawTextureUuid\": \"9227e835-e8a4-470d-8609-5a525dc50d4d\",\n      \"trimType\": \"auto\",\n      \"trimThreshold\": 1,\n      \"rotated\": false,\n      \"offsetX\": 0,\n      \"offsetY\": 0,\n      \"trimX\": 0,\n      \"trimY\": 0,\n      \"width\": 1284,\n      \"height\": 752,\n      \"rawWidth\": 1284,\n      \"rawHeight\": 752,\n      \"borderTop\": 0,\n      \"borderBottom\": 0,\n      \"borderLeft\": 0,\n      \"borderRight\": 0,\n      \"subMetas\": {}\n    }\n  }\n}"
  },
  {
    "path": "ChessCardHall/assets/preview.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"25375ae0-dec5-4053-853d-c48aa184b31a\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Audio/bg.mp3.meta",
    "content": "{\n  \"ver\": \"2.0.1\",\n  \"uuid\": \"56321706-80f0-4768-916e-dc7f0b5f1f0c\",\n  \"downloadMode\": 0,\n  \"duration\": 21.192,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Audio/click.mp3.meta",
    "content": "{\n  \"ver\": \"2.0.1\",\n  \"uuid\": \"e66e172f-1d04-4d1c-ac22-ab4410f46656\",\n  \"downloadMode\": 0,\n  \"duration\": 0.18,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Audio/qql_lose.mp3.meta",
    "content": "{\n  \"ver\": \"2.0.1\",\n  \"uuid\": \"b076ac1e-54bf-4deb-9ad1-efb48e2d35a3\",\n  \"downloadMode\": 0,\n  \"duration\": 0.7575,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Audio/qql_win.mp3.meta",
    "content": "{\n  \"ver\": \"2.0.1\",\n  \"uuid\": \"9787d7cf-f18d-4ebc-9fc4-80d4a007b03d\",\n  \"downloadMode\": 0,\n  \"duration\": 0.862,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Audio/win.mp3.meta",
    "content": "{\n  \"ver\": \"2.0.1\",\n  \"uuid\": \"b017826e-6147-4a2b-9b52-945f0dd21657\",\n  \"downloadMode\": 0,\n  \"duration\": 1.306,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Audio.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"6faa7a6e-445f-4958-a8f3-5727f7ea8b49\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/MASK.prefab",
    "content": "[\n  {\n    \"__type__\": \"cc.Prefab\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_rawFiles\": null,\n    \"data\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"MASK\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [\n      {\n        \"__id__\": 2\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 8\n      },\n      {\n        \"__id__\": 9\n      },\n      {\n        \"__id__\": 10\n      },\n      {\n        \"__id__\": 11\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 12\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 960\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        360,\n        480,\n        0,\n        0,\n        0,\n        0,\n        1,\n        0,\n        0,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 3\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 6\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 7\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 340.86,\n      \"height\": 60\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -160,\n        6,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 4\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 5\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 426.78,\n      \"height\": 30\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        160,\n        -60,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 3\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 30,\n    \"_fontSize\": 30,\n    \"_lineHeight\": 30,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"(首次加载较为缓慢,请耐心等待!)\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"a7gICF+PdJmohmhWGnctxf\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 60,\n    \"_fontSize\": 60,\n    \"_lineHeight\": 60,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"拼命加载中...\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"74oA7P6lRJRo8dYusFYVsF\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 1280,\n    \"_originalHeight\": 720\n  },\n  {\n    \"__type__\": \"693a7ELMkJMyZwXlPzlgrnT\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"lab\": {\n      \"__id__\": 6\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"aaOqbEv3hCQItBI0RvK/O3\",\n    \"sync\": false\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/MASK.prefab.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"da882197-7cb5-4aaf-a260-71e66df26eab\",\n  \"optimizationPolicy\": \"AUTO\",\n  \"asyncLoadAssets\": false,\n  \"readonly\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/bullet_2.prefab",
    "content": "[\n  {\n    \"__type__\": \"cc.Prefab\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_rawFiles\": null,\n    \"data\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bullet_2\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 2\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 3\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 10\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        466.1,\n        75.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"4372695e-198f-46b1-bc11-0182b59b79a7\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"19238b87-a1ea-4151-b416-31f89a22fe15\"\n    },\n    \"fileId\": \"f6kJjvk4dE/K2Ck/XCuFhW\",\n    \"sync\": false\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/bullet_2.prefab.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"19238b87-a1ea-4151-b416-31f89a22fe15\",\n  \"optimizationPolicy\": \"AUTO\",\n  \"asyncLoadAssets\": false,\n  \"readonly\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/chat.prefab",
    "content": "[\n  {\n    \"__type__\": \"cc.Prefab\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_rawFiles\": null,\n    \"data\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"chat\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [\n      {\n        \"__id__\": 2\n      },\n      {\n        \"__id__\": 16\n      },\n      {\n        \"__id__\": 20\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 70\n      },\n      {\n        \"__id__\": 71\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 72\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 710,\n      \"height\": 50\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New ScrollView\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 3\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 13\n      },\n      {\n        \"__id__\": 14\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 15\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 184,\n      \"g\": 184,\n      \"b\": 184,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 710,\n      \"height\": 50\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        50,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"view\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [\n      {\n        \"__id__\": 4\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 10\n      },\n      {\n        \"__id__\": 11\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 12\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 710,\n      \"height\": 50\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"content\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 3\n    },\n    \"_children\": [\n      {\n        \"__id__\": 5\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 8\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 9\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 1\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 710,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"msgList\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 4\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 6\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 7\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 60,\n      \"height\": 50\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -347,\n        -25,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.RichText\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 5\n    },\n    \"_enabled\": true,\n    \"_N$string\": \"消息\",\n    \"_N$horizontalAlign\": 0,\n    \"_N$fontSize\": 30,\n    \"_N$font\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_N$maxWidth\": 0,\n    \"_N$lineHeight\": 50,\n    \"_N$imageAtlas\": {\n      \"__uuid__\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\"\n    },\n    \"_N$handleTouchEvent\": true\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"95Sb9vvpBLRonqCySGSydD\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 4\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 710,\n      \"height\": 0\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 2,\n    \"_N$padding\": 0,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 0,\n    \"_N$paddingRight\": 0,\n    \"_N$paddingTop\": 0,\n    \"_N$paddingBottom\": 0,\n    \"_N$spacingX\": 0,\n    \"_N$spacingY\": 0,\n    \"_N$verticalDirection\": 0,\n    \"_N$horizontalDirection\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"5bBQWVHB5E2KfaS4aOG2un\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Mask\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 3\n    },\n    \"_enabled\": true,\n    \"_type\": 0,\n    \"_segements\": 64,\n    \"_N$spriteFrame\": null,\n    \"_N$alphaThreshold\": 1,\n    \"_N$inverted\": false\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 3\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 5,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 65\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"d9u3et8eFGhZcqtInSYRBW\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.ScrollView\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"content\": {\n      \"__id__\": 4\n    },\n    \"horizontal\": false,\n    \"vertical\": true,\n    \"inertia\": true,\n    \"brake\": 0.75,\n    \"elastic\": true,\n    \"bounceDuration\": 0.23,\n    \"scrollEvents\": [],\n    \"cancelInnerEvents\": true,\n    \"_N$horizontalScrollBar\": null,\n    \"_N$verticalScrollBar\": null\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 5,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 65\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"76gE2Um05OhKpVMIOiDX5i\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnArrow\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 17\n      },\n      {\n        \"__id__\": 18\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 19\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 80,\n      \"height\": 80\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        320,\n        26,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 16\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"16083852-e7d4-4859-8d27-7da66bb94803\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 16\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 16\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"a1qlvv3YhB0LQbEeP2w+6d\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"chatView\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 21\n      },\n      {\n        \"__id__\": 24\n      },\n      {\n        \"__id__\": 27\n      },\n      {\n        \"__id__\": 34\n      },\n      {\n        \"__id__\": 38\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 67\n      },\n      {\n        \"__id__\": 68\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 69\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        69,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_chatEditBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 20\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 22\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 23\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 640,\n      \"height\": 62\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        35,\n        28,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 21\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"fec9a2b7-bb60-418e-ae0b-fb410823c97a\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"65vvqnZOJOCIES34PFCg9q\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"editBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 20\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 25\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 26\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 525,\n      \"height\": 62\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -13,\n        28,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.EditBox\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 24\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_string\": \"\",\n    \"_tabIndex\": 0,\n    \"editingDidBegan\": [],\n    \"textChanged\": [],\n    \"editingDidEnded\": [],\n    \"editingReturn\": [],\n    \"_N$backgroundImage\": null,\n    \"_N$returnType\": 0,\n    \"_N$inputFlag\": 5,\n    \"_N$inputMode\": 6,\n    \"_N$fontSize\": 32,\n    \"_N$lineHeight\": 40,\n    \"_N$fontColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 53,\n      \"g\": 224,\n      \"b\": 248,\n      \"a\": 255\n    },\n    \"_N$placeholder\": \"请输入信息[30个字以内]\",\n    \"_N$placeholderFontSize\": 32,\n    \"_N$placeholderFontColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 24,\n      \"g\": 177,\n      \"b\": 199,\n      \"a\": 255\n    },\n    \"_N$maxLength\": 30,\n    \"_N$stayOnTop\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"0aCJsO3IRBeaGSHoavkPl9\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnSend\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 20\n    },\n    \"_children\": [\n      {\n        \"__id__\": 28\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 31\n      },\n      {\n        \"__id__\": 32\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 33\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 240,\n      \"g\": 50,\n      \"b\": 14,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 100,\n      \"height\": 52\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        300,\n        28,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 27\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 29\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 30\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 74.66,\n      \"height\": 32\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 28\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 32,\n    \"_fontSize\": 32,\n    \"_lineHeight\": 32,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"发 送\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"1d6io8qe1NIrGvtWjV1UDJ\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 27\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 27\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 216,\n      \"g\": 40,\n      \"b\": 7,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 252,\n      \"g\": 70,\n      \"b\": 35,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 240,\n      \"g\": 50,\n      \"b\": 14,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 27\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"a5dUzWvjFJNbe7mTIPNDuH\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnExpression\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 20\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 35\n      },\n      {\n        \"__id__\": 36\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 37\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -321,\n        25,\n        0,\n        0,\n        0,\n        0,\n        1,\n        0.8,\n        0.8,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 34\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"20e45d0a-cb4c-4c87-bde4-467cb22553aa\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": {\n      \"__uuid__\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\"\n    }\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 34\n    },\n    \"_enabled\": true,\n    \"transition\": 3,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.1,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 34\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"55A/BkmjtNzrc/3WuTb+sb\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bgExpression\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 20\n    },\n    \"_children\": [\n      {\n        \"__id__\": 39\n      },\n      {\n        \"__id__\": 42\n      },\n      {\n        \"__id__\": 45\n      },\n      {\n        \"__id__\": 48\n      },\n      {\n        \"__id__\": 51\n      },\n      {\n        \"__id__\": 54\n      },\n      {\n        \"__id__\": 57\n      },\n      {\n        \"__id__\": 60\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 63\n      },\n      {\n        \"__id__\": 64\n      },\n      {\n        \"__id__\": 65\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 66\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 786,\n      \"height\": 120\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        120,\n        0,\n        0,\n        0,\n        0,\n        1,\n        0.9,\n        0.9,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"[笑]\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 40\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 41\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -331,\n        -3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 39\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"20e45d0a-cb4c-4c87-bde4-467cb22553aa\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": {\n      \"__uuid__\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\"\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"64tHTScLBIL5qKR0QsG7vB\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"[哭]\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 43\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 44\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -235,\n        -3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 42\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"489258a6-9f52-46eb-87d2-f6b6e74e1a16\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": {\n      \"__uuid__\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\"\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"24rAqrEJZPa5NkoHvpymfA\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"[色]\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 46\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 47\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -139,\n        -3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 45\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"848e334e-722a-4588-aab6-03c812f196bf\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": {\n      \"__uuid__\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\"\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"47/33NeS5LkYJwSWE0oNnX\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"[汗]\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 49\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 50\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -43,\n        -3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 48\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"437c0af9-ba74-4e16-b09f-74c4181a616e\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": {\n      \"__uuid__\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\"\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"ddB8Rq8YVIiaPyrOXk/dFP\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"[怒]\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 52\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 53\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        53,\n        -3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 51\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a4aa7f22-2fdc-467f-bbda-9fab0f3d52b6\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": {\n      \"__uuid__\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\"\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"79i6iz7VFEt7qg2d4lpbcB\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"[晕]\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 55\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 56\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        149,\n        -3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 54\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ce0303f9-542a-4800-8a42-98e34f088066\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": {\n      \"__uuid__\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\"\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"43HiJvqv9PVqNB2KBmGQC+\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"[哈]\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 58\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 59\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        245,\n        -3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 57\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5a2860d5-bd96-4e3f-9508-779e663e95ba\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": {\n      \"__uuid__\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\"\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"c4CKDho1dJGISyolXWo06h\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"[冷]\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 61\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 62\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        341,\n        -3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 60\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"cec85e47-2f47-4292-aef4-fd41a5c93ae8\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": {\n      \"__uuid__\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\"\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"3fMDopNzpLxK94ppSrpdxL\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 38\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"bca48fb7-6520-4372-b684-a89b5d7528e3\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 38\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 786,\n      \"height\": 120\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 1,\n    \"_N$padding\": 0,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 10,\n    \"_N$paddingRight\": 0,\n    \"_N$paddingTop\": 0,\n    \"_N$paddingBottom\": 0,\n    \"_N$spacingX\": -8,\n    \"_N$spacingY\": 0,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 38\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 38\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"e8jH36RX5N14dRu7pXhw8r\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 20\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 20\n    }\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 20\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 1,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": -9,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"0bywYM+adJ34zGpF6i548L\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ba04946c-b9d3-41b7-8160-6d99973cc159\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc679P6rM9LE4K9WkyN0SJo\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"chatLab\": {\n      \"__id__\": 6\n    },\n    \"chatView\": {\n      \"__id__\": 20\n    },\n    \"content\": {\n      \"__id__\": 4\n    },\n    \"btnArrow\": {\n      \"__id__\": 16\n    },\n    \"chatEditBox\": {\n      \"__id__\": 25\n    },\n    \"btnSend\": {\n      \"__id__\": 27\n    },\n    \"btnExpression\": {\n      \"__id__\": 34\n    },\n    \"bgExpression\": {\n      \"__id__\": 38\n    },\n    \"expressions\": [\n      {\n        \"__id__\": 39\n      },\n      {\n        \"__id__\": 42\n      },\n      {\n        \"__id__\": 45\n      },\n      {\n        \"__id__\": 48\n      },\n      {\n        \"__id__\": 51\n      },\n      {\n        \"__id__\": 54\n      },\n      {\n        \"__id__\": 57\n      },\n      {\n        \"__id__\": 60\n      }\n    ]\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f4063441-0794-4c5e-8778-f584d4f58c94\"\n    },\n    \"fileId\": \"31h5Ft32pIoL9OCOUcjsk6\",\n    \"sync\": false\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/chat.prefab.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"f4063441-0794-4c5e-8778-f584d4f58c94\",\n  \"optimizationPolicy\": \"AUTO\",\n  \"asyncLoadAssets\": false,\n  \"readonly\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/item.prefab",
    "content": "[\n  {\n    \"__type__\": \"cc.Prefab\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_rawFiles\": null,\n    \"data\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"item\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 2\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 3\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 46,\n      \"height\": 52\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        386,\n        247,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"f0712792-9980-480d-824f-ab8b053af27c\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"63R9pW0j5C2a2FbXS9qJB5\",\n    \"sync\": false\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/item.prefab.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"82e7099f-5b0b-454f-a0bb-bc3d57b8167e\",\n  \"optimizationPolicy\": \"AUTO\",\n  \"asyncLoadAssets\": false,\n  \"readonly\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/network.prefab",
    "content": "[\n  {\n    \"__type__\": \"cc.Prefab\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_rawFiles\": null,\n    \"data\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"network\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [\n      {\n        \"__id__\": 2\n      },\n      {\n        \"__id__\": 7\n      },\n      {\n        \"__id__\": 43\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 82\n      },\n      {\n        \"__id__\": 83\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 84\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 960\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        360,\n        480,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"mask\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 3\n      },\n      {\n        \"__id__\": 4\n      },\n      {\n        \"__id__\": 5\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 6\n    },\n    \"_id\": \"\",\n    \"_opacity\": 150,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 960\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 2\n    }\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 1280,\n    \"_originalHeight\": 720\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"bftGr3kXRGrpFCUp2S/QU7\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 8\n      },\n      {\n        \"__id__\": 11\n      },\n      {\n        \"__id__\": 29\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 41\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 42\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 184,\n      \"height\": 184\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        40,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"eye\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 7\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 9\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 10\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 146,\n      \"g\": 7,\n      \"b\": 131,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 120,\n      \"height\": 120\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0.1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        20,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 8\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"475c91a3-0ef8-45dc-88b1-a4aeb3aa1c27\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"d3anvO0vNHpItjipT57EIA\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"network\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 7\n    },\n    \"_children\": [\n      {\n        \"__id__\": 12\n      },\n      {\n        \"__id__\": 15\n      },\n      {\n        \"__id__\": 18\n      },\n      {\n        \"__id__\": 21\n      },\n      {\n        \"__id__\": 24\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 27\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 28\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 167,\n      \"g\": 167,\n      \"b\": 167,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 142,\n      \"height\": 27\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -62,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 13\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 14\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 120,\n      \"g\": 120,\n      \"b\": 120,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 26,\n      \"height\": 26\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -58,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 12\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 26,\n    \"_fontSize\": 26,\n    \"_lineHeight\": 26,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"网\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"50PET8OXRKOZlLMPSb2xYj\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 16\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 17\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 120,\n      \"g\": 120,\n      \"b\": 120,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 26,\n      \"height\": 26\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -29,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 15\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 26,\n    \"_fontSize\": 26,\n    \"_lineHeight\": 26,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"络\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"faF0W7g0xEJZrQD9KLnwBy\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 19\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 20\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 120,\n      \"g\": 120,\n      \"b\": 120,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 26,\n      \"height\": 26\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 18\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 26,\n    \"_fontSize\": 26,\n    \"_lineHeight\": 26,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"连\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"ed6/F3zCBMsK72/62phn/n\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 22\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 23\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 120,\n      \"g\": 120,\n      \"b\": 120,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 26,\n      \"height\": 26\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        29,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 21\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 26,\n    \"_fontSize\": 26,\n    \"_lineHeight\": 26,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"接\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"56S9Ss+5JGjKtdzD1rlPAG\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 25\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 26\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 120,\n      \"g\": 120,\n      \"b\": 120,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 26,\n      \"height\": 26\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        58,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 24\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 26,\n    \"_fontSize\": 26,\n    \"_lineHeight\": 26,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"中\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"b1dQuTWJBN8LqeYLsEodor\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 11\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 142,\n      \"height\": 27\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 1,\n    \"_N$padding\": 0,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 0,\n    \"_N$paddingRight\": 0,\n    \"_N$paddingTop\": 0,\n    \"_N$paddingBottom\": 0,\n    \"_N$spacingX\": 3,\n    \"_N$spacingY\": 0,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"78PJJFASBCKbaX18oPYEmw\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"noNetwork\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 7\n    },\n    \"_children\": [\n      {\n        \"__id__\": 30\n      },\n      {\n        \"__id__\": 33\n      },\n      {\n        \"__id__\": 36\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 40\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 167,\n      \"g\": 167,\n      \"b\": 167,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 205,\n      \"height\": 27\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -62,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 29\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 31\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 32\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 120,\n      \"g\": 120,\n      \"b\": 120,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 156,\n      \"height\": 26\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 30\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 26,\n    \"_fontSize\": 26,\n    \"_lineHeight\": 26,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"网络连接失败\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"69cLduOCJI1Y1qUqBNQInn\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"img_tear\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 29\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 34\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 35\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 30,\n      \"height\": 45\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        28.5,\n        36.8,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 33\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"32b04e45-abb9-40e6-b9aa-9861b833dd35\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"d8Y2LXVKNLG7+LV+jwsRlt\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnExit\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 29\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 37\n      },\n      {\n        \"__id__\": 38\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 39\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 80,\n      \"height\": 80\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        69,\n        128,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 36\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"953547b3-b433-4047-866e-66f008fc87f9\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 36\n    },\n    \"_enabled\": true,\n    \"transition\": 3,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.1,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 36\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"74s3fCZ0tF9b42NqEFxrJF\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"c2EK2RpGNA6p/VhdbcTX4j\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 7\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"e5762cd4-6cee-482b-850f-abdd1cfbd1d4\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"65ZelWc9BCBJSqxTERfZul\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"QQL\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 44\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 80\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 81\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -480,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"QQL\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 43\n    },\n    \"_children\": [\n      {\n        \"__id__\": 45\n      },\n      {\n        \"__id__\": 49\n      },\n      {\n        \"__id__\": 53\n      },\n      {\n        \"__id__\": 57\n      },\n      {\n        \"__id__\": 61\n      },\n      {\n        \"__id__\": 64\n      },\n      {\n        \"__id__\": 67\n      },\n      {\n        \"__id__\": 70\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 76\n      },\n      {\n        \"__id__\": 77\n      },\n      {\n        \"__id__\": 78\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 79\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 498,\n      \"height\": 218\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -300,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"QQL_yan1\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 44\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 46\n      },\n      {\n        \"__id__\": 47\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 48\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 91,\n      \"height\": 79\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -171,\n        132.9,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 45\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"adb6b296-85af-402d-937f-82ec5cb49ba4\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 45\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 45\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"debOOHA0hPEq0T8VuULYSL\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"QQL_yan2\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 44\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 50\n      },\n      {\n        \"__id__\": 51\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 52\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 91,\n      \"height\": 79\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -57.5,\n        132.7,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 49\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"adb6b296-85af-402d-937f-82ec5cb49ba4\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 49\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 49\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"5cGBQDLslHCqDeyyplLq61\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"QQL_yan3\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 44\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 54\n      },\n      {\n        \"__id__\": 55\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 56\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 91,\n      \"height\": 79\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        57,\n        133,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 53\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"662aee62-519e-4c0e-aace-f4f86aadcabf\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 53\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 53\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"f9yNmfvVNMfLZN249g9aIf\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"QQL_yan4\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 44\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 58\n      },\n      {\n        \"__id__\": 59\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 60\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 91,\n      \"height\": 79\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        170.7,\n        133.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 57\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"662aee62-519e-4c0e-aace-f4f86aadcabf\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 57\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 57\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"7aeuWSgcxJArZNno+il7g2\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lianji\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 44\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 62\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 63\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 61.84,\n      \"height\": 40\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        50.4,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 61\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 40,\n    \"_fontSize\": 40,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"0击\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"46D5DPxvtKsI70eU37sMA+\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"time\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 44\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 65\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 66\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 1,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 39.74,\n      \"height\": 24\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        231.6,\n        194.1,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 64\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 24,\n    \"_fontSize\": 24,\n    \"_lineHeight\": 24,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"20S\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"54yEIfRS1GXoYXYLutS/7z\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"timeOver\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 44\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 68\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 69\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 133,\n      \"g\": 255,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 229.4,\n      \"height\": 50\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -50,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 67\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 50,\n    \"_fontSize\": 50,\n    \"_lineHeight\": 50,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"**时间到**\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"8fsX9oAIBOmLkmNjG6j3zB\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnOnceAgain\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 44\n    },\n    \"_children\": [\n      {\n        \"__id__\": 71\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 74\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 75\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 153,\n      \"g\": 0,\n      \"b\": 61,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 150,\n      \"height\": 60\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        260,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 70\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 72\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 73\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 120,\n      \"height\": 30\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 71\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 30,\n    \"_fontSize\": 30,\n    \"_lineHeight\": 30,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"再来一次\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"c0ngDyPRlBK4Gfdxb36Il8\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 70\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"a6rHawvc1OIa0DjisFi+zf\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 44\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"3532831b-c467-4cb1-a641-02e3aa613fb5\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 44\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": true,\n    \"_target\": null,\n    \"_alignFlags\": 4,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": -300,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0\n  },\n  {\n    \"__type__\": \"d0af0ylg0ZPj48ABne8k8zj\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 44\n    },\n    \"_enabled\": true,\n    \"yans\": [\n      {\n        \"__id__\": 45\n      },\n      {\n        \"__id__\": 49\n      },\n      {\n        \"__id__\": 53\n      },\n      {\n        \"__id__\": 57\n      }\n    ],\n    \"lianji\": {\n      \"__id__\": 62\n    },\n    \"time\": {\n      \"__id__\": 65\n    },\n    \"img\": [\n      {\n        \"__uuid__\": \"662aee62-519e-4c0e-aace-f4f86aadcabf\"\n      },\n      {\n        \"__uuid__\": \"adb6b296-85af-402d-937f-82ec5cb49ba4\"\n      },\n      {\n        \"__uuid__\": \"adb6b296-85af-402d-937f-82ec5cb49ba4\"\n      }\n    ],\n    \"timeOver\": {\n      \"__id__\": 67\n    },\n    \"btnOnceAgain\": {\n      \"__id__\": 70\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"415GYfDmlDr6Rq+THVhZxa\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 43\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 4,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 0,\n    \"_originalHeight\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"84BGNN7DVOuaiS27RG8Ze+\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 1280,\n    \"_originalHeight\": 720\n  },\n  {\n    \"__type__\": \"6d658A27v5LdYTRxsn59u5l\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"eye\": {\n      \"__id__\": 8\n    },\n    \"network\": {\n      \"__id__\": 11\n    },\n    \"noNetwork\": {\n      \"__id__\": 29\n    },\n    \"btnExit\": {\n      \"__id__\": 36\n    },\n    \"QQL\": {\n      \"__id__\": 44\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\"\n    },\n    \"fileId\": \"12vIINOzJDgYGi4RQfIylF\",\n    \"sync\": false\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/network.prefab.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"68fc0d6a-df6b-4b60-8aad-905c295f9e62\",\n  \"optimizationPolicy\": \"AUTO\",\n  \"asyncLoadAssets\": false,\n  \"readonly\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/register.prefab",
    "content": "[\n  {\n    \"__type__\": \"cc.Prefab\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_rawFiles\": null,\n    \"data\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"register\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [\n      {\n        \"__id__\": 2\n      },\n      {\n        \"__id__\": 33\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 37\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 38\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_white\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 3\n      },\n      {\n        \"__id__\": 6\n      },\n      {\n        \"__id__\": 15\n      },\n      {\n        \"__id__\": 24\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 31\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 32\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 600,\n      \"height\": 450\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"title\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 4\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 5\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 115,\n      \"b\": 13,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 176,\n      \"height\": 44\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        169,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 3\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 44,\n    \"_fontSize\": 44,\n    \"_lineHeight\": 44,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"快速注册\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"ce502bac-85ad-4cd2-a8bf-ab773ee4385f\"\n    },\n    \"fileId\": \"3cv41t6P5DXY3J2BIsDnYJ\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_inputBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [\n      {\n        \"__id__\": 7\n      },\n      {\n        \"__id__\": 10\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 13\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 14\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 535,\n      \"height\": 87\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        72,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon_account\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 6\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 8\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 9\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 32,\n      \"height\": 36\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -220,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 7\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5fa82f9b-b4c4-45f1-bdaa-4720894fc694\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"ce502bac-85ad-4cd2-a8bf-ab773ee4385f\"\n    },\n    \"fileId\": \"2eXc7mHl9L+4oHrBtt3dAt\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"editBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 6\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 11\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 12\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 430,\n      \"height\": 70\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -188.1,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.EditBox\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 10\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_string\": \"\",\n    \"_tabIndex\": 0,\n    \"editingDidBegan\": [],\n    \"textChanged\": [],\n    \"editingDidEnded\": [],\n    \"editingReturn\": [],\n    \"_N$backgroundImage\": null,\n    \"_N$returnType\": 0,\n    \"_N$inputFlag\": 5,\n    \"_N$inputMode\": 6,\n    \"_N$fontSize\": 30,\n    \"_N$lineHeight\": 40,\n    \"_N$fontColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_N$placeholder\": \"请输入账号[4~20位]\",\n    \"_N$placeholderFontSize\": 30,\n    \"_N$placeholderFontColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 204,\n      \"g\": 204,\n      \"b\": 204,\n      \"a\": 255\n    },\n    \"_N$maxLength\": 16,\n    \"_N$stayOnTop\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"ce502bac-85ad-4cd2-a8bf-ab773ee4385f\"\n    },\n    \"fileId\": \"73be96A1NGgLGlQajMW5Ug\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 6\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"cff7d96e-e4f9-4930-bcf2-797e971ff98e\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"ce502bac-85ad-4cd2-a8bf-ab773ee4385f\"\n    },\n    \"fileId\": \"99azcsja9BrKwR/5Hwojpr\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_inputBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [\n      {\n        \"__id__\": 16\n      },\n      {\n        \"__id__\": 19\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 22\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 23\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 535,\n      \"height\": 87\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -33,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon_lock\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 15\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 17\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 18\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 37,\n      \"height\": 39\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -220,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 16\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"6304bd8e-e7e6-4fe0-a027-d92a7c28b4e2\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"ce502bac-85ad-4cd2-a8bf-ab773ee4385f\"\n    },\n    \"fileId\": \"bexQ6k6D9FvKJWxmjeXRhc\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"editBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 15\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 20\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 21\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 430,\n      \"height\": 70\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -188.1,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.EditBox\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 19\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_string\": \"\",\n    \"_tabIndex\": 0,\n    \"editingDidBegan\": [],\n    \"textChanged\": [],\n    \"editingDidEnded\": [],\n    \"editingReturn\": [],\n    \"_N$backgroundImage\": null,\n    \"_N$returnType\": 0,\n    \"_N$inputFlag\": 5,\n    \"_N$inputMode\": 6,\n    \"_N$fontSize\": 30,\n    \"_N$lineHeight\": 40,\n    \"_N$fontColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_N$placeholder\": \"请输入密码[4~20位]\",\n    \"_N$placeholderFontSize\": 30,\n    \"_N$placeholderFontColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 204,\n      \"g\": 204,\n      \"b\": 204,\n      \"a\": 255\n    },\n    \"_N$maxLength\": 16,\n    \"_N$stayOnTop\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"ce502bac-85ad-4cd2-a8bf-ab773ee4385f\"\n    },\n    \"fileId\": \"16VugeO4tJN7iHJ0OJfkZb\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 15\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"cff7d96e-e4f9-4930-bcf2-797e971ff98e\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"ce502bac-85ad-4cd2-a8bf-ab773ee4385f\"\n    },\n    \"fileId\": \"2aLLNF1ChPor9PeH3sE1C+\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnRegister\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 2\n    },\n    \"_children\": [\n      {\n        \"__id__\": 25\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 28\n      },\n      {\n        \"__id__\": 29\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 30\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 138,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 535,\n      \"height\": 90\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -150,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 24\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 26\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 27\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 231,\n      \"g\": 255,\n      \"b\": 222,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 144,\n      \"height\": 36\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 25\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 36,\n    \"_fontSize\": 36,\n    \"_lineHeight\": 36,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"立即注册\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"ce502bac-85ad-4cd2-a8bf-ab773ee4385f\"\n    },\n    \"fileId\": \"ffE06+P+RF8pJQ2Dpss2Kj\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 24\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"e47fd4ef-6891-48eb-948d-77e82e794052\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 24\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 220,\n      \"g\": 119,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 151,\n      \"b\": 29,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 138,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 24\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"ce502bac-85ad-4cd2-a8bf-ab773ee4385f\"\n    },\n    \"fileId\": \"03oaKK7hNCOK//2j56RkVs\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"ce502bac-85ad-4cd2-a8bf-ab773ee4385f\"\n    },\n    \"fileId\": \"a5/3rYAyxPGLGSkIr6G0pV\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnClose\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 34\n      },\n      {\n        \"__id__\": 35\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 36\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 80,\n      \"height\": 80\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        256,\n        181,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 33\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"456e7c94-de74-47a4-8c43-08b1049c37ae\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 33\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 33\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"ce502bac-85ad-4cd2-a8bf-ab773ee4385f\"\n    },\n    \"fileId\": \"2cGiv+5cpH/pGOaeSgj7lV\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"a1aa88OMk5NjqG4TKVlKIkJ\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"btnRegister\": {\n      \"__id__\": 24\n    },\n    \"editBoxAccount\": {\n      \"__id__\": 11\n    },\n    \"editBoxPassword\": {\n      \"__id__\": 20\n    },\n    \"viewAnimations\": [\n      {\n        \"__id__\": 3\n      },\n      {\n        \"__id__\": 6\n      },\n      {\n        \"__id__\": 15\n      },\n      {\n        \"__id__\": 24\n      },\n      {\n        \"__id__\": 33\n      }\n    ]\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"ce502bac-85ad-4cd2-a8bf-ab773ee4385f\"\n    },\n    \"fileId\": \"cfBpew0M9JKo4vBqjU0cvw\",\n    \"sync\": false\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/register.prefab.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"ce502bac-85ad-4cd2-a8bf-ab773ee4385f\",\n  \"optimizationPolicy\": \"AUTO\",\n  \"asyncLoadAssets\": false,\n  \"readonly\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/reviseUserInfo.prefab",
    "content": "[\n  {\n    \"__type__\": \"cc.Prefab\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_rawFiles\": null,\n    \"data\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"reviseUserInfo\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [\n      {\n        \"__id__\": 2\n      },\n      {\n        \"__id__\": 7\n      },\n      {\n        \"__id__\": 11\n      },\n      {\n        \"__id__\": 17\n      },\n      {\n        \"__id__\": 21\n      },\n      {\n        \"__id__\": 27\n      },\n      {\n        \"__id__\": 30\n      },\n      {\n        \"__id__\": 142\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 145\n      },\n      {\n        \"__id__\": 146\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 147\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 960\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        360,\n        480,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"M\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 3\n      },\n      {\n        \"__id__\": 4\n      },\n      {\n        \"__id__\": 5\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 6\n    },\n    \"_id\": \"\",\n    \"_opacity\": 150,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 960\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 2\n    }\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"50qp73ixNKlZ6DJ9Eu1wLj\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 8\n      },\n      {\n        \"__id__\": 9\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 10\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 690,\n      \"height\": 350\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        20,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 7\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"1ccce9c7-e2e0-4227-8f86-f8fb0a40b5bc\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 7\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 7\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"33m95eygVJIpimhTF6UWr3\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_title\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 12\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 15\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 16\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 368,\n      \"height\": 76\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        207,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"title_reviseUserInfo\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 13\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 14\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 262,\n      \"height\": 55\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 12\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"60601128-53f7-49b9-af9c-216089fd1346\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"0djimdDeFC0ZnmOPerPqpL\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 11\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"05f2b6ee-7d42-49c2-ac53-2443ae121bc4\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"fcLY1HQRhJV5L87fQieryA\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btn_create\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 18\n      },\n      {\n        \"__id__\": 19\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 20\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 220,\n      \"height\": 70\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -210,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 17\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"e4d8f436-e4c3-44a4-affb-3bdf7ea1108e\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 17\n    },\n    \"_enabled\": true,\n    \"transition\": 3,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.1,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 17\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"94pBFBpRVGG6Hxm6WCJnLU\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_editBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 22\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 25\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 26\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 280,\n      \"height\": 54\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -103,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New EditBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 21\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 23\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 24\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 260,\n      \"height\": 50\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.EditBox\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 22\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_string\": \"\",\n    \"_tabIndex\": 0,\n    \"editingDidBegan\": [],\n    \"textChanged\": [],\n    \"editingDidEnded\": [],\n    \"editingReturn\": [],\n    \"_N$backgroundImage\": null,\n    \"_N$returnType\": 0,\n    \"_N$inputFlag\": 2,\n    \"_N$inputMode\": 6,\n    \"_N$fontSize\": 32,\n    \"_N$lineHeight\": 32,\n    \"_N$fontColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$placeholder\": \"2~4个汉字\",\n    \"_N$placeholderFontSize\": 32,\n    \"_N$placeholderFontColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 128,\n      \"g\": 134,\n      \"b\": 81,\n      \"a\": 255\n    },\n    \"_N$maxLength\": 20,\n    \"_N$stayOnTop\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"a9jOIgXVxIIIM819yJmcOa\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 21\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"abfdbf72-91c3-446d-8d05-6ab2a9e6f9d9\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"02oSCH1S9JSaX2FJo/RK6f\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 28\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 29\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 96,\n      \"height\": 32\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -180,\n        -103,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 27\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 32,\n    \"_fontSize\": 32,\n    \"_lineHeight\": 32,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"姓名：\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"1a1Py4CT5AuoxMYMS8+tDn\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"ToggleGroup\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 31\n      },\n      {\n        \"__id__\": 41\n      },\n      {\n        \"__id__\": 50\n      },\n      {\n        \"__id__\": 59\n      },\n      {\n        \"__id__\": 68\n      },\n      {\n        \"__id__\": 77\n      },\n      {\n        \"__id__\": 86\n      },\n      {\n        \"__id__\": 95\n      },\n      {\n        \"__id__\": 104\n      },\n      {\n        \"__id__\": 113\n      },\n      {\n        \"__id__\": 122\n      },\n      {\n        \"__id__\": 131\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 39\n      },\n      {\n        \"__id__\": 140\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 141\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 670,\n      \"height\": 222\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        50,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"11\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 30\n    },\n    \"_children\": [\n      {\n        \"__id__\": 32\n      },\n      {\n        \"__id__\": 35\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 38\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 40\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -280,\n        56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 31\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 33\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 34\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 32\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"1a8614f1-055a-4ef6-9b8a-c7494b9e21ee\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"93TAFECDFLQ6w8QBQCSDMV\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 31\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 36\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 37\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 35\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"c2haV19OFIMqs/WFfwjrlp\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 31\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 32\n    },\n    \"toggleGroup\": {\n      \"__id__\": 39\n    },\n    \"checkMark\": {\n      \"__id__\": 36\n    },\n    \"checkEvents\": [],\n    \"_N$isChecked\": false\n  },\n  {\n    \"__type__\": \"cc.ToggleGroup\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 30\n    },\n    \"_enabled\": true,\n    \"allowSwitchOff\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"2150aFVVZNCKwtvJxBndI0\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"12\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 30\n    },\n    \"_children\": [\n      {\n        \"__id__\": 42\n      },\n      {\n        \"__id__\": 45\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 48\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 49\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -168,\n        56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 41\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 43\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 44\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 42\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"f4291eab-d5c4-4f85-9784-466782ce4e77\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"76LoiIWGNDoqP9oKspNfXf\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 41\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 46\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 47\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 45\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"50FKc0fuFLXqmaFXLWEs+X\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 41\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 42\n    },\n    \"toggleGroup\": {\n      \"__id__\": 39\n    },\n    \"checkMark\": {\n      \"__id__\": 46\n    },\n    \"checkEvents\": [],\n    \"_N$isChecked\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"17U/MSnHJFwKabKMBdJXu/\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"13\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 30\n    },\n    \"_children\": [\n      {\n        \"__id__\": 51\n      },\n      {\n        \"__id__\": 54\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 57\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 58\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -56,\n        56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 50\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 52\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 53\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 51\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"da999093-058c-4060-8758-9ac6c13b20bb\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"bcXHvBPCRAmI/UneUiwNCa\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 50\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 55\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 56\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 54\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"21+0Jd/mtER4OrjtvK3001\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 50\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 51\n    },\n    \"toggleGroup\": {\n      \"__id__\": 39\n    },\n    \"checkMark\": {\n      \"__id__\": 55\n    },\n    \"checkEvents\": [],\n    \"_N$isChecked\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"ffLmXo/thADZ9kwB8M0RXY\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"21\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 30\n    },\n    \"_children\": [\n      {\n        \"__id__\": 60\n      },\n      {\n        \"__id__\": 63\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 66\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 67\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        56,\n        56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 59\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 61\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 62\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 60\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"8634744a-ef46-4d3d-94a9-628d0a11396e\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"74f899PZZLYL1slM1nDdke\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 59\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 64\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 65\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 63\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"03tOF6HPlJVbALi13ttWQM\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 59\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 60\n    },\n    \"toggleGroup\": {\n      \"__id__\": 39\n    },\n    \"checkMark\": {\n      \"__id__\": 64\n    },\n    \"checkEvents\": [],\n    \"_N$isChecked\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"a9mgORybBFIqykXwNR0mHV\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"22\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 30\n    },\n    \"_children\": [\n      {\n        \"__id__\": 69\n      },\n      {\n        \"__id__\": 72\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 75\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 76\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        168,\n        56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 68\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 70\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 71\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 69\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"e5a63e5c-fac7-47fc-a1bf-69aafd6e16b2\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"9cTe4ybP9Jlac0k5OEcjUK\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 68\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 73\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 74\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 72\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"77siB1cExJ65ZbTcqhjm4D\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 68\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 69\n    },\n    \"toggleGroup\": {\n      \"__id__\": 39\n    },\n    \"checkMark\": {\n      \"__id__\": 73\n    },\n    \"checkEvents\": [],\n    \"_N$isChecked\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"d3zP3+UB9I2rxOofalDjyL\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"23\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 30\n    },\n    \"_children\": [\n      {\n        \"__id__\": 78\n      },\n      {\n        \"__id__\": 81\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 84\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 85\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        280,\n        56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 77\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 79\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 80\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 78\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"f84136de-fa2c-40e6-aba3-80ac9ca9c876\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"b7ozwSR1VOE6E9MzQrPvL6\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 77\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 82\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 83\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 81\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"d24FdbVjFBYbtCgRdb/k1g\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 77\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 78\n    },\n    \"toggleGroup\": {\n      \"__id__\": 39\n    },\n    \"checkMark\": {\n      \"__id__\": 82\n    },\n    \"checkEvents\": [],\n    \"_N$isChecked\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"adMGCaQMNLWZ/JiLJ8DNNI\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"14\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 30\n    },\n    \"_children\": [\n      {\n        \"__id__\": 87\n      },\n      {\n        \"__id__\": 90\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 93\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 94\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -280,\n        -56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 86\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 88\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 89\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 87\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"b8497473-5d8f-48ac-8bf1-41c00eca0154\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"d2L2xlRvVCdYiIvnofYK9d\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 86\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 91\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 92\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 90\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"eduYFwgvhMRZpEtG6v0Jyt\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 86\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 87\n    },\n    \"toggleGroup\": {\n      \"__id__\": 39\n    },\n    \"checkMark\": {\n      \"__id__\": 91\n    },\n    \"checkEvents\": [],\n    \"_N$isChecked\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"cc30p03rJAqqcOK0oGOiIV\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"15\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 30\n    },\n    \"_children\": [\n      {\n        \"__id__\": 96\n      },\n      {\n        \"__id__\": 99\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 102\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 103\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -168,\n        -56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 95\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 97\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 98\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 96\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5a0919bf-4cf7-49e2-bc32-115c0968926e\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"b0UwXDvh5Lsb/WL2qv68y9\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 95\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 100\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 101\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 99\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"17+wLSzghG45IEO0WOQSb0\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 95\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 96\n    },\n    \"toggleGroup\": {\n      \"__id__\": 39\n    },\n    \"checkMark\": {\n      \"__id__\": 100\n    },\n    \"checkEvents\": [],\n    \"_N$isChecked\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"51tkte9KRLCYWCufu5eDvI\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"16\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 30\n    },\n    \"_children\": [\n      {\n        \"__id__\": 105\n      },\n      {\n        \"__id__\": 108\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 111\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 112\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -56,\n        -56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 104\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 106\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 107\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 105\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"baa15fbd-591c-428f-86d9-95d999912d6f\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"53K1oxylpJ1pA5Izr4sqdo\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 104\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 109\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 110\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 108\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"9dwi2ZSA9LH7K6/P6h13r7\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 104\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 105\n    },\n    \"toggleGroup\": {\n      \"__id__\": 39\n    },\n    \"checkMark\": {\n      \"__id__\": 109\n    },\n    \"checkEvents\": [],\n    \"_N$isChecked\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"86CJgoy1xFqq9/KcGgDYXd\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"24\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 30\n    },\n    \"_children\": [\n      {\n        \"__id__\": 114\n      },\n      {\n        \"__id__\": 117\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 120\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 121\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        56,\n        -56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 113\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 115\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 116\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 114\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"1ae09d07-5d6c-4c21-8e19-85b40d2902d5\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"22tZWQ54NKQoeLHH9MkTti\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 113\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 118\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 119\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 117\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"eeI2aack1HDYCgskij67aO\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 113\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 114\n    },\n    \"toggleGroup\": {\n      \"__id__\": 39\n    },\n    \"checkMark\": {\n      \"__id__\": 118\n    },\n    \"checkEvents\": [],\n    \"_N$isChecked\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"38rH5db2RJfq8caC46vH7v\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"25\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 30\n    },\n    \"_children\": [\n      {\n        \"__id__\": 123\n      },\n      {\n        \"__id__\": 126\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 129\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 130\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        168,\n        -56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 122\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 124\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 125\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 123\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"1203c8ab-ab77-4419-8cf4-fbead8bccb91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"107D5sVUFLKa+7sleSEmCr\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 122\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 127\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 128\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 126\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"3dHM5mExNIUpI3qDzE7KwN\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 122\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 123\n    },\n    \"toggleGroup\": {\n      \"__id__\": 39\n    },\n    \"checkMark\": {\n      \"__id__\": 127\n    },\n    \"checkEvents\": [],\n    \"_N$isChecked\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"05lgUtirVN0K0RbD7Ny9r0\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"26\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 30\n    },\n    \"_children\": [\n      {\n        \"__id__\": 132\n      },\n      {\n        \"__id__\": 135\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 138\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 139\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        280,\n        -56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 131\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 133\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 134\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 132\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"eec162c8-8b6a-4457-a777-5e98958a4b28\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"90ZmnhRWdL1pSH8jkr0ER/\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 131\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 136\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 137\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 135\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"8aHYyrJUpLnYuVnoLOduLx\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 131\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 132\n    },\n    \"toggleGroup\": {\n      \"__id__\": 39\n    },\n    \"checkMark\": {\n      \"__id__\": 136\n    },\n    \"checkEvents\": [],\n    \"_N$isChecked\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"5cgglaKChFkIpr5Z2NCudS\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 30\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 670,\n      \"height\": 222\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 3,\n    \"_N$padding\": 0,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 0,\n    \"_N$paddingRight\": 0,\n    \"_N$paddingTop\": 0,\n    \"_N$paddingBottom\": 0,\n    \"_N$spacingX\": 2,\n    \"_N$spacingY\": 2,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"0cWJtKRhhA27CDGshP8Zx4\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnDice\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 143\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 144\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 79,\n      \"height\": 84\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        181,\n        -105,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 142\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a129a85d-770e-4597-bfdd-d8be254908fd\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"f1jKxQ8UpHV5Xq5daJ+iK7\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"27349SderNJd5GejUkUIjNL\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"btnCreate\": {\n      \"__id__\": 17\n    },\n    \"btnClose\": {\n      \"__id__\": 2\n    },\n    \"toggleGroup\": {\n      \"__id__\": 30\n    },\n    \"toggles\": [\n      {\n        \"__id__\": 31\n      },\n      {\n        \"__id__\": 41\n      },\n      {\n        \"__id__\": 50\n      },\n      {\n        \"__id__\": 86\n      },\n      {\n        \"__id__\": 95\n      },\n      {\n        \"__id__\": 104\n      },\n      {\n        \"__id__\": 59\n      },\n      {\n        \"__id__\": 68\n      },\n      {\n        \"__id__\": 77\n      },\n      {\n        \"__id__\": 113\n      },\n      {\n        \"__id__\": 122\n      },\n      {\n        \"__id__\": 131\n      }\n    ],\n    \"editBoxNickname\": {\n      \"__id__\": 23\n    },\n    \"viewAnimations\": [\n      {\n        \"__id__\": 11\n      },\n      {\n        \"__id__\": 30\n      },\n      {\n        \"__id__\": 21\n      },\n      {\n        \"__id__\": 27\n      },\n      {\n        \"__id__\": 17\n      }\n    ],\n    \"btnDice\": {\n      \"__id__\": 142\n    }\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\"\n    },\n    \"fileId\": \"10c8nqTwZGVYYMhfkxPJ1t\",\n    \"sync\": false\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/reviseUserInfo.prefab.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"f2b14cff-9066-4ff4-be5c-64c356b14966\",\n  \"optimizationPolicy\": \"AUTO\",\n  \"asyncLoadAssets\": false,\n  \"readonly\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/reviseUserInfo2.prefab",
    "content": "[\n  {\n    \"__type__\": \"cc.Prefab\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_native\": \"\",\n    \"data\": {\n      \"__id__\": 1\n    },\n    \"optimizationPolicy\": 0,\n    \"asyncLoadAssets\": false,\n    \"readonly\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"reviseUserInfo\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [\n      {\n        \"__id__\": 2\n      },\n      {\n        \"__id__\": 7\n      },\n      {\n        \"__id__\": 11\n      },\n      {\n        \"__id__\": 17\n      },\n      {\n        \"__id__\": 21\n      },\n      {\n        \"__id__\": 51\n      },\n      {\n        \"__id__\": 54\n      },\n      {\n        \"__id__\": 166\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 169\n      },\n      {\n        \"__id__\": 170\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 171\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"M\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 3\n      },\n      {\n        \"__id__\": 4\n      },\n      {\n        \"__id__\": 5\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 6\n    },\n    \"_opacity\": 150,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 1136,\n      \"height\": 640\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 0,\n    \"transition\": 0,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 2\n    },\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"80+StlqpFKJpbX7TUEMG0t\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 8\n      },\n      {\n        \"__id__\": 9\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 10\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 690,\n      \"height\": 350\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        20,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 7\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"1ccce9c7-e2e0-4227-8f86-f8fb0a40b5bc\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 7\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 0,\n    \"transition\": 0,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 7\n    },\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"fbWWsHmiJCO7BMCku/fxsx\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_title\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 12\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 15\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 16\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 368,\n      \"height\": 76\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        207,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"title_reviseUserInfo\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 13\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 14\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 262,\n      \"height\": 55\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 12\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"60601128-53f7-49b9-af9c-216089fd1346\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"33kZV/AWtKxYqvrcdipb3S\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 11\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"05f2b6ee-7d42-49c2-ac53-2443ae121bc4\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"eei6Zk4zZOOqzAiLQ10/6E\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btn_create\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 18\n      },\n      {\n        \"__id__\": 19\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 20\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 220,\n      \"height\": 70\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -210,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 17\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"e4d8f436-e4c3-44a4-affb-3bdf7ea1108e\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 17\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.1,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 3,\n    \"transition\": 3,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 17\n    },\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"5f0BmCC09B26UOVMWJXSEa\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_editBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 22\n      },\n      {\n        \"__id__\": 34\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 49\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 50\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 280,\n      \"height\": 54\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -103,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New EditBox1\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 21\n    },\n    \"_children\": [\n      {\n        \"__id__\": 23\n      },\n      {\n        \"__id__\": 26\n      },\n      {\n        \"__id__\": 29\n      }\n    ],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 32\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 33\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 260,\n      \"height\": 50\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"BACKGROUND_SPRITE\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 22\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 24\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 25\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 23\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": null,\n    \"_type\": 1,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"aelOSpWs9DpqQSARj2UH2W\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"TEXT_LABEL\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 22\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 27\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 28\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 50.4\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 26\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": true,\n    \"_string\": \"\",\n    \"_N$string\": \"\",\n    \"_fontSize\": 32,\n    \"_lineHeight\": 32,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"8esBRHP15MdqO1En2WOmYP\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"PLACEHOLDER_LABEL\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 22\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 30\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 31\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 128,\n      \"g\": 134,\n      \"b\": 81,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 50.4\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 29\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": true,\n    \"_string\": \"2~4个汉字\",\n    \"_N$string\": \"2~4个汉字\",\n    \"_fontSize\": 32,\n    \"_lineHeight\": 40,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"19D9tHZmRCPqumEaqOrAhC\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.EditBox\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 22\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_string\": \"\",\n    \"returnType\": 0,\n    \"maxLength\": 20,\n    \"_tabIndex\": 0,\n    \"editingDidBegan\": [],\n    \"textChanged\": [],\n    \"editingDidEnded\": [],\n    \"editingReturn\": [],\n    \"_N$textLabel\": {\n      \"__id__\": 27\n    },\n    \"_N$placeholderLabel\": {\n      \"__id__\": 30\n    },\n    \"_N$background\": {\n      \"__id__\": 24\n    },\n    \"_N$inputFlag\": 2,\n    \"_N$inputMode\": 6,\n    \"_N$stayOnTop\": false,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"d8KauTf9FK0pDlsUYHRJIo\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"editbox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 21\n    },\n    \"_children\": [\n      {\n        \"__id__\": 35\n      },\n      {\n        \"__id__\": 39\n      },\n      {\n        \"__id__\": 43\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 47\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 48\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 160,\n      \"height\": 40\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"BACKGROUND_SPRITE\",\n    \"_objFlags\": 512,\n    \"_parent\": {\n      \"__id__\": 34\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 36\n      },\n      {\n        \"__id__\": 37\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 38\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 160,\n      \"height\": 40\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 35\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"ff0e91c7-55c6-4086-a39f-cb6e457b8c3b\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 35\n    },\n    \"_enabled\": true,\n    \"alignMode\": 0,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 160,\n    \"_originalHeight\": 40,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"886kcSzKxPl7rve9drBbS+\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"TEXT_LABEL\",\n    \"_objFlags\": 512,\n    \"_parent\": {\n      \"__id__\": 34\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 40\n      },\n      {\n        \"__id__\": 41\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 42\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 158,\n      \"height\": 40\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -78,\n        20,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 39\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": true,\n    \"_string\": \"\",\n    \"_N$string\": \"\",\n    \"_fontSize\": 20,\n    \"_lineHeight\": 25,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 39\n    },\n    \"_enabled\": true,\n    \"alignMode\": 0,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 2,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 158,\n    \"_originalHeight\": 40,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"dbwT+oOaNMkJCB3qwcoSSG\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"PLACEHOLDER_LABEL\",\n    \"_objFlags\": 512,\n    \"_parent\": {\n      \"__id__\": 34\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 44\n      },\n      {\n        \"__id__\": 45\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 46\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 187,\n      \"g\": 187,\n      \"b\": 187,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 158,\n      \"height\": 40\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 1\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -78,\n        20,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 43\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": true,\n    \"_string\": \"\",\n    \"_N$string\": \"\",\n    \"_fontSize\": 20,\n    \"_lineHeight\": 25,\n    \"_enableWrapText\": false,\n    \"_N$file\": null,\n    \"_isSystemFontUsed\": true,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 0,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 1,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 43\n    },\n    \"_enabled\": true,\n    \"alignMode\": 0,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 2,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 158,\n    \"_originalHeight\": 40,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"0a2Q+UKn9KjIArVQpYTkgr\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.EditBox\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 34\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_string\": \"\",\n    \"returnType\": 0,\n    \"maxLength\": 8,\n    \"_tabIndex\": 0,\n    \"editingDidBegan\": [],\n    \"textChanged\": [],\n    \"editingDidEnded\": [],\n    \"editingReturn\": [],\n    \"_N$textLabel\": {\n      \"__id__\": 40\n    },\n    \"_N$placeholderLabel\": {\n      \"__id__\": 44\n    },\n    \"_N$background\": {\n      \"__id__\": 36\n    },\n    \"_N$inputFlag\": 5,\n    \"_N$inputMode\": 6,\n    \"_N$stayOnTop\": false,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"adI0Ep2TFAmqyGNc5GeiRX\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 21\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"abfdbf72-91c3-446d-8d05-6ab2a9e6f9d9\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"af/NGq2ldFPrHqLwtT7uMG\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Label\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 52\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 53\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 96,\n      \"height\": 40.32\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -180,\n        -103,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 51\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_useOriginalSize\": false,\n    \"_string\": \"姓名：\",\n    \"_N$string\": \"姓名：\",\n    \"_fontSize\": 32,\n    \"_lineHeight\": 32,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_batchAsBitmap\": false,\n    \"_styleFlags\": 0,\n    \"_underlineHeight\": 0,\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0,\n    \"_N$cacheMode\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"39+qDX6ENKE4YFlHXJy0ax\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"ToggleGroup\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 55\n      },\n      {\n        \"__id__\": 65\n      },\n      {\n        \"__id__\": 74\n      },\n      {\n        \"__id__\": 83\n      },\n      {\n        \"__id__\": 92\n      },\n      {\n        \"__id__\": 101\n      },\n      {\n        \"__id__\": 110\n      },\n      {\n        \"__id__\": 119\n      },\n      {\n        \"__id__\": 128\n      },\n      {\n        \"__id__\": 137\n      },\n      {\n        \"__id__\": 146\n      },\n      {\n        \"__id__\": 155\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 63\n      },\n      {\n        \"__id__\": 164\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 165\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 670,\n      \"height\": 222\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        50,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"11\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 54\n    },\n    \"_children\": [\n      {\n        \"__id__\": 56\n      },\n      {\n        \"__id__\": 59\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 62\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 64\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -280,\n        56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 55\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 57\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 58\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 56\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"1a8614f1-055a-4ef6-9b8a-c7494b9e21ee\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"686hr5y1JMxLxO45BYgYrI\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 55\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 60\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 61\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 59\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"11mrlf5GFMLqr1mVc5hitA\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 55\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 56\n    },\n    \"_N$isChecked\": false,\n    \"toggleGroup\": {\n      \"__id__\": 63\n    },\n    \"checkMark\": {\n      \"__id__\": 60\n    },\n    \"checkEvents\": [],\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.ToggleGroup\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 54\n    },\n    \"_enabled\": true,\n    \"allowSwitchOff\": false,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"35dkRyg+9EFb20/JlB1gj+\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"12\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 54\n    },\n    \"_children\": [\n      {\n        \"__id__\": 66\n      },\n      {\n        \"__id__\": 69\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 72\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 73\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -168,\n        56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 65\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 67\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 68\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 66\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"f4291eab-d5c4-4f85-9784-466782ce4e77\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"97c6fYB8lLuo8JcwZnIrde\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 65\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 70\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 71\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 69\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"06tTaT2JFGgIUszoVJ/fRL\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 65\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 66\n    },\n    \"_N$isChecked\": false,\n    \"toggleGroup\": {\n      \"__id__\": 63\n    },\n    \"checkMark\": {\n      \"__id__\": 70\n    },\n    \"checkEvents\": [],\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"28GpiAA7RI9IQJd+XZZzNk\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"13\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 54\n    },\n    \"_children\": [\n      {\n        \"__id__\": 75\n      },\n      {\n        \"__id__\": 78\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 81\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 82\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -56,\n        56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 74\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 76\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 77\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 75\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"da999093-058c-4060-8758-9ac6c13b20bb\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"21uX0WSWVHyI4qSRmMCH/3\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 74\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 79\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 80\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 78\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"31FchQ8ZhLc5Rv962bGMav\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 74\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 75\n    },\n    \"_N$isChecked\": false,\n    \"toggleGroup\": {\n      \"__id__\": 63\n    },\n    \"checkMark\": {\n      \"__id__\": 79\n    },\n    \"checkEvents\": [],\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"88gUKSjINEMLwlHOWIy+3T\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"21\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 54\n    },\n    \"_children\": [\n      {\n        \"__id__\": 84\n      },\n      {\n        \"__id__\": 87\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 90\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 91\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        56,\n        56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 83\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 85\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 86\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 84\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"8634744a-ef46-4d3d-94a9-628d0a11396e\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"0cKQW5c2RF5pecEtxLkoda\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 83\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 88\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 89\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 87\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"52d1k8Y1xFM6JoDCMtyCzO\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 83\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 84\n    },\n    \"_N$isChecked\": false,\n    \"toggleGroup\": {\n      \"__id__\": 63\n    },\n    \"checkMark\": {\n      \"__id__\": 88\n    },\n    \"checkEvents\": [],\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"ae3DI08nZLm6nMTmvdBZ7C\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"22\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 54\n    },\n    \"_children\": [\n      {\n        \"__id__\": 93\n      },\n      {\n        \"__id__\": 96\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 99\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 100\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        168,\n        56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 92\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 94\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 95\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 93\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"e5a63e5c-fac7-47fc-a1bf-69aafd6e16b2\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"07To8Bu4JKu4kk1IP+dHAG\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 92\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 97\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 98\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 96\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"a8/MC75KhKoqK+zAB1Pm1k\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 92\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 93\n    },\n    \"_N$isChecked\": false,\n    \"toggleGroup\": {\n      \"__id__\": 63\n    },\n    \"checkMark\": {\n      \"__id__\": 97\n    },\n    \"checkEvents\": [],\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"24yHihzeRMHouWXOj7sx7a\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"23\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 54\n    },\n    \"_children\": [\n      {\n        \"__id__\": 102\n      },\n      {\n        \"__id__\": 105\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 108\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 109\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        280,\n        56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 101\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 103\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 104\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 102\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"f84136de-fa2c-40e6-aba3-80ac9ca9c876\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"edzVvh7VBFXoFYfsD4C/jA\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 101\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 106\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 107\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 105\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"a2LsPKEB5F15nsGwfJjLOC\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 101\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 102\n    },\n    \"_N$isChecked\": false,\n    \"toggleGroup\": {\n      \"__id__\": 63\n    },\n    \"checkMark\": {\n      \"__id__\": 106\n    },\n    \"checkEvents\": [],\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"72OA2DTgBIgIJsA2ADEtHm\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"14\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 54\n    },\n    \"_children\": [\n      {\n        \"__id__\": 111\n      },\n      {\n        \"__id__\": 114\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 117\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 118\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -280,\n        -56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 110\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 112\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 113\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 111\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"b8497473-5d8f-48ac-8bf1-41c00eca0154\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"e7Qlb01LBEX6FkAb4ww5vW\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 110\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 115\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 116\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 114\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"1db4g1xnlIkrhoRzvbMRzY\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 110\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 111\n    },\n    \"_N$isChecked\": false,\n    \"toggleGroup\": {\n      \"__id__\": 63\n    },\n    \"checkMark\": {\n      \"__id__\": 115\n    },\n    \"checkEvents\": [],\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"38KuBj+JlOgrrqiGPqNmwD\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"15\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 54\n    },\n    \"_children\": [\n      {\n        \"__id__\": 120\n      },\n      {\n        \"__id__\": 123\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 126\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 127\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -168,\n        -56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 119\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 121\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 122\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 120\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5a0919bf-4cf7-49e2-bc32-115c0968926e\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"f5ebwLlNBBfpF13MONFkOQ\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 119\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 124\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 125\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 123\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"36dnA9/btOXpTO0+qgRmxg\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 119\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 120\n    },\n    \"_N$isChecked\": false,\n    \"toggleGroup\": {\n      \"__id__\": 63\n    },\n    \"checkMark\": {\n      \"__id__\": 124\n    },\n    \"checkEvents\": [],\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"efPQDgJhFMd4HJGkqHiN5f\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"16\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 54\n    },\n    \"_children\": [\n      {\n        \"__id__\": 129\n      },\n      {\n        \"__id__\": 132\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 135\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 136\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -56,\n        -56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 128\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 130\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 131\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 129\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"baa15fbd-591c-428f-86d9-95d999912d6f\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"1cc1zbXfNHVZIJoRYKZGIO\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 128\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 133\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 134\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 132\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"ddxem31qpBF6Fa6SIqYnPY\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 128\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 129\n    },\n    \"_N$isChecked\": false,\n    \"toggleGroup\": {\n      \"__id__\": 63\n    },\n    \"checkMark\": {\n      \"__id__\": 133\n    },\n    \"checkEvents\": [],\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"f47aKZDFlKUIOYdJPC/aQ5\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"24\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 54\n    },\n    \"_children\": [\n      {\n        \"__id__\": 138\n      },\n      {\n        \"__id__\": 141\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 144\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 145\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        56,\n        -56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 137\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 139\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 140\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 138\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"1ae09d07-5d6c-4c21-8e19-85b40d2902d5\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"39ZfW/55hFFbi4AD68HqZs\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 137\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 142\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 143\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 141\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"05SI/Dv1BOUqmA2Pn3bjrZ\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 137\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 138\n    },\n    \"_N$isChecked\": false,\n    \"toggleGroup\": {\n      \"__id__\": 63\n    },\n    \"checkMark\": {\n      \"__id__\": 142\n    },\n    \"checkEvents\": [],\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"cfa20eH0VNea6mw07h93mw\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"25\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 54\n    },\n    \"_children\": [\n      {\n        \"__id__\": 147\n      },\n      {\n        \"__id__\": 150\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 153\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 154\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        168,\n        -56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 146\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 148\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 149\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 147\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"1203c8ab-ab77-4419-8cf4-fbead8bccb91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"3fTYPkbQ1KxKSxEvgSRjda\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 146\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 151\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 152\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 150\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"40ozVYCVFHVZ+42LTAgc8j\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 146\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 147\n    },\n    \"_N$isChecked\": false,\n    \"toggleGroup\": {\n      \"__id__\": 63\n    },\n    \"checkMark\": {\n      \"__id__\": 151\n    },\n    \"checkEvents\": [],\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"a3s+sVV2xO2qSaXsJKjGAH\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"26\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 54\n    },\n    \"_children\": [\n      {\n        \"__id__\": 156\n      },\n      {\n        \"__id__\": 159\n      }\n    ],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 162\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 163\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 110,\n      \"height\": 110\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        280,\n        -56,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Background\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 155\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 157\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 158\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 104,\n      \"height\": 104\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 156\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"eec162c8-8b6a-4457-a777-5e98958a4b28\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"48HojcQadPYbirMlSieyWY\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"checkmark\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 155\n    },\n    \"_children\": [],\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 160\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 161\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 128,\n      \"height\": 128\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 159\n    },\n    \"_enabled\": true,\n    \"_materials\": [],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a182a771-e785-4820-99c0-e8cbd05d3143\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 2,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": false,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"65CC0kTF9PW41RtKYgNDJ9\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Toggle\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 155\n    },\n    \"_enabled\": true,\n    \"_normalMaterial\": null,\n    \"_grayMaterial\": null,\n    \"duration\": 0.1,\n    \"zoomScale\": 1.05,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$transition\": 1,\n    \"transition\": 1,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_N$hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 232,\n      \"b\": 116,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 156\n    },\n    \"_N$isChecked\": false,\n    \"toggleGroup\": {\n      \"__id__\": 63\n    },\n    \"checkMark\": {\n      \"__id__\": 160\n    },\n    \"checkEvents\": [],\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"973Q9LRodH76yeB6Cqvilb\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 54\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 670,\n      \"height\": 222\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 3,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 0,\n    \"_N$paddingRight\": 0,\n    \"_N$paddingTop\": 0,\n    \"_N$paddingBottom\": 0,\n    \"_N$spacingX\": 2,\n    \"_N$spacingY\": 2,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0,\n    \"_N$affectedByScale\": false,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"ecao19FhRPWp7YSDqg1c+4\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnDice\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 167\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 168\n    },\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 79,\n      \"height\": 84\n    },\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        181,\n        -105,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    },\n    \"_eulerAngles\": {\n      \"__type__\": \"cc.Vec3\",\n      \"x\": 0,\n      \"y\": 0,\n      \"z\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_is3DNode\": false,\n    \"_groupIndex\": 0,\n    \"groupIndex\": 0,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 166\n    },\n    \"_enabled\": true,\n    \"_materials\": [\n      {\n        \"__uuid__\": \"eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432\"\n      }\n    ],\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a129a85d-770e-4597-bfdd-d8be254908fd\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_atlas\": null,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"6fJeSApVZOhKn1m4V4GZb6\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"27349SderNJd5GejUkUIjNL\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"btnCreate\": {\n      \"__id__\": 17\n    },\n    \"btnClose\": {\n      \"__id__\": 2\n    },\n    \"toggleGroup\": {\n      \"__id__\": 54\n    },\n    \"toggles\": [\n      {\n        \"__id__\": 55\n      },\n      {\n        \"__id__\": 65\n      },\n      {\n        \"__id__\": 74\n      },\n      {\n        \"__id__\": 110\n      },\n      {\n        \"__id__\": 119\n      },\n      {\n        \"__id__\": 128\n      },\n      {\n        \"__id__\": 83\n      },\n      {\n        \"__id__\": 92\n      },\n      {\n        \"__id__\": 101\n      },\n      {\n        \"__id__\": 137\n      },\n      {\n        \"__id__\": 146\n      },\n      {\n        \"__id__\": 155\n      }\n    ],\n    \"editBoxNickname\": {\n      \"__id__\": 47\n    },\n    \"viewAnimations\": [\n      {\n        \"__id__\": 11\n      },\n      {\n        \"__id__\": 54\n      },\n      {\n        \"__id__\": 21\n      },\n      {\n        \"__id__\": 51\n      },\n      {\n        \"__id__\": 17\n      }\n    ],\n    \"btnDice\": {\n      \"__id__\": 166\n    },\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"alignMode\": 2,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960,\n    \"_id\": \"\"\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__id__\": 0\n    },\n    \"fileId\": \"855tt357NHS57T+WsYHTCX\",\n    \"sync\": false\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/reviseUserInfo2.prefab.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"9686d1a4-d879-4176-a82b-eed19fffa55f\",\n  \"optimizationPolicy\": \"AUTO\",\n  \"asyncLoadAssets\": false,\n  \"readonly\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/signIn.prefab",
    "content": "[\n  {\n    \"__type__\": \"cc.Prefab\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_rawFiles\": null,\n    \"data\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"signIn\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [\n      {\n        \"__id__\": 2\n      },\n      {\n        \"__id__\": 7\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 49\n      },\n      {\n        \"__id__\": 50\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 51\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 960\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        360,\n        480,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"M\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 3\n      },\n      {\n        \"__id__\": 4\n      },\n      {\n        \"__id__\": 5\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 6\n    },\n    \"_id\": \"\",\n    \"_opacity\": 150,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 720,\n      \"height\": 960\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"transition\": 0,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 211,\n      \"g\": 211,\n      \"b\": 211,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 214,\n      \"g\": 214,\n      \"b\": 214,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 2\n    }\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"ae5XIARNRJZaJJuVlC/s81\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 8\n      },\n      {\n        \"__id__\": 11\n      },\n      {\n        \"__id__\": 20\n      },\n      {\n        \"__id__\": 29\n      },\n      {\n        \"__id__\": 36\n      },\n      {\n        \"__id__\": 43\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 47\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 48\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 600,\n      \"height\": 450\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -1.1368683772161603e-13,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"title\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 7\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 9\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 10\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 115,\n      \"b\": 13,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 176,\n      \"height\": 44\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        169,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 8\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 44,\n    \"_fontSize\": 44,\n    \"_lineHeight\": 44,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"账号登录\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"32+R9PHA1NJIzoKKz5w6NR\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_inputBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 7\n    },\n    \"_children\": [\n      {\n        \"__id__\": 12\n      },\n      {\n        \"__id__\": 15\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 18\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 19\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 535,\n      \"height\": 87\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        72,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon_account\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 13\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 14\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 32,\n      \"height\": 36\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -220,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 12\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5fa82f9b-b4c4-45f1-bdaa-4720894fc694\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"2bdkTz4CNLrZJDQhuAfnPv\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"editBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 11\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 16\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 17\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 430,\n      \"height\": 70\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -188.1,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.EditBox\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 15\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_string\": \"\",\n    \"_tabIndex\": 0,\n    \"editingDidBegan\": [],\n    \"textChanged\": [],\n    \"editingDidEnded\": [],\n    \"editingReturn\": [],\n    \"_N$backgroundImage\": null,\n    \"_N$returnType\": 0,\n    \"_N$inputFlag\": 5,\n    \"_N$inputMode\": 6,\n    \"_N$fontSize\": 30,\n    \"_N$lineHeight\": 40,\n    \"_N$fontColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_N$placeholder\": \"请输入账号\",\n    \"_N$placeholderFontSize\": 30,\n    \"_N$placeholderFontColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 204,\n      \"g\": 204,\n      \"b\": 204,\n      \"a\": 255\n    },\n    \"_N$maxLength\": 16,\n    \"_N$stayOnTop\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"2bcpenoEVOh7mGIliKHhIx\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 11\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"cff7d96e-e4f9-4930-bcf2-797e971ff98e\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"06JsbEku9Pd4ShDoubzFpy\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bg_inputBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 7\n    },\n    \"_children\": [\n      {\n        \"__id__\": 21\n      },\n      {\n        \"__id__\": 24\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 27\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 28\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 535,\n      \"height\": 87\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -33,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"icon_lock\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 20\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 22\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 23\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 37,\n      \"height\": 39\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -220,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 21\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"6304bd8e-e7e6-4fe0-a027-d92a7c28b4e2\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"b8LevJQztLLK4nLdSEgtkD\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"editBox\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 20\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 25\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 26\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 430,\n      \"height\": 70\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -188.1,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.EditBox\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 24\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_string\": \"\",\n    \"_tabIndex\": 0,\n    \"editingDidBegan\": [],\n    \"textChanged\": [],\n    \"editingDidEnded\": [],\n    \"editingReturn\": [],\n    \"_N$backgroundImage\": null,\n    \"_N$returnType\": 0,\n    \"_N$inputFlag\": 0,\n    \"_N$inputMode\": 6,\n    \"_N$fontSize\": 30,\n    \"_N$lineHeight\": 40,\n    \"_N$fontColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 0,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_N$placeholder\": \"请输入密码\",\n    \"_N$placeholderFontSize\": 30,\n    \"_N$placeholderFontColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 204,\n      \"g\": 204,\n      \"b\": 204,\n      \"a\": 255\n    },\n    \"_N$maxLength\": 16,\n    \"_N$stayOnTop\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"f1fkvZTJpO76r3Gy8yR7MT\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 20\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"cff7d96e-e4f9-4930-bcf2-797e971ff98e\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"0a2N0cjUdMM7gEf3KLko9S\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnAccountSignln\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 7\n    },\n    \"_children\": [\n      {\n        \"__id__\": 30\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 33\n      },\n      {\n        \"__id__\": 34\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 35\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 160,\n      \"b\": 233,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 535,\n      \"height\": 90\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -150,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 29\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 31\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 32\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 107.96,\n      \"height\": 36\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 30\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 36,\n    \"_fontSize\": 36,\n    \"_lineHeight\": 36,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"登   录\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"damjjgE0ZHKbSmq2SuTKVC\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 29\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"e47fd4ef-6891-48eb-948d-77e82e794052\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 29\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 137,\n      \"b\": 200,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 32,\n      \"g\": 184,\n      \"b\": 254,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 160,\n      \"b\": 233,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 29\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"f3as2l1q9N3JOg+pR4R4gd\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnTouristSignln\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 7\n    },\n    \"_children\": [\n      {\n        \"__id__\": 37\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 40\n      },\n      {\n        \"__id__\": 41\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 42\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 170,\n      \"g\": 25,\n      \"b\": 252,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 535,\n      \"height\": 90\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        -150,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"lab\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 36\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 38\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 39\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 107.96,\n      \"height\": 36\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 37\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 36,\n    \"_fontSize\": 36,\n    \"_lineHeight\": 36,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"游   客\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"f44ywZC+VDd4j7tycqTPXD\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 36\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"e47fd4ef-6891-48eb-948d-77e82e794052\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 36\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 141,\n      \"g\": 10,\n      \"b\": 217,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 191,\n      \"g\": 80,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 170,\n      \"g\": 25,\n      \"b\": 252,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 36\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"6eUF4d/fhME6FLnjcRe/ry\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"btnRegister\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 7\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 44\n      },\n      {\n        \"__id__\": 45\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 46\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 52,\n      \"g\": 173,\n      \"b\": 5,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 60,\n      \"height\": 50\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        250,\n        183,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Label\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 43\n    },\n    \"_enabled\": true,\n    \"_useOriginalSize\": false,\n    \"_actualFontSize\": 30,\n    \"_fontSize\": 30,\n    \"_lineHeight\": 50,\n    \"_enableWrapText\": true,\n    \"_N$file\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_isSystemFontUsed\": false,\n    \"_spacingX\": 0,\n    \"_N$string\": \"注册\",\n    \"_N$horizontalAlign\": 1,\n    \"_N$verticalAlign\": 1,\n    \"_N$fontFamily\": \"Arial\",\n    \"_N$overflow\": 0\n  },\n  {\n    \"__type__\": \"cc.Button\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 43\n    },\n    \"_enabled\": true,\n    \"transition\": 1,\n    \"pressedColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 47,\n      \"g\": 159,\n      \"b\": 3,\n      \"a\": 255\n    },\n    \"hoverColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 60,\n      \"g\": 193,\n      \"b\": 9,\n      \"a\": 255\n    },\n    \"duration\": 0.1,\n    \"zoomScale\": 1.2,\n    \"clickEvents\": [],\n    \"_N$interactable\": true,\n    \"_N$enableAutoGrayEffect\": false,\n    \"_N$normalColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 52,\n      \"g\": 173,\n      \"b\": 5,\n      \"a\": 255\n    },\n    \"_N$disabledColor\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 124,\n      \"g\": 124,\n      \"b\": 124,\n      \"a\": 255\n    },\n    \"_N$normalSprite\": null,\n    \"_N$pressedSprite\": null,\n    \"pressedSprite\": null,\n    \"_N$hoverSprite\": null,\n    \"hoverSprite\": null,\n    \"_N$disabledSprite\": null,\n    \"_N$target\": {\n      \"__id__\": 43\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"afCYDB57RNYLL0sRWhewcw\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 7\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"15ALHLWV1IOJd2GjCN/eJP\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"8c228otOxFL1pRKhr621AqK\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"btnTouristSignln\": {\n      \"__id__\": 36\n    },\n    \"btnAccountSignln\": {\n      \"__id__\": 29\n    },\n    \"btnRegister\": {\n      \"__id__\": 43\n    },\n    \"editBoxAccount\": {\n      \"__id__\": 16\n    },\n    \"editBoxPassword\": {\n      \"__id__\": 25\n    },\n    \"viewAnimations\": [\n      {\n        \"__id__\": 8\n      },\n      {\n        \"__id__\": 11\n      },\n      {\n        \"__id__\": 20\n      },\n      {\n        \"__id__\": 36\n      },\n      {\n        \"__id__\": 43\n      }\n    ]\n  },\n  {\n    \"__type__\": \"cc.Widget\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"isAlignOnce\": false,\n    \"_target\": null,\n    \"_alignFlags\": 45,\n    \"_left\": 0,\n    \"_right\": 0,\n    \"_top\": 0,\n    \"_bottom\": 0,\n    \"_verticalCenter\": 0,\n    \"_horizontalCenter\": 0,\n    \"_isAbsLeft\": true,\n    \"_isAbsRight\": true,\n    \"_isAbsTop\": true,\n    \"_isAbsBottom\": true,\n    \"_isAbsHorizontalCenter\": true,\n    \"_isAbsVerticalCenter\": true,\n    \"_originalWidth\": 720,\n    \"_originalHeight\": 960\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"2a21fc89-329f-475c-975a-08dd0958f489\"\n    },\n    \"fileId\": \"81/HoEzyJNvbxMVhY8IKJJ\",\n    \"sync\": false\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/signIn.prefab.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"2a21fc89-329f-475c-975a-08dd0958f489\",\n  \"optimizationPolicy\": \"AUTO\",\n  \"asyncLoadAssets\": false,\n  \"readonly\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/tank.prefab",
    "content": "[\n  {\n    \"__type__\": \"cc.Prefab\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_rawFiles\": null,\n    \"data\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"tank\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [\n      {\n        \"__id__\": 2\n      },\n      {\n        \"__id__\": 5\n      },\n      {\n        \"__id__\": 38\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 46\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 47\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        574,\n        81.7,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"New Sprite(Splash)\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 3\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 4\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 248,\n      \"g\": 0,\n      \"b\": 129,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 5,\n      \"height\": 5\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"a23235d1-15db-4b95-8439-a2e005bfff91\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"94SnbH10BLwa9X1uKVmTb6\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"ui\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 6\n      },\n      {\n        \"__id__\": 20\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 37\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"bullet\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 5\n    },\n    \"_children\": [\n      {\n        \"__id__\": 7\n      },\n      {\n        \"__id__\": 10\n      },\n      {\n        \"__id__\": 13\n      },\n      {\n        \"__id__\": 16\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 19\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        50,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"zd\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 6\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 8\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 9\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 12\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -17.4,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 7\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"51P5UYEMRAJ4GBGDJgeq2Z\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"zd\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 6\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 11\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 12\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 12\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -5.5,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 10\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"db6cX7Jm1Eqb41Mf6llvih\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"zd\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 6\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 14\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 15\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 12\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        17.2,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 13\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"02IWK58tVAAYsrk22xRsMR\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"zd\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 6\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 17\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 18\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 12\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        4.8,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 16\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": null,\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"8cTXfYzbtO2IAwJtqYCscz\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"d8hNxjD2BMYbQqSUEjnwOA\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"hp\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 5\n    },\n    \"_children\": [\n      {\n        \"__id__\": 21\n      },\n      {\n        \"__id__\": 24\n      },\n      {\n        \"__id__\": 27\n      },\n      {\n        \"__id__\": 30\n      },\n      {\n        \"__id__\": 33\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 36\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 0,\n      \"height\": 0\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        40,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-role_slot\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 20\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 22\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 23\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 48,\n      \"height\": 13\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -1.2,\n        -5.5,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 21\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"1diPk8bQlGj6rzDFk+FDXn\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-life_1\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 20\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 25\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 26\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 109,\n      \"b\": 9,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 10\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -17.7,\n        -5.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 24\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"4cM59gNSBH+pXzM/xTahnu\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-life_2\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 20\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 28\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 29\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 4,\n      \"g\": 92,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 10\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        -6.9,\n        -5.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 27\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"e3SWGPyMpBb6NmpvM0j3UG\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-life_3\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 20\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 31\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 32\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 12,\n      \"g\": 97,\n      \"b\": 0,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 10\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        4.3,\n        -5.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 30\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"d7KHJZSoZD17gUbQPRJGeY\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"Bar_B-life_4\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 20\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 34\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 35\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 0,\n      \"g\": 129,\n      \"b\": 10,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 10,\n      \"height\": 10\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        15,\n        -5.3,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 33\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"71eowZcN5CfLtbSREyh0RI\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"14AR48wOlKuo92l2nV+v2d\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"85lEtdIj1FmbPjpeoIaqmx\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"body\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [\n      {\n        \"__id__\": 39\n      },\n      {\n        \"__id__\": 42\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [],\n    \"_prefab\": {\n      \"__id__\": 45\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 64,\n      \"height\": 64\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"tank1\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 40\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 41\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 32,\n      \"height\": 39\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 39\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"22afb0d0-9551-4363-8acd-ee35396e8493\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"557ML7dCNKQoLHMdCAXzg0\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"tank2\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 38\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": false,\n    \"_components\": [\n      {\n        \"__id__\": 43\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 44\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 180,\n      \"g\": 48,\n      \"b\": 64,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 32,\n      \"height\": 39\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 42\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"22afb0d0-9551-4363-8acd-ee35396e8493\"\n    },\n    \"_type\": 0,\n    \"_sizeMode\": 1,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"d4IBf1WJRHLZXRTE0IcCs6\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"2afWHqJoNMyaJkmPXvdH3g\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"b4f7aryMN1FgKORKquLJ0RU\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"body\": {\n      \"__id__\": 38\n    },\n    \"animNode\": null,\n    \"playerTank\": {\n      \"__id__\": 39\n    },\n    \"enemyTank\": {\n      \"__id__\": 42\n    },\n    \"bulletPrefab\": {\n      \"__uuid__\": \"19238b87-a1ea-4151-b416-31f89a22fe15\"\n    }\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\"\n    },\n    \"fileId\": \"58ys67fvBFmYlJGDOdcq3E\",\n    \"sync\": false\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/tank.prefab.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"5a9afb80-1ee4-4653-89e8-a73054a0d76c\",\n  \"optimizationPolicy\": \"AUTO\",\n  \"asyncLoadAssets\": false,\n  \"readonly\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/tip.prefab",
    "content": "[\n  {\n    \"__type__\": \"cc.Prefab\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"_rawFiles\": null,\n    \"data\": {\n      \"__id__\": 1\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"tip\",\n    \"_objFlags\": 0,\n    \"_parent\": null,\n    \"_children\": [\n      {\n        \"__id__\": 2\n      }\n    ],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 5\n      },\n      {\n        \"__id__\": 6\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 7\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 143,\n      \"g\": 8,\n      \"b\": 73,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 374.48,\n      \"height\": 70\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        640,\n        750,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.Node\",\n    \"_name\": \"tip\",\n    \"_objFlags\": 0,\n    \"_parent\": {\n      \"__id__\": 1\n    },\n    \"_children\": [],\n    \"_tag\": -1,\n    \"_active\": true,\n    \"_components\": [\n      {\n        \"__id__\": 3\n      }\n    ],\n    \"_prefab\": {\n      \"__id__\": 4\n    },\n    \"_id\": \"\",\n    \"_opacity\": 255,\n    \"_color\": {\n      \"__type__\": \"cc.Color\",\n      \"r\": 255,\n      \"g\": 255,\n      \"b\": 255,\n      \"a\": 255\n    },\n    \"_cascadeOpacityEnabled\": true,\n    \"_anchorPoint\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0.5,\n      \"y\": 0.5\n    },\n    \"_contentSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 334.48,\n      \"height\": 40\n    },\n    \"_skewX\": 0,\n    \"_skewY\": 0,\n    \"_localZOrder\": 0,\n    \"_globalZOrder\": 0,\n    \"_opacityModifyRGB\": false,\n    \"groupIndex\": 0,\n    \"_trs\": {\n      \"__type__\": \"TypedArray\",\n      \"ctor\": \"Float64Array\",\n      \"array\": [\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        1,\n        1,\n        1,\n        1\n      ]\n    }\n  },\n  {\n    \"__type__\": \"cc.RichText\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 2\n    },\n    \"_enabled\": true,\n    \"_N$string\": \"正在进入游戏中......<img src='[exp]'/x>\",\n    \"_N$horizontalAlign\": 0,\n    \"_N$fontSize\": 40,\n    \"_N$font\": {\n      \"__uuid__\": \"2d93ecdd-494e-4300-957e-12aadf2768ab\"\n    },\n    \"_N$maxWidth\": 0,\n    \"_N$lineHeight\": 40,\n    \"_N$imageAtlas\": {\n      \"__uuid__\": \"7e99e95a-d168-4b19-85dd-3c1f0460fd1f\"\n    },\n    \"_N$handleTouchEvent\": true\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"af84c3cf-bd4f-4106-b5c3-7c45f2787ff8\"\n    },\n    \"fileId\": \"13sLnnCK9Al60fYShz83Q0\",\n    \"sync\": false\n  },\n  {\n    \"__type__\": \"cc.Sprite\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"_spriteFrame\": {\n      \"__uuid__\": \"5e54a0bf-9428-4cb8-90c1-42d56a27356f\"\n    },\n    \"_type\": 1,\n    \"_sizeMode\": 0,\n    \"_fillType\": 0,\n    \"_fillCenter\": {\n      \"__type__\": \"cc.Vec2\",\n      \"x\": 0,\n      \"y\": 0\n    },\n    \"_fillStart\": 0,\n    \"_fillRange\": 0,\n    \"_isTrimmedMode\": true,\n    \"_srcBlendFactor\": 770,\n    \"_dstBlendFactor\": 771,\n    \"_atlas\": null\n  },\n  {\n    \"__type__\": \"cc.Layout\",\n    \"_name\": \"\",\n    \"_objFlags\": 0,\n    \"node\": {\n      \"__id__\": 1\n    },\n    \"_enabled\": true,\n    \"_layoutSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 374.48,\n      \"height\": 70\n    },\n    \"_resize\": 1,\n    \"_N$layoutType\": 0,\n    \"_N$padding\": 0,\n    \"_N$cellSize\": {\n      \"__type__\": \"cc.Size\",\n      \"width\": 40,\n      \"height\": 40\n    },\n    \"_N$startAxis\": 0,\n    \"_N$paddingLeft\": 20,\n    \"_N$paddingRight\": 20,\n    \"_N$paddingTop\": 15,\n    \"_N$paddingBottom\": 15,\n    \"_N$spacingX\": 0,\n    \"_N$spacingY\": 0,\n    \"_N$verticalDirection\": 1,\n    \"_N$horizontalDirection\": 0\n  },\n  {\n    \"__type__\": \"cc.PrefabInfo\",\n    \"root\": {\n      \"__id__\": 1\n    },\n    \"asset\": {\n      \"__uuid__\": \"af84c3cf-bd4f-4106-b5c3-7c45f2787ff8\"\n    },\n    \"fileId\": \"b9ZZP+Om5KcIrs6Dlfg7+O\",\n    \"sync\": false\n  }\n]"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab/tip.prefab.meta",
    "content": "{\n  \"ver\": \"1.2.7\",\n  \"uuid\": \"af84c3cf-bd4f-4106-b5c3-7c45f2787ff8\",\n  \"optimizationPolicy\": \"AUTO\",\n  \"asyncLoadAssets\": false,\n  \"readonly\": false,\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources/Prefab.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"d5db9e3f-8ccd-41f0-ac3e-a1b1a2770436\",\n  \"isBundle\": false,\n  \"bundleName\": \"\",\n  \"priority\": 1,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/assets/resources.meta",
    "content": "{\n  \"ver\": \"1.1.2\",\n  \"uuid\": \"cffb638e-aa5e-4dc4-bc20-6f88c0b9a48b\",\n  \"isBundle\": true,\n  \"bundleName\": \"resources\",\n  \"priority\": 8,\n  \"compressionType\": {},\n  \"optimizeHotUpdate\": {},\n  \"inlineSpriteFrames\": {},\n  \"isRemoteBundle\": {},\n  \"subMetas\": {}\n}"
  },
  {
    "path": "ChessCardHall/build-templates/web-mobile/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n\n  <title>小小人游戏</title>\n  \n   <script src=\"/socket.io/socket.io.js\"></script>\n\n  <!--http://www.html5rocks.com/en/mobile/mobifying/-->\n  <meta name=\"viewport\"\n        content=\"width=device-width,user-scalable=no,initial-scale=1, minimum-scale=1,maximum-scale=1\"/>\n\n  <!--https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html-->\n  <meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n  <meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\">\n  <meta name=\"format-detection\" content=\"telephone=no\">\n\n  <!-- force webkit on 360 -->\n  <meta name=\"renderer\" content=\"webkit\"/>\n  <meta name=\"force-rendering\" content=\"webkit\"/>\n  <!-- force edge on IE -->\n  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\"/>\n  <meta name=\"msapplication-tap-highlight\" content=\"no\">\n\n  <!-- force full screen on some browser -->\n  <meta name=\"full-screen\" content=\"yes\"/>\n  <meta name=\"x5-fullscreen\" content=\"true\"/>\n  <meta name=\"360-fullscreen\" content=\"true\"/>\n  \n  <!-- force screen orientation on some browser -->\n  <meta name=\"screen-orientation\" content=\"\"/>\n  <meta name=\"x5-orientation\" content=\"\">\n\n  <!--fix fireball/issues/3568 -->\n  <!--<meta name=\"browsermode\" content=\"application\">-->\n  <meta name=\"x5-page-mode\" content=\"app\">\n\n  <!--<link rel=\"apple-touch-icon\" href=\".png\" />-->\n  <!--<link rel=\"apple-touch-icon-precomposed\" href=\".png\" />-->\n\n  <link rel=\"stylesheet\" type=\"text/css\" href=\"style-mobile.css\"/>\n\n</head>\n<body>\n  <canvas id=\"GameCanvas\" oncontextmenu=\"event.preventDefault()\" tabindex=\"0\"></canvas>\n  <div id=\"splash\">\n    <div class=\"progress-bar stripes\">\n      <span style=\"width: 0%\"></span>\n    </div>\n  </div>\n<script src=\"src/settings.js\" charset=\"utf-8\"></script>\n\n<script src=\"main.js\" charset=\"utf-8\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "ChessCardHall/creator.d.ts",
    "content": "\n/** !#en\nThe main namespace of Cocos2d-JS, all engine core classes, functions, properties and constants are defined in this namespace.\n!#zh\nCocos 引擎的主要命名空间，引擎代码中所有的类，函数，属性和常量都在这个命名空间中定义。 */\ndeclare namespace cc {\t\n\t/** The current version of Cocos2d being used.<br/>\n\tPlease DO NOT remove this String, it is an important flag for bug tracking.<br/>\n\tIf you post a bug to forum, please attach this flag. */\n\texport var ENGINE_VERSION: string;\t\n\t/**\n\t!#en\n\tCreates the speed action which changes the speed of an action, making it take longer (speed > 1)\n\tor less (speed < 1) time. <br/>\n\tUseful to simulate 'slow motion' or 'fast forward' effect.\n\t!#zh 修改目标动作的速率。\n\t@param action action\n\t@param speed speed\n\t\n\t@example \n\t```js\n\t// change the target action speed;\n\tvar action = cc.scaleTo(0.2, 1, 0.6);\n\tvar newAction = cc.speed(action, 0.5);\n\t``` \n\t*/\n\texport function speed(action: ActionInterval, speed: number): Action;\t\n\t/**\n\t!#en Create a follow action which makes its target follows another node.\n\t!#zh 追踪目标节点的位置。\n\t@param followedNode followedNode\n\t@param rect rect\n\t\n\t@example \n\t```js\n\t// example\n\t// creates the action with a set boundary\n\tvar followAction = cc.follow(targetNode, cc.rect(0, 0, screenWidth * 2 - 100, screenHeight));\n\tnode.runAction(followAction);\n\t\n\t// creates the action with no boundary set\n\tvar followAction = cc.follow(targetNode);\n\tnode.runAction(followAction);\n\t``` \n\t*/\n\texport function follow(followedNode: Node, rect: Rect): Action;\t\n\t/**\n\tPoints setter\n\t@param points points \n\t*/\n\texport function setPoints(points: any[]): void;\t\n\t/**\n\t!#en Creates an action with a Cardinal Spline array of points and tension.\n\t!#zh 按基数样条曲线轨迹移动到目标位置。\n\t@param duration duration\n\t@param points array of control points\n\t@param tension tension\n\t\n\t@example \n\t```js\n\t//create a cc.CardinalSplineTo\n\tvar action1 = cc.cardinalSplineTo(3, array, 0);\n\t``` \n\t*/\n\texport function cardinalSplineTo(duration: number, points: any[], tension: number): ActionInterval;\t\n\t/**\n\tupdate position of target\n\t@param newPos newPos \n\t*/\n\texport function updatePosition(newPos: Vec2): void;\t\n\t/**\n\t!#en Creates an action with a Cardinal Spline array of points and tension.\n\t!#zh 按基数样条曲线轨迹移动指定的距离。\n\t@param duration duration\n\t@param points points\n\t@param tension tension \n\t*/\n\texport function cardinalSplineBy(duration: number, points: any[], tension: number): ActionInterval;\t\n\t/**\n\t!#en Creates an action with a Cardinal Spline array of points and tension.\n\t!#zh 按 Catmull Rom 样条曲线轨迹移动到目标位置。\n\t@param dt dt\n\t@param points points\n\t\n\t@example \n\t```js\n\tvar action1 = cc.catmullRomTo(3, array);\n\t``` \n\t*/\n\texport function catmullRomTo(dt: number, points: any[]): ActionInterval;\t\n\t/**\n\t!#en Creates an action with a Cardinal Spline array of points and tension.\n\t!#zh 按 Catmull Rom 样条曲线轨迹移动指定的距离。\n\t@param dt dt\n\t@param points points\n\t\n\t@example \n\t```js\n\tvar action1 = cc.catmullRomBy(3, array);\n\t``` \n\t*/\n\texport function catmullRomBy(dt: number, points: any[]): ActionInterval;\t\n\t/**\n\t!#en\n\tCreates the action easing object with the rate parameter. <br />\n\tFrom slow to fast.\n\t!#zh 创建 easeIn 缓动对象，由慢到快。\n\t@param rate rate\n\t\n\t@example \n\t```js\n\taction.easing(cc.easeIn(3.0));\n\t``` \n\t*/\n\texport function easeIn(rate: number): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object with the rate parameter. <br />\n\tFrom fast to slow.\n\t!#zh 创建 easeOut 缓动对象，由快到慢。\n\t@param rate rate\n\t\n\t@example \n\t```js\n\taction.easing(cc.easeOut(3.0));\n\t``` \n\t*/\n\texport function easeOut(rate: number): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object with the rate parameter. <br />\n\tSlow to fast then to slow.\n\t!#zh 创建 easeInOut 缓动对象，慢到快，然后慢。\n\t@param rate rate\n\t\n\t@example \n\t```js\n\taction.easing(cc.easeInOut(3.0));\n\t``` \n\t*/\n\texport function easeInOut(rate: number): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object with the rate parameter. <br />\n\tReference easeInExpo: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeExponentialIn 缓动对象。<br />\n\tEaseExponentialIn 是按指数函数缓动进入的动作。<br />\n\t参考 easeInExpo：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\taction.easing(cc.easeExponentialIn());\n\t``` \n\t*/\n\texport function easeExponentialIn(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeOutExpo: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeExponentialOut 缓动对象。<br />\n\tEaseExponentialOut 是按指数函数缓动退出的动作。<br />\n\t参考 easeOutExpo：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\taction.easing(cc.easeExponentialOut());\n\t``` \n\t*/\n\texport function easeExponentialOut(): any;\t\n\t/**\n\t!#en\n\tCreates an EaseExponentialInOut action easing object. <br />\n\tReference easeInOutExpo: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeExponentialInOut 缓动对象。<br />\n\tEaseExponentialInOut 是按指数函数缓动进入并退出的动作。<br />\n\t参考 easeInOutExpo：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\taction.easing(cc.easeExponentialInOut());\n\t``` \n\t*/\n\texport function easeExponentialInOut(): any;\t\n\t/**\n\t!#en\n\tCreates an EaseSineIn action. <br />\n\tReference easeInSine: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 EaseSineIn 缓动对象。<br />\n\tEaseSineIn 是按正弦函数缓动进入的动作。<br />\n\t参考 easeInSine：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\taction.easing(cc.easeSineIn());\n\t``` \n\t*/\n\texport function easeSineIn(): any;\t\n\t/**\n\t!#en\n\tCreates an EaseSineOut action easing object. <br />\n\tReference easeOutSine: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 EaseSineOut 缓动对象。<br />\n\tEaseSineIn 是按正弦函数缓动退出的动作。<br />\n\t参考 easeOutSine：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\taction.easing(cc.easeSineOut());\n\t``` \n\t*/\n\texport function easeSineOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeInOutSine: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeSineInOut 缓动对象。<br />\n\tEaseSineIn 是按正弦函数缓动进入并退出的动作。<br />\n\t参考 easeInOutSine：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\taction.easing(cc.easeSineInOut());\n\t``` \n\t*/\n\texport function easeSineInOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object with the period in radians (default is 0.3). <br />\n\tReference easeInElastic: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeElasticIn 缓动对象。<br />\n\tEaseElasticIn 是按弹性曲线缓动进入的动作。<br />\n\t参数 easeInElastic：http://www.zhihu.com/question/21981571/answer/19925418\n\t@param period period\n\t\n\t@example \n\t```js\n\t// example\n\taction.easing(cc.easeElasticIn(3.0));\n\t``` \n\t*/\n\texport function easeElasticIn(period: number): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object with the period in radians (default is 0.3). <br />\n\tReference easeOutElastic: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeElasticOut 缓动对象。<br />\n\tEaseElasticOut 是按弹性曲线缓动退出的动作。<br />\n\t参考 easeOutElastic：http://www.zhihu.com/question/21981571/answer/19925418\n\t@param period period\n\t\n\t@example \n\t```js\n\t// example\n\taction.easing(cc.easeElasticOut(3.0));\n\t``` \n\t*/\n\texport function easeElasticOut(period: number): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object with the period in radians (default is 0.3). <br />\n\tReference easeInOutElastic: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeElasticInOut 缓动对象。<br />\n\tEaseElasticInOut 是按弹性曲线缓动进入并退出的动作。<br />\n\t参考 easeInOutElastic：http://www.zhihu.com/question/21981571/answer/19925418\n\t@param period period\n\t\n\t@example \n\t```js\n\t// example\n\taction.easing(cc.easeElasticInOut(3.0));\n\t``` \n\t*/\n\texport function easeElasticInOut(period: number): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tEased bounce effect at the beginning.\n\t!#zh\n\t创建 easeBounceIn 缓动对象。<br />\n\tEaseBounceIn 是按弹跳动作缓动进入的动作。\n\t\n\t@example \n\t```js\n\t// example\n\taction.easing(cc.easeBounceIn());\n\t``` \n\t*/\n\texport function easeBounceIn(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tEased bounce effect at the ending.\n\t!#zh\n\t创建 easeBounceOut 缓动对象。<br />\n\tEaseBounceOut 是按弹跳动作缓动退出的动作。\n\t\n\t@example \n\t```js\n\t// example\n\taction.easing(cc.easeBounceOut());\n\t``` \n\t*/\n\texport function easeBounceOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tEased bounce effect at the begining and ending.\n\t!#zh\n\t创建 easeBounceInOut 缓动对象。<br />\n\tEaseBounceInOut 是按弹跳动作缓动进入并退出的动作。\n\t\n\t@example \n\t```js\n\t// example\n\taction.easing(cc.easeBounceInOut());\n\t``` \n\t*/\n\texport function easeBounceInOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tIn the opposite direction to move slowly, and then accelerated to the right direction.\n\t!#zh\n\t创建 easeBackIn 缓动对象。<br />\n\teaseBackIn 是在相反的方向缓慢移动，然后加速到正确的方向。<br />\n\t\n\t@example \n\t```js\n\t// example\n\taction.easing(cc.easeBackIn());\n\t``` \n\t*/\n\texport function easeBackIn(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tFast moving more than the finish, and then slowly back to the finish.\n\t!#zh\n\t创建 easeBackOut 缓动对象。<br />\n\teaseBackOut 快速移动超出目标，然后慢慢回到目标点。\n\t\n\t@example \n\t```js\n\t// example\n\taction.easing(cc.easeBackOut());\n\t``` \n\t*/\n\texport function easeBackOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tBegining of cc.EaseBackIn. Ending of cc.EaseBackOut.\n\t!#zh\n\t创建 easeBackInOut 缓动对象。<br />\n\t\n\t@example \n\t```js\n\t// example\n\taction.easing(cc.easeBackInOut());\n\t``` \n\t*/\n\texport function easeBackInOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tInto the 4 reference point. <br />\n\tTo calculate the motion curve.\n\t!#zh\n\t创建 easeBezierAction 缓动对象。<br />\n\tEaseBezierAction 是按贝塞尔曲线缓动的动作。\n\t@param p0 The first bezier parameter\n\t@param p1 The second bezier parameter\n\t@param p2 The third bezier parameter\n\t@param p3 The fourth bezier parameter\n\t\n\t@example \n\t```js\n\t// example\n\taction.easing(cc.easeBezierAction(0.5, 0.5, 1.0, 1.0));\n\t``` \n\t*/\n\texport function easeBezierAction(p0: number, p1: number, p2: number, p3: number): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeInQuad: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeQuadraticActionIn 缓动对象。<br />\n\tEaseQuadraticIn是按二次函数缓动进入的动作。<br />\n\t参考 easeInQuad：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\t//example\n\taction.easing(cc.easeQuadraticActionIn());\n\t``` \n\t*/\n\texport function easeQuadraticActionIn(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeOutQuad: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeQuadraticActionOut 缓动对象。<br />\n\tEaseQuadraticOut 是按二次函数缓动退出的动作。<br />\n\t参考 easeOutQuad：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\t//example\n\taction.easing(cc.easeQuadraticActionOut());\n\t``` \n\t*/\n\texport function easeQuadraticActionOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeInOutQuad: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeQuadraticActionInOut 缓动对象。<br />\n\tEaseQuadraticInOut 是按二次函数缓动进入并退出的动作。<br />\n\t参考 easeInOutQuad：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\t//example\n\taction.easing(cc.easeQuadraticActionInOut());\n\t``` \n\t*/\n\texport function easeQuadraticActionInOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeIntQuart: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeQuarticActionIn 缓动对象。<br />\n\tEaseQuarticIn 是按四次函数缓动进入的动作。<br />\n\t参考 easeIntQuart：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\t//example\n\taction.easing(cc.easeQuarticActionIn());\n\t``` \n\t*/\n\texport function easeQuarticActionIn(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeOutQuart: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeQuarticActionOut 缓动对象。<br />\n\tEaseQuarticOut 是按四次函数缓动退出的动作。<br />\n\t参考 easeOutQuart：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\t//example\n\taction.easing(cc.QuarticActionOut());\n\t``` \n\t*/\n\texport function easeQuarticActionOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object.  <br />\n\tReference easeInOutQuart: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeQuarticActionInOut 缓动对象。<br />\n\tEaseQuarticInOut 是按四次函数缓动进入并退出的动作。<br />\n\t参考 easeInOutQuart：http://www.zhihu.com/question/21981571/answer/19925418 \n\t*/\n\texport function easeQuarticActionInOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeInQuint: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeQuinticActionIn 缓动对象。<br />\n\tEaseQuinticIn 是按五次函数缓动进的动作。<br />\n\t参考 easeInQuint：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\t//example\n\taction.easing(cc.easeQuinticActionIn());\n\t``` \n\t*/\n\texport function easeQuinticActionIn(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeOutQuint: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeQuinticActionOut 缓动对象。<br />\n\tEaseQuinticOut 是按五次函数缓动退出的动作\n\t参考 easeOutQuint：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\t//example\n\taction.easing(cc.easeQuadraticActionOut());\n\t``` \n\t*/\n\texport function easeQuinticActionOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeInOutQuint: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeQuinticActionInOut 缓动对象。<br />\n\tEaseQuinticInOut是按五次函数缓动进入并退出的动作。<br />\n\t参考 easeInOutQuint：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\t//example\n\taction.easing(cc.easeQuinticActionInOut());\n\t``` \n\t*/\n\texport function easeQuinticActionInOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeInCirc: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeCircleActionIn 缓动对象。<br />\n\tEaseCircleIn是按圆形曲线缓动进入的动作。<br />\n\t参考 easeInCirc：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\t//example\n\taction.easing(cc.easeCircleActionIn());\n\t``` \n\t*/\n\texport function easeCircleActionIn(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeOutCirc: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeCircleActionOut 缓动对象。<br />\n\tEaseCircleOut是按圆形曲线缓动退出的动作。<br />\n\t参考 easeOutCirc：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\t//example\n\tactioneasing(cc.easeCircleActionOut());\n\t``` \n\t*/\n\texport function easeCircleActionOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeInOutCirc: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeCircleActionInOut 缓动对象。<br />\n\tEaseCircleInOut 是按圆形曲线缓动进入并退出的动作。<br />\n\t参考 easeInOutCirc：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\t//example\n\taction.easing(cc.easeCircleActionInOut());\n\t``` \n\t*/\n\texport function easeCircleActionInOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeInCubic: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeCubicActionIn 缓动对象。<br />\n\tEaseCubicIn 是按三次函数缓动进入的动作。<br />\n\t参考 easeInCubic：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\t//example\n\taction.easing(cc.easeCubicActionIn());\n\t``` \n\t*/\n\texport function easeCubicActionIn(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeOutCubic: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeCubicActionOut 缓动对象。<br />\n\tEaseCubicOut 是按三次函数缓动退出的动作。<br />\n\t参考 easeOutCubic：http://www.zhihu.com/question/21981571/answer/19925418\n\t\n\t@example \n\t```js\n\t//example\n\taction.easing(cc.easeCubicActionOut());\n\t``` \n\t*/\n\texport function easeCubicActionOut(): any;\t\n\t/**\n\t!#en\n\tCreates the action easing object. <br />\n\tReference easeInOutCubic: <br />\n\thttp://www.zhihu.com/question/21981571/answer/19925418\n\t!#zh\n\t创建 easeCubicActionInOut 缓动对象。<br />\n\tEaseCubicInOut是按三次函数缓动进入并退出的动作。<br />\n\t参考 easeInOutCubic：http://www.zhihu.com/question/21981571/answer/19925418 \n\t*/\n\texport function easeCubicActionInOut(): any;\t\n\t/**\n\t!#en Show the Node.\n\t!#zh 立即显示。\n\t\n\t@example \n\t```js\n\t// example\n\tvar showAction = cc.show();\n\t``` \n\t*/\n\texport function show(): ActionInstant;\t\n\t/**\n\t!#en Hide the node.\n\t!#zh 立即隐藏。\n\t\n\t@example \n\t```js\n\t// example\n\tvar hideAction = cc.hide();\n\t``` \n\t*/\n\texport function hide(): ActionInstant;\t\n\t/**\n\t!#en Toggles the visibility of a node.\n\t!#zh 显隐状态切换。\n\t\n\t@example \n\t```js\n\t// example\n\tvar toggleVisibilityAction = cc.toggleVisibility();\n\t``` \n\t*/\n\texport function toggleVisibility(): ActionInstant;\t\n\t/**\n\t!#en Create a RemoveSelf object with a flag indicate whether the target should be cleaned up while removing.\n\t!#zh 从父节点移除自身。\n\t@param isNeedCleanUp  isNeedCleanUp \n\t\n\t@example \n\t```js\n\t// example\n\tvar removeSelfAction = cc.removeSelf();\n\t``` \n\t*/\n\texport function removeSelf(isNeedCleanUp ?: boolean): ActionInstant;\t\n\t/**\n\t!#en Create a FlipX action to flip or unflip the target.\n\t!#zh X轴翻转。\n\t@param flip Indicate whether the target should be flipped or not\n\t\n\t@example \n\t```js\n\tvar flipXAction = cc.flipX(true);\n\t``` \n\t*/\n\texport function flipX(flip: boolean): ActionInstant;\t\n\t/**\n\t!#en Create a FlipY action to flip or unflip the target.\n\t!#zh Y轴翻转。\n\t@param flip flip\n\t\n\t@example \n\t```js\n\tvar flipYAction = cc.flipY(true);\n\t``` \n\t*/\n\texport function flipY(flip: boolean): ActionInstant;\t\n\t/**\n\t!#en Creates a Place action with a position.\n\t!#zh 放置在目标位置。\n\t@param pos pos\n\t@param y y\n\t\n\t@example \n\t```js\n\t// example\n\tvar placeAction = cc.place(cc.v2(200, 200));\n\tvar placeAction = cc.place(200, 200);\n\t``` \n\t*/\n\texport function place(pos: Vec2|number, y?: number): ActionInstant;\t\n\t/**\n\t!#en Creates the action with the callback.\n\t!#zh 执行回调函数。\n\t@param selector selector\n\t@param selectorTarget selectorTarget\n\t@param data data for function, it accepts all data types.\n\t\n\t@example \n\t```js\n\t// example\n\t// CallFunc without data\n\tvar finish = cc.callFunc(this.removeSprite, this);\n\t\n\t// CallFunc with data\n\tvar finish = cc.callFunc(this.removeFromParentAndCleanup, this._grossini,  true);\n\t``` \n\t*/\n\texport function callFunc(selector: Function, selectorTarget?: any, data?: any): ActionInstant;\t\n\t/**\n\t!#en\n\tHelper constructor to create an array of sequenceable actions\n\tThe created action will run actions sequentially, one after another.\n\t!#zh 顺序执行动作，创建的动作将按顺序依次运行。\n\t@param actionOrActionArray actionOrActionArray\n\t@param tempArray tempArray\n\t\n\t@example \n\t```js\n\t// example\n\t// create sequence with actions\n\tvar seq = cc.sequence(act1, act2);\n\t\n\t// create sequence with array\n\tvar seq = cc.sequence(actArray);\n\t``` \n\t*/\n\texport function sequence(actionOrActionArray: FiniteTimeAction|FiniteTimeAction[], ...tempArray: FiniteTimeAction[]): ActionInterval;\t\n\t/**\n\t!#en Creates a Repeat action. Times is an unsigned integer between 1 and pow(2,30)\n\t!#zh 重复动作，可以按一定次数重复一个动，如果想永远重复一个动作请使用 repeatForever 动作来完成。\n\t@param action action\n\t@param times times\n\t\n\t@example \n\t```js\n\t// example\n\tvar rep = cc.repeat(cc.sequence(jump2, jump1), 5);\n\t``` \n\t*/\n\texport function repeat(action: FiniteTimeAction, times: number): ActionInterval;\t\n\t/**\n\t!#en Create a acton which repeat forever, as it runs forever, it can't be added into cc.sequence and cc.spawn.\n\t!#zh 永远地重复一个动作，有限次数内重复一个动作请使用 repeat 动作，由于这个动作不会停止，所以不能被添加到 cc.sequence 或 cc.spawn 中。\n\t@param action action\n\t\n\t@example \n\t```js\n\t// example\n\tvar repeat = cc.repeatForever(cc.rotateBy(1.0, 360));\n\t``` \n\t*/\n\texport function repeatForever(action: FiniteTimeAction): ActionInterval;\t\n\t/**\n\t!#en Create a spawn action which runs several actions in parallel.\n\t!#zh 同步执行动作，同步执行一组动作。\n\t@param actionOrActionArray actionOrActionArray\n\t@param tempArray tempArray\n\t\n\t@example \n\t```js\n\t// example\n\tvar action = cc.spawn(cc.jumpBy(2, cc.v2(300, 0), 50, 4), cc.rotateBy(2, 720));\n\ttodo:It should be the direct use new\n\t``` \n\t*/\n\texport function spawn(actionOrActionArray: FiniteTimeAction|FiniteTimeAction[], ...tempArray: FiniteTimeAction[]): FiniteTimeAction;\t\n\t/**\n\t!#en\n\tRotates a Node object to a certain angle by modifying its angle property. <br/>\n\tThe direction will be decided by the shortest angle.\n\t!#zh 旋转到目标角度，通过逐帧修改它的 angle 属性，旋转方向将由最短的角度决定。\n\t@param duration duration in seconds\n\t@param dstAngle dstAngle in degrees.\n\t\n\t@example \n\t```js\n\t// example\n\tvar rotateTo = cc.rotateTo(2, 61.0);\n\t``` \n\t*/\n\texport function rotateTo(duration: number, dstAngle: number): ActionInterval;\t\n\t/**\n\t!#en\n\tRotates a Node object clockwise a number of degrees by modifying its angle property.\n\tRelative to its properties to modify.\n\t!#zh 旋转指定的角度。\n\t@param duration duration in seconds\n\t@param deltaAngle deltaAngle in degrees\n\t\n\t@example \n\t```js\n\t// example\n\tvar actionBy = cc.rotateBy(2, 360);\n\t``` \n\t*/\n\texport function rotateBy(duration: number, deltaAngle: number): ActionInterval;\t\n\t/**\n\t!#en\n\tMoves a Node object x,y pixels by modifying its position property.                                  <br/>\n\tx and y are relative to the position of the object.                                                     <br/>\n\tSeveral MoveBy actions can be concurrently called, and the resulting                                  <br/>\n\tmovement will be the sum of individual movements.\n\t!#zh 移动指定的距离。\n\t@param duration duration in seconds\n\t@param deltaPos deltaPos\n\t@param deltaY deltaY\n\t\n\t@example \n\t```js\n\t// example\n\tvar actionTo = cc.moveBy(2, cc.v2(windowSize.width - 40, windowSize.height - 40));\n\t``` \n\t*/\n\texport function moveBy(duration: number, deltaPos: Vec2|number, deltaY?: number): ActionInterval;\t\n\t/**\n\t!#en\n\tMoves a Node object to the position x,y. x and y are absolute coordinates by modifying its position property. <br/>\n\tSeveral MoveTo actions can be concurrently called, and the resulting                                            <br/>\n\tmovement will be the sum of individual movements.\n\t!#zh 移动到目标位置。\n\t@param duration duration in seconds\n\t@param position position\n\t@param y y\n\t\n\t@example \n\t```js\n\t// example\n\tvar actionBy = cc.moveTo(2, cc.v2(80, 80));\n\t``` \n\t*/\n\texport function moveTo(duration: number, position: Vec2|number, y?: number): ActionInterval;\t\n\t/**\n\t!#en\n\tCreate a action which skews a Node object to given angles by modifying its skewX and skewY properties.\n\tChanges to the specified value.\n\t!#zh 偏斜到目标角度。\n\t@param t time in seconds\n\t@param sx sx\n\t@param sy sy\n\t\n\t@example \n\t```js\n\t// example\n\tvar actionTo = cc.skewTo(2, 37.2, -37.2);\n\t``` \n\t*/\n\texport function skewTo(t: number, sx: number, sy: number): ActionInterval;\t\n\t/**\n\t!#en\n\tSkews a Node object by skewX and skewY degrees. <br />\n\tRelative to its property modification.\n\t!#zh 偏斜指定的角度。\n\t@param t time in seconds\n\t@param sx sx skew in degrees for X axis\n\t@param sy sy skew in degrees for Y axis\n\t\n\t@example \n\t```js\n\t// example\n\tvar actionBy = cc.skewBy(2, 0, -90);\n\t``` \n\t*/\n\texport function skewBy(t: number, sx: number, sy: number): ActionInterval;\t\n\t/**\n\t!#en\n\tMoves a Node object simulating a parabolic jump movement by modifying it's position property.\n\tRelative to its movement.\n\t!#zh 用跳跃的方式移动指定的距离。\n\t@param duration duration\n\t@param position position\n\t@param y y\n\t@param height height\n\t@param jumps jumps\n\t\n\t@example \n\t```js\n\t// example\n\tvar actionBy = cc.jumpBy(2, cc.v2(300, 0), 50, 4);\n\tvar actionBy = cc.jumpBy(2, 300, 0, 50, 4);\n\t``` \n\t*/\n\texport function jumpBy(duration: number, position: Vec2|number, y?: number, height?: number, jumps?: number): ActionInterval;\t\n\t/**\n\t!#en\n\tMoves a Node object to a parabolic position simulating a jump movement by modifying its position property. <br />\n\tJump to the specified location.\n\t!#zh 用跳跃的方式移动到目标位置。\n\t@param duration duration\n\t@param position position\n\t@param y y\n\t@param height height\n\t@param jumps jumps\n\t\n\t@example \n\t```js\n\t// example\n\tvar actionTo = cc.jumpTo(2, cc.v2(300, 300), 50, 4);\n\tvar actionTo = cc.jumpTo(2, 300, 300, 50, 4);\n\t``` \n\t*/\n\texport function jumpTo(duration: number, position: Vec2|number, y?: number, height?: number, jumps?: number): ActionInterval;\t\n\t/**\n\t!#en\n\tAn action that moves the target with a cubic Bezier curve by a certain distance.\n\tRelative to its movement.\n\t!#zh 按贝赛尔曲线轨迹移动指定的距离。\n\t@param t time in seconds\n\t@param c Array of points\n\t\n\t@example \n\t```js\n\t// example\n\tvar bezier = [cc.v2(0, windowSize.height / 2), cc.v2(300, -windowSize.height / 2), cc.v2(300, 100)];\n\tvar bezierForward = cc.bezierBy(3, bezier);\n\t``` \n\t*/\n\texport function bezierBy(t: number, c: Vec2[]): ActionInterval;\t\n\t/**\n\t!#en An action that moves the target with a cubic Bezier curve to a destination point.\n\t!#zh 按贝赛尔曲线轨迹移动到目标位置。\n\t@param t t\n\t@param c Array of points\n\t\n\t@example \n\t```js\n\t// example\n\tvar bezier = [cc.v2(0, windowSize.height / 2), cc.v2(300, -windowSize.height / 2), cc.v2(300, 100)];\n\tvar bezierTo = cc.bezierTo(2, bezier);\n\t``` \n\t*/\n\texport function bezierTo(t: number, c: Vec2[]): ActionInterval;\t\n\t/**\n\t!#en Scales a Node object to a zoom factor by modifying it's scale property.\n\t!#zh 将节点大小缩放到指定的倍数。\n\t@param duration duration\n\t@param sx scale parameter in X\n\t@param sy scale parameter in Y, if Null equal to sx\n\t\n\t@example \n\t```js\n\t// example\n\t// It scales to 0.5 in both X and Y.\n\tvar actionTo = cc.scaleTo(2, 0.5);\n\t\n\t// It scales to 0.5 in x and 2 in Y\n\tvar actionTo = cc.scaleTo(2, 0.5, 2);\n\t``` \n\t*/\n\texport function scaleTo(duration: number, sx: number, sy?: number): ActionInterval;\t\n\t/**\n\t!#en\n\tScales a Node object a zoom factor by modifying it's scale property.\n\tRelative to its changes.\n\t!#zh 按指定的倍数缩放节点大小。\n\t@param duration duration in seconds\n\t@param sx sx  scale parameter in X\n\t@param sy sy scale parameter in Y, if Null equal to sx\n\t\n\t@example \n\t```js\n\t// example without sy, it scales by 2 both in X and Y\n\tvar actionBy = cc.scaleBy(2, 2);\n\t\n\t//example with sy, it scales by 0.25 in X and 4.5 in Y\n\tvar actionBy2 = cc.scaleBy(2, 0.25, 4.5);\n\t``` \n\t*/\n\texport function scaleBy(duration: number, sx: number, sy?: number|void): ActionInterval;\t\n\t/**\n\t!#en Blinks a Node object by modifying it's visible property.\n\t!#zh 闪烁（基于透明度）。\n\t@param duration duration in seconds\n\t@param blinks blinks in times\n\t\n\t@example \n\t```js\n\t// example\n\tvar action = cc.blink(2, 10);\n\t``` \n\t*/\n\texport function blink(duration: number, blinks: number): ActionInterval;\t\n\t/**\n\t!#en\n\tFades an object that implements the cc.RGBAProtocol protocol.\n\tIt modifies the opacity from the current value to a custom one.\n\t!#zh 修改透明度到指定值。\n\t@param duration duration\n\t@param opacity 0-255, 0 is transparent\n\t\n\t@example \n\t```js\n\t// example\n\tvar action = cc.fadeTo(1.0, 0);\n\t``` \n\t*/\n\texport function fadeTo(duration: number, opacity: number): ActionInterval;\t\n\t/**\n\t!#en Fades In an object that implements the cc.RGBAProtocol protocol. It modifies the opacity from 0 to 255.\n\t!#zh 渐显效果。\n\t@param duration duration in seconds\n\t\n\t@example \n\t```js\n\t//example\n\tvar action = cc.fadeIn(1.0);\n\t``` \n\t*/\n\texport function fadeIn(duration: number): ActionInterval;\t\n\t/**\n\t!#en Fades Out an object that implements the cc.RGBAProtocol protocol. It modifies the opacity from 255 to 0.\n\t!#zh 渐隐效果。\n\t@param d duration in seconds\n\t\n\t@example \n\t```js\n\t// example\n\tvar action = cc.fadeOut(1.0);\n\t``` \n\t*/\n\texport function fadeOut(d: number): ActionInterval;\t\n\t/**\n\t!#en Tints a Node that implements the cc.NodeRGB protocol from current tint to a custom one.\n\t!#zh 修改颜色到指定值。\n\t@param duration duration\n\t@param red 0-255\n\t@param green 0-255\n\t@param blue 0-255\n\t\n\t@example \n\t```js\n\t// example\n\tvar action = cc.tintTo(2, 255, 0, 255);\n\t``` \n\t*/\n\texport function tintTo(duration: number, red: number, green: number, blue: number): ActionInterval;\t\n\t/**\n\t!#en\n\tTints a Node that implements the cc.NodeRGB protocol from current tint to a custom one.\n\tRelative to their own color change.\n\t!#zh 按照指定的增量修改颜色。\n\t@param duration duration in seconds\n\t@param deltaRed deltaRed\n\t@param deltaGreen deltaGreen\n\t@param deltaBlue deltaBlue\n\t\n\t@example \n\t```js\n\t// example\n\tvar action = cc.tintBy(2, -127, -255, -127);\n\t``` \n\t*/\n\texport function tintBy(duration: number, deltaRed: number, deltaGreen: number, deltaBlue: number): ActionInterval;\t\n\t/**\n\t!#en Delays the action a certain amount of seconds.\n\t!#zh 延迟指定的时间量。\n\t@param d duration in seconds\n\t\n\t@example \n\t```js\n\t// example\n\tvar delay = cc.delayTime(1);\n\t``` \n\t*/\n\texport function delayTime(d: number): ActionInterval;\t\n\t/**\n\t!#en Executes an action in reverse order, from time=duration to time=0.\n\t!#zh 反转目标动作的时间轴。\n\t@param action action\n\t\n\t@example \n\t```js\n\t// example\n\t var reverse = cc.reverseTime(this);\n\t``` \n\t*/\n\texport function reverseTime(action: FiniteTimeAction): ActionInterval;\t\n\t/**\n\t!#en Create an action with the specified action and forced target.\n\t!#zh 用已有动作和一个新的目标节点创建动作。\n\t@param target target\n\t@param action action \n\t*/\n\texport function targetedAction(target: Node, action: FiniteTimeAction): ActionInterval;\t\n\t/**\n\t\n\t@param target the target to animate \n\t*/\n\texport function tween(target?: any): Tween;\t\n\t/** !#en This is a Easing instance.\n\t!#zh 这是一个 Easing 类实例。 */\n\texport var easing: Easing;\t\n\t/** !#en Director\n\t!#zh 导演类。 */\n\texport var director: Director;\t\n\t/**\n\t!#en\n\tOutputs an error message to the Cocos Creator Console (editor) or Web Console (runtime).<br/>\n\t- In Cocos Creator, error is red.<br/>\n\t- In Chrome, error have a red icon along with red message text.<br/>\n\t!#zh\n\t输出错误消息到 Cocos Creator 编辑器的 Console 或运行时页面端的 Console 中。<br/>\n\t- 在 Cocos Creator 中，错误信息显示是红色的。<br/>\n\t- 在 Chrome 中，错误信息有红色的图标以及红色的消息文本。<br/>\n\t@param msg A JavaScript string containing zero or more substitution strings.\n\t@param subst JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output. \n\t*/\n\texport function error(msg: any, ...subst: any[]): void;\t\n\t/**\n\t!#en\n\tOutputs a warning message to the Cocos Creator Console (editor) or Web Console (runtime).\n\t- In Cocos Creator, warning is yellow.\n\t- In Chrome, warning have a yellow warning icon with the message text.\n\t!#zh\n\t输出警告消息到 Cocos Creator 编辑器的 Console 或运行时 Web 端的 Console 中。<br/>\n\t- 在 Cocos Creator 中，警告信息显示是黄色的。<br/>\n\t- 在 Chrome 中，警告信息有着黄色的图标以及黄色的消息文本。<br/>\n\t@param msg A JavaScript string containing zero or more substitution strings.\n\t@param subst JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output. \n\t*/\n\texport function warn(msg: any, ...subst: any[]): void;\t\n\t/**\n\t!#en Outputs a message to the Cocos Creator Console (editor) or Web Console (runtime).\n\t!#zh 输出一条消息到 Cocos Creator 编辑器的 Console 或运行时 Web 端的 Console 中。\n\t@param msg A JavaScript string containing zero or more substitution strings.\n\t@param subst JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output. \n\t*/\n\texport function log(msg: string|any, ...subst: any[]): void;\t\n\t/** !#en This is a Game instance.\n\t!#zh 这是一个 Game 类的实例，包含游戏主体信息并负责驱动游戏的游戏对象。。 */\n\texport var game: Game;\t\n\t/**\n\t!#en\n\tRotates a Node object to a certain angle by modifying its quternion property. <br/>\n\tThe direction will be decided by the shortest angle.\n\t!#zh 旋转到目标角度，通过逐帧修改它的 quternion 属性，旋转方向将由最短的角度决定。\n\t@param duration duration in seconds\n\t@param dstAngleX dstAngleX in degrees.\n\t@param dstAngleY dstAngleY in degrees.\n\t@param dstAngleZ dstAngleZ in degrees.\n\t\n\t@example \n\t```js\n\t// example\n\tvar rotate3DTo = cc.rotate3DTo(2, cc.v3(0, 180, 0));\n\t``` \n\t*/\n\texport function rotate3DTo(duration: number, dstAngleX: number|Vec3|Quat, dstAngleY?: number, dstAngleZ?: number): ActionInterval;\t\n\t/**\n\t!#en\n\tRotates a Node object counter clockwise a number of degrees by modifying its quaternion property.\n\tRelative to its properties to modify.\n\t!#zh 旋转指定的 3D 角度。\n\t@param duration duration in seconds\n\t@param deltaAngleX deltaAngleX in degrees\n\t@param deltaAngleY deltaAngleY in degrees\n\t@param deltaAngleZ deltaAngleZ in degrees\n\t\n\t@example \n\t```js\n\t// example\n\tvar actionBy = cc.rotate3DBy(2, cc.v3(0, 360, 0));\n\t``` \n\t*/\n\texport function rotate3DBy(duration: number, deltaAngleX: number|Vec3, deltaAngleY?: number, deltaAngleZ?: number): ActionInterval;\t\n\t/** !#en The System event singleton for global usage\n\t!#zh 系统事件单例，方便全局使用 */\n\texport var systemEvent: SystemEvent;\t\n\t/** The offset of the range. */\n\texport var offset: number;\t\n\t/** The length of the range. */\n\texport var length: number;\t\n\t/** The data range of this bundle.\n\tThis range of data is essentially mapped to a GPU vertex buffer. */\n\texport var data: BufferRange;\t\n\t/** The attribute formats. */\n\texport var formats: VertexFormat;\t\n\t/** The vertex bundle that the primitive use. */\n\texport var vertexBundleIndices: number[];\t\n\t/** The data range of the primitive.\n\tThis range of data is essentially mapped to a GPU indices buffer. */\n\texport var data: BufferRange;\t\n\t/** The type of this primitive's indices. */\n\texport var indexUnit: number;\t\n\t/** The primitive's topology. */\n\texport var topology: number;\t\n\t/**\n\t!#en Defines a CCClass using the given specification, please see [Class](/docs/editors_and_tools/creator-chapters/scripting/class.html) for details.\n\t!#zh 定义一个 CCClass，传入参数必须是一个包含类型参数的字面量对象，具体用法请查阅[类型定义](/docs/creator/scripting/class.html)。\n\t@param options options\n\t\n\t@example \n\t```js\n\t// define base class\n\tvar Node = cc.Class();\n\t\n\t// define sub class\n\tvar Sprite = cc.Class({\n\tname: 'Sprite',\n\textends: Node,\n\t\n\tctor: function () {\n\tthis.url = \"\";\n\tthis.id = 0;\n\t},\n\t\n\tstatics: {\n\t// define static members\n\tcount: 0,\n\tgetBounds: function (spriteList) {\n\t// compute bounds...\n\t}\n\t},\n\t\n\tproperties {\n\twidth: {\n\tdefault: 128,\n\ttype: 'Integer',\n\ttooltip: 'The width of sprite'\n\t},\n\theight: 128,\n\tsize: {\n\tget: function () {\n\treturn cc.v2(this.width, this.height);\n\t}\n\t}\n\t},\n\t\n\tload: function () {\n\t// load this.url...\n\t};\n\t});\n\t\n\t// instantiate\n\t\n\tvar obj = new Sprite();\n\tobj.url = 'sprite.png';\n\tobj.load();\n\t``` \n\t*/\n\texport function Class(options?: {name?: string; extends?: Function; ctor?: Function; __ctor__?: Function; properties?: any; statics?: any; mixins?: Function[]; editor?: {executeInEditMode?: boolean; requireComponent?: Function; menu?: string; executionOrder?: number; disallowMultiple?: boolean; playOnFocus?: boolean; inspector?: string; icon?: string; help?: string; }; update?: Function; lateUpdate?: Function; onLoad?: Function; start?: Function; onEnable?: Function; onDisable?: Function; onDestroy?: Function; onFocusInEditor?: Function; onLostFocusInEditor?: Function; resetInEditor?: Function; onRestore?: Function; _getLocalBounds?: Function; }): Function;\t\n\t/**\n\t\n\t@param touches touches \n\t*/\n\texport function handleTouchesBegin(touches: any[]): void;\t\n\t/**\n\t\n\t@param touches touches \n\t*/\n\texport function handleTouchesMove(touches: any[]): void;\t\n\t/**\n\t\n\t@param touches touches \n\t*/\n\texport function handleTouchesEnd(touches: any[]): void;\t\n\t/**\n\t\n\t@param touches touches \n\t*/\n\texport function handleTouchesCancel(touches: any[]): void;\t\n\t/**\n\t\n\t@param touches touches \n\t*/\n\texport function getSetOfTouchesEndOrCancel(touches: any[]): any[];\t\n\t/**\n\t\n\t@param element element \n\t*/\n\texport function getHTMLElementPosition(element: HTMLElement): any;\t\n\t/**\n\t\n\t@param touch touch \n\t*/\n\texport function getPreTouch(touch: Touch): Touch;\t\n\t/**\n\t\n\t@param touch touch \n\t*/\n\texport function setPreTouch(touch: Touch): void;\t\n\t/**\n\t\n\t@param tx tx\n\t@param ty ty\n\t@param pos pos \n\t*/\n\texport function getTouchByXY(tx: number, ty: number, pos: Vec2): Touch;\t\n\t/**\n\t\n\t@param location location\n\t@param pos pos\n\t@param eventType eventType \n\t*/\n\texport function getMouseEvent(location: Vec2, pos: Vec2, eventType: number): Event.EventMouse;\t\n\t/**\n\t\n\t@param event event\n\t@param pos pos \n\t*/\n\texport function getPointByEvent(event: Touch, pos: Vec2): Vec2;\t\n\t/**\n\t\n\t@param event event\n\t@param pos pos \n\t*/\n\texport function getTouchesByEvent(event: Touch, pos: Vec2): any[];\t\n\t/**\n\t\n\t@param element element \n\t*/\n\texport function registerSystemEvent(element: HTMLElement): void;\t\n\t/**\n\t\n\t@param dt dt \n\t*/\n\texport function update(dt: number): void;\t\n\t/**\n\t!#en\n\tDefine an enum type. <br/>\n\tIf a enum item has a value of -1, it will be given an Integer number according to it's order in the list.<br/>\n\tOtherwise it will use the value specified by user who writes the enum definition.\n\t\n\t!#zh\n\t定义一个枚举类型。<br/>\n\t用户可以把枚举值设为任意的整数，如果设为 -1，系统将会分配为上一个枚举值 + 1。\n\t@param obj a JavaScript literal object containing enum names and values, or a TypeScript enum type\n\t\n\t@example \n\t```js\n\t// JavaScript:\n\t\n\tvar WrapMode = cc.Enum({\n\t    Repeat: -1,\n\t    Clamp: -1\n\t});\n\t\n\t// Texture.WrapMode.Repeat == 0\n\t// Texture.WrapMode.Clamp == 1\n\t// Texture.WrapMode[0] == \"Repeat\"\n\t// Texture.WrapMode[1] == \"Clamp\"\n\t\n\tvar FlagType = cc.Enum({\n\t    Flag1: 1,\n\t    Flag2: 2,\n\t    Flag3: 4,\n\t    Flag4: 8,\n\t});\n\t\n\tvar AtlasSizeList = cc.Enum({\n\t    128: 128,\n\t    256: 256,\n\t    512: 512,\n\t    1024: 1024,\n\t});\n\t\n\t// TypeScript:\n\t\n\t// If used in TypeScript, just define a TypeScript enum:\n\tenum Direction {\n\t    Up,\n\t    Down,\n\t    Left,\n\t    Right\n\t}\n\t\n\t// If you need to inspect the enum in Properties panel, you can call cc.Enum:\n\tconst {ccclass, property} = cc._decorator;\n\t\n\t@ccclass\n\tclass NewScript extends cc.Component {\n\t    @property({\n\t        type: cc.Enum(Direction)    // call cc.Enum\n\t    })\n\t    direction: Direction = Direction.Up;\n\t}\n\t\n\t``` \n\t*/\n\texport function Enum<T>(obj: T): T;\t\n\t/**\n\t!#en\n\tChecks whether the object is non-nil and not yet destroyed.<br>\n\tWhen an object's `destroy` is called, it is actually destroyed after the end of this frame.\n\tSo `isValid` will return false from the next frame, while `isValid` in the current frame will still be true.\n\tIf you want to determine whether the current frame has called `destroy`, use `cc.isValid(obj, true)`,\n\tbut this is often caused by a particular logical requirements, which is not normally required.\n\t\n\t!#zh\n\t检查该对象是否不为 null 并且尚未销毁。<br>\n\t当一个对象的 `destroy` 调用以后，会在这一帧结束后才真正销毁。因此从下一帧开始 `isValid` 就会返回 false，而当前帧内 `isValid` 仍然会是 true。如果希望判断当前帧是否调用过 `destroy`，请使用 `cc.isValid(obj, true)`，不过这往往是特殊的业务需求引起的，通常情况下不需要这样。\n\t@param value value\n\t@param strictMode If true, Object called destroy() in this frame will also treated as invalid.\n\t\n\t@example \n\t```js\n\tvar node = new cc.Node();\n\tcc.log(cc.isValid(node));    // true\n\tnode.destroy();\n\tcc.log(cc.isValid(node));    // true, still valid in this frame\n\t// after a frame...\n\tcc.log(cc.isValid(node));    // false, destroyed in the end of last frame\n\t``` \n\t*/\n\texport function isValid(value: any, strictMode?: boolean): boolean;\t\n\t/** !#en cc.view is the shared view object.\n\t!#zh cc.view 是全局的视图对象。 */\n\texport var view: View;\t\n\t/** !#en cc.winSize is the alias object for the size of the current game window.\n\t!#zh cc.winSize 为当前的游戏窗口的大小。 */\n\texport var winSize: Size;\t\n\t/** Specify that the input value must be integer in Inspector.\n\tAlso used to indicates that the elements in array should be type integer. */\n\texport var Integer: string;\t\n\t/** Indicates that the elements in array should be type double. */\n\texport var Float: string;\t\n\t/** Indicates that the elements in array should be type boolean. */\n\texport var Boolean: string;\t\n\t/** Indicates that the elements in array should be type string. */\n\texport var String: string;\t\n\t/**\n\t!#en Deserialize json to cc.Asset\n\t!#zh 将 JSON 反序列化为对象实例。\n\t\n\t当指定了 target 选项时，如果 target 引用的其它 asset 的 uuid 不变，则不会改变 target 对 asset 的引用，\n\t也不会将 uuid 保存到 result 对象中。\n\t@param data the serialized cc.Asset json string or json object.\n\t@param details additional loading result\n\t@param options options \n\t*/\n\texport function deserialize(data: string|any, details?: Details, options?: any): any;\t\n\t/**\n\t!#en Clones the object `original` and returns the clone, or instantiate a node from the Prefab.\n\t!#zh 克隆指定的任意类型的对象，或者从 Prefab 实例化出新节点。\n\t\n\t（Instantiate 时，function 和 dom 等非可序列化对象会直接保留原有引用，Asset 会直接进行浅拷贝，可序列化类型会进行深拷贝。）\n\t@param original An existing object that you want to make a copy of.\n\t\n\t@example \n\t```js\n\t// instantiate node from prefab\n\tvar scene = cc.director.getScene();\n\tvar node = cc.instantiate(prefabAsset);\n\tnode.parent = scene;\n\t// clone node\n\tvar scene = cc.director.getScene();\n\tvar node = cc.instantiate(targetNode);\n\tnode.parent = scene;\n\t``` \n\t*/\n\texport function instantiate(original: Prefab): Node;\n\texport function instantiate<T>(original: T): T;\t\n\t/**\n\tFinds a node by hierarchy path, the path is case-sensitive.\n\tIt will traverse the hierarchy by splitting the path using '/' character.\n\tThis function will still returns the node even if it is inactive.\n\tIt is recommended to not use this function every frame instead cache the result at startup.\n\t@param path path\n\t@param referenceNode referenceNode \n\t*/\n\texport function find(path: string, referenceNode?: Node): Node;\t\n\t/**\n\t!#en\n\tThe convenience method to create a new {{#crossLink \"Color/Color:method\"}}cc.Color{{/crossLink}}\n\tAlpha channel is optional. Default value is 255.\n\t\n\t!#zh\n\t通过该方法来创建一个新的 {{#crossLink \"Color/Color:method\"}}cc.Color{{/crossLink}} 对象。\n\tAlpha 通道是可选的。默认值是 255。\n\t@param r r\n\t@param g g\n\t@param b b\n\t@param a a\n\t\n\t@example \n\t```js\n\t-----------------------\n\t// 1. All channels seperately as parameters\n\tvar color1 = new cc.Color(255, 255, 255, 255);\n\t// 2. Convert a hex string to a color\n\tvar color2 = new cc.Color(\"#000000\");\n\t// 3. An color object as parameter\n\tvar color3 = new cc.Color({r: 255, g: 255, b: 255, a: 255});\n\t\n\t``` \n\t*/\n\texport function color(r?: number, g?: number, b?: number, a?: number): Color;\t\n\t/**\n\t!#en The convenience method to create a new {{#crossLink \"Mat4\"}}cc.Mat4{{/crossLink}}.\n\t!#zh 通过该简便的函数进行创建 {{#crossLink \"Mat4\"}}cc.Mat4{{/crossLink}} 对象。\n\t@param m00 Component in column 0, row 0 position (index 0)\n\t@param m01 Component in column 0, row 1 position (index 1)\n\t@param m02 Component in column 0, row 2 position (index 2)\n\t@param m03 Component in column 0, row 3 position (index 3)\n\t@param m10 Component in column 1, row 0 position (index 4)\n\t@param m11 Component in column 1, row 1 position (index 5)\n\t@param m12 Component in column 1, row 2 position (index 6)\n\t@param m13 Component in column 1, row 3 position (index 7)\n\t@param m20 Component in column 2, row 0 position (index 8)\n\t@param m21 Component in column 2, row 1 position (index 9)\n\t@param m22 Component in column 2, row 2 position (index 10)\n\t@param m23 Component in column 2, row 3 position (index 11)\n\t@param m30 Component in column 3, row 0 position (index 12)\n\t@param m31 Component in column 3, row 1 position (index 13)\n\t@param m32 Component in column 3, row 2 position (index 14)\n\t@param m33 Component in column 3, row 3 position (index 15) \n\t*/\n\texport function mat4(m00?: number, m01?: number, m02?: number, m03?: number, m10?: number, m11?: number, m12?: number, m13?: number, m20?: number, m21?: number, m22?: number, m23?: number, m30?: number, m31?: number, m32?: number, m33?: number): Mat4;\t\n\t/**\n\t!#en\n\tThe convenience method to create a new Rect.\n\tsee {{#crossLink \"Rect/Rect:method\"}}cc.Rect{{/crossLink}}\n\t!#zh\n\t该方法用来快速创建一个新的矩形。{{#crossLink \"Rect/Rect:method\"}}cc.Rect{{/crossLink}}\n\t@param x x\n\t@param y y\n\t@param w w\n\t@param h h\n\t\n\t@example \n\t```js\n\tvar a = new cc.Rect(0 , 0, 10, 0);\n\t``` \n\t*/\n\texport function rect(x?: number, y?: number, w?: number, h?: number): Rect;\t\n\t/**\n\t!#en\n\tHelper function that creates a cc.Size.<br/>\n\tPlease use cc.p or cc.v2 instead, it will soon replace cc.Size.\n\t!#zh\n\t创建一个 cc.Size 对象的帮助函数。<br/>\n\t注意：可以使用 cc.p 或者是 cc.v2 代替，它们将很快取代 cc.Size。\n\t@param w width or a size object\n\t@param h height\n\t\n\t@example \n\t```js\n\tvar size1 = cc.size();\n\tvar size2 = cc.size(100,100);\n\tvar size3 = cc.size(size2);\n\tvar size4 = cc.size({width: 100, height: 100});\n\t\n\t``` \n\t*/\n\texport function size(w: number|Size, h?: number): Size;\t\n\t/**\n\t!#en The convenience method to create a new {{#crossLink \"Quat\"}}cc.Quat{{/crossLink}}.\n\t!#zh 通过该简便的函数进行创建 {{#crossLink \"Quat\"}}cc.Quat{{/crossLink}} 对象。\n\t@param x x\n\t@param y y\n\t@param z z\n\t@param w w \n\t*/\n\texport function quat(x?: number|any, y?: number, z?: number, w?: number): Quat;\t\n\t/**\n\t!#en The convenience method to create a new {{#crossLink \"Vec2\"}}cc.Vec2{{/crossLink}}.\n\t!#zh 通过该简便的函数进行创建 {{#crossLink \"Vec2\"}}cc.Vec2{{/crossLink}} 对象。\n\t@param x x\n\t@param y y\n\t\n\t@example \n\t```js\n\tvar v1 = cc.v2();\n\tvar v2 = cc.v2(0, 0);\n\tvar v3 = cc.v2(v2);\n\tvar v4 = cc.v2({x: 100, y: 100});\n\t``` \n\t*/\n\texport function v2(x?: number|any, y?: number): Vec2;\t\n\t/**\n\t!#en This function is deprecated since v2.0, please use {{#crossLink \"v2\"}}cc.v2{{/crossLink}}.\n\t!#zh 这个函数从 v2.0 开始被废弃，请使用 {{#crossLink \"v2\"}}cc.v2{{/crossLink}}。\n\t@param x a Number or a size object\n\t@param y y \n\t*/\n\texport function p(x?: number|any, y?: number): Vec2;\t\n\t/**\n\t!#en The convenience method to create a new {{#crossLink \"Vec3\"}}cc.Vec3{{/crossLink}}.\n\t!#zh 通过该简便的函数进行创建 {{#crossLink \"Vec3\"}}cc.Vec3{{/crossLink}} 对象。\n\t@param x x\n\t@param y y\n\t@param z z\n\t\n\t@example \n\t```js\n\tvar v1 = cc.v3();\n\tvar v2 = cc.v3(0, 0, 0);\n\tvar v3 = cc.v3(v2);\n\tvar v4 = cc.v3({x: 100, y: 100, z: 0});\n\t``` \n\t*/\n\texport function v3(x?: number|any, y?: number, z?: number): Vec3;\t\n\t/**\n\t!#en The convenience method to create a new {{#crossLink \"Vec4\"}}cc.Vec4{{/crossLink}}.\n\t!#zh 通过该简便的函数进行创建 {{#crossLink \"Vec4\"}}cc.Vec4{{/crossLink}} 对象。\n\t@param x x\n\t@param y y\n\t@param z z\n\t\n\t@example \n\t```js\n\tvar v1 = cc.v4();\n\tvar v2 = cc.v4(0, 0, 0);\n\tvar v3 = cc.v4(v2);\n\tvar v4 = cc.v4({x: 100, y: 100, z: 0});\n\t``` \n\t*/\n\texport function v4(x?: number|any, y?: number, z?: number): Vec4;\t\n\texport var dynamicAtlasManager: DynamicAtlasManager;\t\n\t/** !#en Base class cc.Action for action classes.\n\t!#zh Action 类是所有动作类型的基类。 */\n\texport class Action {\t\t\n\t\t/**\n\t\t!#en\n\t\tto copy object with deep copy.\n\t\treturns a clone of action.\n\t\t!#zh 返回一个克隆的动作。 \n\t\t*/\n\t\tclone(): Action;\t\t\n\t\t/**\n\t\t!#en\n\t\treturn true if the action has finished.\n\t\t!#zh 如果动作已完成就返回 true。 \n\t\t*/\n\t\tisDone(): boolean;\t\t\n\t\t/**\n\t\t!#en get the target.\n\t\t!#zh 获取当前目标节点。 \n\t\t*/\n\t\tgetTarget(): Node;\t\t\n\t\t/**\n\t\t!#en The action will modify the target properties.\n\t\t!#zh 设置目标节点。\n\t\t@param target target \n\t\t*/\n\t\tsetTarget(target: Node): void;\t\t\n\t\t/**\n\t\t!#en get the original target.\n\t\t!#zh 获取原始目标节点。 \n\t\t*/\n\t\tgetOriginalTarget(): Node;\t\t\n\t\t/**\n\t\t!#en get tag number.\n\t\t!#zh 获取用于识别动作的标签。 \n\t\t*/\n\t\tgetTag(): number;\t\t\n\t\t/**\n\t\t!#en set tag number.\n\t\t!#zh 设置标签，用于识别动作。\n\t\t@param tag tag \n\t\t*/\n\t\tsetTag(tag: number): void;\t\t\n\t\t/** !#en Default Action tag.\n\t\t!#zh 默认动作标签。 */\n\t\tstatic TAG_INVALID: number;\t\n\t}\t\n\t/** !#en\n\tBase class actions that do have a finite time duration. <br/>\n\tPossible actions: <br/>\n\t- An action with a duration of 0 seconds. <br/>\n\t- An action with a duration of 35.5 seconds.\n\t\n\tInfinite time actions are valid\n\t!#zh 有限时间动作，这种动作拥有时长 duration 属性。 */\n\texport class FiniteTimeAction extends Action {\t\t\n\t\t/**\n\t\t!#en get duration of the action. (seconds).\n\t\t!#zh 获取动作以秒为单位的持续时间。 \n\t\t*/\n\t\tgetDuration(): number;\t\t\n\t\t/**\n\t\t!#en set duration of the action. (seconds).\n\t\t!#zh 设置动作以秒为单位的持续时间。\n\t\t@param duration duration \n\t\t*/\n\t\tsetDuration(duration: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns a reversed action. <br />\n\t\tFor example: <br />\n\t\t- The action will be x coordinates of 0 move to 100. <br />\n\t\t- The reversed action will be x of 100 move to 0.\n\t\t- Will be rewritten\n\t\t!#zh 返回一个新的动作，执行与原动作完全相反的动作。 \n\t\t*/\n\t\treverse(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tto copy object with deep copy.\n\t\treturns a clone of action.\n\t\t!#zh 返回一个克隆的动作。 \n\t\t*/\n\t\tclone(): FiniteTimeAction;\t\n\t}\t\n\t/** !#en Instant actions are immediate actions. They don't have a duration like the ActionInterval actions.\n\t!#zh 即时动作，这种动作立即就会执行，继承自 FiniteTimeAction。 */\n\texport class ActionInstant extends FiniteTimeAction {\t\n\t}\t\n\t/** !#en\n\t<p> An interval action is an action that takes place within a certain period of time. <br/>\n\tIt has an start time, and a finish time. The finish time is the parameter<br/>\n\tduration plus the start time.</p>\n\t\n\t<p>These CCActionInterval actions have some interesting properties, like:<br/>\n\t- They can run normally (default)  <br/>\n\t- They can run reversed with the reverse method   <br/>\n\t- They can run with the time altered with the Accelerate, AccelDeccel and Speed actions. </p>\n\t\n\t<p>For example, you can simulate a Ping Pong effect running the action normally and<br/>\n\tthen running it again in Reverse mode. </p>\n\t!#zh 时间间隔动作，这种动作在已定时间内完成，继承 FiniteTimeAction。 */\n\texport class ActionInterval extends FiniteTimeAction {\t\t\n\t\t/**\n\t\t!#en Implementation of ease motion.\n\t\t!#zh 缓动运动。\n\t\t@param easeObj easeObj\n\t\t\n\t\t@example \n\t\t```js\n\t\taction.easing(cc.easeIn(3.0));\n\t\t``` \n\t\t*/\n\t\teasing(easeObj: any): ActionInterval;\t\t\n\t\t/**\n\t\t!#en\n\t\tRepeats an action a number of times.\n\t\tTo repeat an action forever use the CCRepeatForever action.\n\t\t!#zh 重复动作可以按一定次数重复一个动作，使用 RepeatForever 动作来永远重复一个动作。\n\t\t@param times times \n\t\t*/\n\t\trepeat(times: number): ActionInterval;\t\t\n\t\t/**\n\t\t!#en\n\t\tRepeats an action for ever.  <br/>\n\t\tTo repeat the an action for a limited number of times use the Repeat action. <br/>\n\t\t!#zh 永远地重复一个动作，有限次数内重复一个动作请使用 Repeat 动作。 \n\t\t*/\n\t\trepeatForever(): ActionInterval;\t\n\t}\t\n\t/** !#en\n\tcc.ActionManager is a class that can manage actions.<br/>\n\tNormally you won't need to use this class directly. 99% of the cases you will use the CCNode interface,\n\twhich uses this class's singleton object.\n\tBut there are some cases where you might need to use this class. <br/>\n\tExamples:<br/>\n\t- When you want to run an action where the target is different from a CCNode.<br/>\n\t- When you want to pause / resume the actions<br/>\n\t!#zh\n\tcc.ActionManager 是可以管理动作的单例类。<br/>\n\t通常你并不需要直接使用这个类，99%的情况您将使用 CCNode 的接口。<br/>\n\t但也有一些情况下，您可能需要使用这个类。 <br/>\n\t例如：\n\t - 当你想要运行一个动作，但目标不是 CCNode 类型时。 <br/>\n\t - 当你想要暂停/恢复动作时。 <br/> */\n\texport class ActionManager {\t\t\n\t\t/**\n\t\t!#en\n\t\tAdds an action with a target.<br/>\n\t\tIf the target is already present, then the action will be added to the existing target.\n\t\tIf the target is not present, a new instance of this target will be created either paused or not, and the action will be added to the newly created target.\n\t\tWhen the target is paused, the queued actions won't be 'ticked'.\n\t\t!#zh\n\t\t增加一个动作，同时还需要提供动作的目标对象，目标对象是否暂停作为参数。<br/>\n\t\t如果目标已存在，动作将会被直接添加到现有的节点中。<br/>\n\t\t如果目标不存在，将为这一目标创建一个新的实例，并将动作添加进去。<br/>\n\t\t当目标状态的 paused 为 true，动作将不会被执行\n\t\t@param action action\n\t\t@param target target\n\t\t@param paused paused \n\t\t*/\n\t\taddAction(action: Action, target: Node, paused: boolean): void;\t\t\n\t\t/**\n\t\t!#en Removes all actions from all the targets.\n\t\t!#zh 移除所有对象的所有动作。 \n\t\t*/\n\t\tremoveAllActions(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemoves all actions from a certain target. <br/>\n\t\tAll the actions that belongs to the target will be removed.\n\t\t!#zh\n\t\t移除指定对象上的所有动作。<br/>\n\t\t属于该目标的所有的动作将被删除。\n\t\t@param target target\n\t\t@param forceDelete forceDelete \n\t\t*/\n\t\tremoveAllActionsFromTarget(target: Node, forceDelete: boolean): void;\t\t\n\t\t/**\n\t\t!#en Removes an action given an action reference.\n\t\t!#zh 移除指定的动作。\n\t\t@param action action \n\t\t*/\n\t\tremoveAction(action: Action): void;\t\t\n\t\t/**\n\t\t!#en Removes an action given its tag and the target.\n\t\t!#zh 删除指定对象下特定标签的一个动作，将删除首个匹配到的动作。\n\t\t@param tag tag\n\t\t@param target target \n\t\t*/\n\t\tremoveActionByTag(tag: number, target: Node): void;\t\t\n\t\t/**\n\t\t!#en Gets an action given its tag an a target.\n\t\t!#zh 通过目标对象和标签获取一个动作。\n\t\t@param tag tag\n\t\t@param target target \n\t\t*/\n\t\tgetActionByTag(tag: number, target: Node): Action;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the numbers of actions that are running in a certain target. <br/>\n\t\tComposable actions are counted as 1 action. <br/>\n\t\tExample: <br/>\n\t\t- If you are running 1 Sequence of 7 actions, it will return 1. <br/>\n\t\t- If you are running 7 Sequences of 2 actions, it will return 7.\n\t\t!#zh\n\t\t返回指定对象下所有正在运行的动作数量。 <br/>\n\t\t组合动作被算作一个动作。<br/>\n\t\t例如：<br/>\n\t\t - 如果您正在运行 7 个动作组成的序列动作（Sequence），这个函数将返回 1。<br/>\n\t\t - 如果你正在运行 2 个序列动作（Sequence）和 5 个普通动作，这个函数将返回 7。<br/>\n\t\t@param target target \n\t\t*/\n\t\tgetNumberOfRunningActionsInTarget(target: Node): number;\t\t\n\t\t/**\n\t\t!#en Pauses the target: all running actions and newly added actions will be paused.\n\t\t!#zh 暂停指定对象：所有正在运行的动作和新添加的动作都将会暂停。\n\t\t@param target target \n\t\t*/\n\t\tpauseTarget(target: Node): void;\t\t\n\t\t/**\n\t\t!#en Resumes the target. All queued actions will be resumed.\n\t\t!#zh 让指定目标恢复运行。在执行序列中所有被暂停的动作将重新恢复运行。\n\t\t@param target target \n\t\t*/\n\t\tresumeTarget(target: Node): void;\t\t\n\t\t/**\n\t\t!#en Pauses all running actions, returning a list of targets whose actions were paused.\n\t\t!#zh 暂停所有正在运行的动作，返回一个包含了那些动作被暂停了的目标对象的列表。 \n\t\t*/\n\t\tpauseAllRunningActions(): any[];\t\t\n\t\t/**\n\t\t!#en Resume a set of targets (convenience function to reverse a pauseAllRunningActions or pauseTargets call).\n\t\t!#zh 让一组指定对象恢复运行（用来逆转 pauseAllRunningActions 效果的便捷函数）。\n\t\t@param targetsToResume targetsToResume \n\t\t*/\n\t\tresumeTargets(targetsToResume: any[]): void;\t\t\n\t\t/**\n\t\t!#en Pause a set of targets.\n\t\t!#zh 暂停一组指定对象。\n\t\t@param targetsToPause targetsToPause \n\t\t*/\n\t\tpauseTargets(targetsToPause: any[]): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tpurges the shared action manager. It releases the retained instance. <br/>\n\t\tbecause it uses this, so it can not be static.\n\t\t!#zh\n\t\t清除共用的动作管理器。它释放了持有的实例。 <br/>\n\t\t因为它使用 this，因此它不能是静态的。 \n\t\t*/\n\t\tpurgeSharedManager(): void;\t\t\n\t\t/**\n\t\t!#en The ActionManager update。\n\t\t!#zh ActionManager 主循环。\n\t\t@param dt delta time in seconds \n\t\t*/\n\t\tupdate(dt: number): void;\t\n\t}\t\n\t/** !#en\n\tTween provide a simple and flexible way to create action.\n\tTween's api is more flexible than cc.Action:\n\t - Support creating an action sequence in chained api,\n\t - Support animate any objects' any properties, not limited to node's properties.\n\t   By contrast, cc.Action needs to create a new action class to support new node property.\n\t - Support working with cc.Action,\n\t - Support easing and progress function.\n\t!#zh\n\tTween 提供了一个简单灵活的方法来创建 action。\n\t相对于 Cocos 传统的 cc.Action，cc.Tween 在创建动画上要灵活非常多：\n\t - 支持以链式结构的方式创建一个动画序列。\n\t - 支持对任意对象的任意属性进行缓动，不再局限于节点上的属性，而 cc.Action 添加一个属性的支持时还需要添加一个新的 action 类型。\n\t - 支持与 cc.Action 混用\n\t - 支持设置 {{#crossLink \"Easing\"}}{{/crossLink}} 或者 progress 函数 */\n\texport class Tween {\t\t\n\t\t/**\n\t\t!#en\n\t\tInsert an action or tween to this sequence\n\t\t!#zh\n\t\t插入一个 action 或者 tween 到队列中\n\t\t@param other other \n\t\t*/\n\t\tthen(other: Action|Tween): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tSet tween target\n\t\t!#zh\n\t\t设置 tween 的 target\n\t\t@param target target \n\t\t*/\n\t\ttarget(target: any): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tStart this tween\n\t\t!#zh\n\t\t运行当前 tween \n\t\t*/\n\t\tstart(): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tStop this tween\n\t\t!#zh\n\t\t停止当前 tween \n\t\t*/\n\t\tstop(): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tClone a tween\n\t\t!#zh\n\t\t克隆当前 tween\n\t\t@param target target \n\t\t*/\n\t\tclone(target?: any): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tIntegrate all previous actions to an action.\n\t\t!#zh\n\t\t将之前所有的 action 整合为一个 action。 \n\t\t*/\n\t\tunion(): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd an action which calculate with absolute value\n\t\t!#zh\n\t\t添加一个对属性进行绝对值计算的 action\n\t\t@param duration duration\n\t\t@param props {scale: 2, position: cc.v3(100, 100, 100)}\n\t\t@param opts opts \n\t\t*/\n\t\tto(duration: number, props: any, opts?: {progress?: Function; easing?: Function|string; }): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd an action which calculate with relative value\n\t\t!#zh\n\t\t添加一个对属性进行相对值计算的 action\n\t\t@param duration duration\n\t\t@param props {scale: 2, position: cc.v3(100, 100, 100)}\n\t\t@param opts opts \n\t\t*/\n\t\tby(duration: number, props: any, opts?: {progress?: Function; easing?: Function|string; }): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tDirectly set target properties\n\t\t!#zh\n\t\t直接设置 target 的属性\n\t\t@param props props \n\t\t*/\n\t\tset(props: any): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd an delay action\n\t\t!#zh\n\t\t添加一个延时 action\n\t\t@param duration duration \n\t\t*/\n\t\tdelay(duration: number): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd an callback action\n\t\t!#zh\n\t\t添加一个回调 action\n\t\t@param callback callback \n\t\t*/\n\t\tcall(callback: Function): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd an hide action\n\t\t!#zh\n\t\t添加一个隐藏 action \n\t\t*/\n\t\thide(): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd an show action\n\t\t!#zh\n\t\t添加一个显示 action \n\t\t*/\n\t\tshow(): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd an removeSelf action\n\t\t!#zh\n\t\t添加一个移除自己 action \n\t\t*/\n\t\tremoveSelf(): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd an sequence action\n\t\t!#zh\n\t\t添加一个队列 action\n\t\t@param action action\n\t\t@param actions actions \n\t\t*/\n\t\tsequence(action: Action|Tween, ...actions: (Action|Tween)[]): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd an parallel action\n\t\t!#zh\n\t\t添加一个并行 action\n\t\t@param action action\n\t\t@param actions actions \n\t\t*/\n\t\tparallel(action: Action|Tween, ...actions: (Action|Tween)[]): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd an repeat action.\n\t\tThis action will integrate before actions to a sequence action as their parameters.\n\t\t!#zh\n\t\t添加一个重复 action，这个 action 会将前一个动作作为他的参数。\n\t\t@param repeatTimes repeatTimes\n\t\t@param action action \n\t\t*/\n\t\trepeat(repeatTimes: number, action?: Action|Tween): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd an repeat forever action\n\t\tThis action will integrate before actions to a sequence action as their parameters.\n\t\t!#zh\n\t\t添加一个永久重复 action，这个 action 会将前一个动作作为他的参数。\n\t\t@param action action \n\t\t*/\n\t\trepeatForever(action?: Action|Tween): Tween;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd an reverse time action.\n\t\tThis action will integrate before actions to a sequence action as their parameters.\n\t\t!#zh\n\t\t添加一个倒置时间 action，这个 action 会将前一个动作作为他的参数。\n\t\t@param action action \n\t\t*/\n\t\treverseTime(action?: Action|Tween): Tween;\t\n\t}\t\n\t/** !#en\n\t cc.NodePool is the cache pool designed for node type.<br/>\n\t It can helps you to improve your game performance for objects which need frequent release and recreate operations<br/>\n\t\n\tIt's recommended to create cc.NodePool instances by node type, the type corresponds to node type in game design, not the class,\n\tfor example, a prefab is a specific node type. <br/>\n\tWhen you create a node pool, you can pass a Component which contains `unuse`, `reuse` functions to control the content of node.<br/>\n\t\n\tSome common use case is :<br/>\n\t     1. Bullets in game (die very soon, massive creation and recreation, no side effect on other objects)<br/>\n\t     2. Blocks in candy crash (massive creation and recreation)<br/>\n\t     etc...\n\t!#zh\n\tcc.NodePool 是用于管理节点对象的对象缓存池。<br/>\n\t它可以帮助您提高游戏性能，适用于优化对象的反复创建和销毁<br/>\n\t以前 cocos2d-x 中的 cc.pool 和新的节点事件注册系统不兼容，因此请使用 cc.NodePool 来代替。\n\t\n\t新的 NodePool 需要实例化之后才能使用，每种不同的节点对象池需要一个不同的对象池实例，这里的种类对应于游戏中的节点设计，一个 prefab 相当于一个种类的节点。<br/>\n\t在创建缓冲池时，可以传入一个包含 unuse, reuse 函数的组件类型用于节点的回收和复用逻辑。<br/>\n\t\n\t一些常见的用例是：<br/>\n\t     1.在游戏中的子弹（死亡很快，频繁创建，对其他对象无副作用）<br/>\n\t     2.糖果粉碎传奇中的木块（频繁创建）。\n\t     等等.... */\n\texport class NodePool {\t\t\n\t\t/**\n\t\t!#en\n\t\tConstructor for creating a pool for a specific node template (usually a prefab). You can pass a component (type or name) argument for handling event for reusing and recycling node.\n\t\t!#zh\n\t\t使用构造函数来创建一个节点专用的对象池，您可以传递一个组件类型或名称，用于处理节点回收和复用时的事件逻辑。\n\t\t@param poolHandlerComp !#en The constructor or the class name of the component to control the unuse/reuse logic. !#zh 处理节点回收和复用事件逻辑的组件类型或名称。\n\t\t\n\t\t@example \n\t\t```js\n\t\tproperties: {\n\t\t   template: cc.Prefab\n\t\t },\n\t\t onLoad () {\n\t\t// MyTemplateHandler is a component with 'unuse' and 'reuse' to handle events when node is reused or recycled.\n\t\t   this.myPool = new cc.NodePool('MyTemplateHandler');\n\t\t }\n\t\t``` \n\t\t*/\n\t\tconstructor(poolHandlerComp?: {prototype: Component}|string);\t\t\n\t\t/** !#en The pool handler component, it could be the class name or the constructor.\n\t\t!#zh 缓冲池处理组件，用于节点的回收和复用逻辑，这个属性可以是组件类名或组件的构造函数。 */\n\t\tpoolHandlerComp: Function|string;\t\t\n\t\t/**\n\t\t!#en The current available size in the pool\n\t\t!#zh 获取当前缓冲池的可用对象数量 \n\t\t*/\n\t\tsize(): number;\t\t\n\t\t/**\n\t\t!#en Destroy all cached nodes in the pool\n\t\t!#zh 销毁对象池中缓存的所有节点 \n\t\t*/\n\t\tclear(): void;\t\t\n\t\t/**\n\t\t!#en Put a new Node into the pool.\n\t\tIt will automatically remove the node from its parent without cleanup.\n\t\tIt will also invoke unuse method of the poolHandlerComp if exist.\n\t\t!#zh 向缓冲池中存入一个不再需要的节点对象。\n\t\t这个函数会自动将目标节点从父节点上移除，但是不会进行 cleanup 操作。\n\t\t这个函数会调用 poolHandlerComp 的 unuse 函数，如果组件和函数都存在的话。\n\t\t@param obj obj\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet myNode = cc.instantiate(this.template);\n\t\t  this.myPool.put(myNode);\n\t\t``` \n\t\t*/\n\t\tput(obj: Node): void;\t\t\n\t\t/**\n\t\t!#en Get a obj from pool, if no available object in pool, null will be returned.\n\t\tThis function will invoke the reuse function of poolHandlerComp if exist.\n\t\t!#zh 获取对象池中的对象，如果对象池没有可用对象，则返回空。\n\t\t这个函数会调用 poolHandlerComp 的 reuse 函数，如果组件和函数都存在的话。\n\t\t@param params !#en Params to pass to 'reuse' method in poolHandlerComp !#zh 向 poolHandlerComp 中的 'reuse' 函数传递的参数\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet newNode = this.myPool.get();\n\t\t``` \n\t\t*/\n\t\tget(...params: any[]): Node;\t\n\t}\t\n\t/** !#en Render the TMX layer.\n\t!#zh 渲染 TMX layer。 */\n\texport class TiledLayer extends Component {\t\t\n\t\t/**\n\t\t!#en Gets the layer name.\n\t\t!#zh 获取层的名称。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet layerName = tiledLayer.getLayerName();\n\t\tcc.log(layerName);\n\t\t``` \n\t\t*/\n\t\tgetLayerName(): string;\t\t\n\t\t/**\n\t\t!#en Set the layer name.\n\t\t!#zh 设置层的名称\n\t\t@param layerName layerName\n\t\t\n\t\t@example \n\t\t```js\n\t\ttiledLayer.setLayerName(\"New Layer\");\n\t\t``` \n\t\t*/\n\t\tSetLayerName(layerName: string): void;\t\t\n\t\t/**\n\t\t!#en Return the value for the specific property name.\n\t\t!#zh 获取指定属性名的值。\n\t\t@param propertyName propertyName\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet property = tiledLayer.getProperty(\"info\");\n\t\tcc.log(property);\n\t\t``` \n\t\t*/\n\t\tgetProperty(propertyName: string): any;\t\t\n\t\t/**\n\t\t!#en Returns the position in pixels of a given tile coordinate.\n\t\t!#zh 获取指定 tile 的像素坐标。\n\t\t@param pos position or x\n\t\t@param y y\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet pos = tiledLayer.getPositionAt(cc.v2(0, 0));\n\t\tcc.log(\"Pos: \" + pos);\n\t\tlet pos = tiledLayer.getPositionAt(0, 0);\n\t\tcc.log(\"Pos: \" + pos);\n\t\t``` \n\t\t*/\n\t\tgetPositionAt(pos: Vec2|number, y?: number): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the tile gid (gid = tile global id) at a given tile coordinate.<br />\n\t\tThe Tile GID can be obtained by using the method \"tileGIDAt\" or by using the TMX editor . Tileset Mgr +1.<br />\n\t\tIf a tile is already placed at that position, then it will be removed.\n\t\t!#zh\n\t\t设置给定坐标的 tile 的 gid (gid = tile 全局 id)，\n\t\ttile 的 GID 可以使用方法 “tileGIDAt” 来获得。<br />\n\t\t如果一个 tile 已经放在那个位置，那么它将被删除。\n\t\t@param gid gid\n\t\t@param posOrX position or x\n\t\t@param flagsOrY flags or y\n\t\t@param flags flags\n\t\t\n\t\t@example \n\t\t```js\n\t\ttiledLayer.setTileGIDAt(1001, 10, 10, 1)\n\t\t``` \n\t\t*/\n\t\tsetTileGIDAt(gid: number, posOrX: Vec2|number, flagsOrY: number, flags?: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the tile gid at a given tile coordinate. <br />\n\t\tif it returns 0, it means that the tile is empty. <br />\n\t\t!#zh\n\t\t通过给定的 tile 坐标、flags（可选）返回 tile 的 GID. <br />\n\t\t如果它返回 0，则表示该 tile 为空。<br />\n\t\t@param pos or x\n\t\t@param y y\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet tileGid = tiledLayer.getTileGIDAt(0, 0);\n\t\t``` \n\t\t*/\n\t\tgetTileGIDAt(pos: Vec2|number, y?: number): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the TiledTile with the tile coordinate.<br/>\n\t\tIf there is no tile in the specified coordinate and forceCreate parameter is true, <br/>\n\t\tthen will create a new TiledTile at the coordinate.\n\t\tThe renderer will render the tile with the rotation, scale, position and color property of the TiledTile.\n\t\t!#zh\n\t\t通过指定的 tile 坐标获取对应的 TiledTile。 <br/>\n\t\t如果指定的坐标没有 tile，并且设置了 forceCreate 那么将会在指定的坐标创建一个新的 TiledTile 。<br/>\n\t\t在渲染这个 tile 的时候，将会使用 TiledTile 的节点的旋转、缩放、位移、颜色属性。<br/>\n\t\t@param x x\n\t\t@param y y\n\t\t@param forceCreate forceCreate\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet tile = tiledLayer.getTiledTileAt(100, 100, true);\n\t\tcc.log(tile);\n\t\t``` \n\t\t*/\n\t\tgetTiledTileAt(x: number, y: number, forceCreate: boolean): TiledTile;\t\t\n\t\t/**\n\t\t!#en\n\t\tChange tile to TiledTile at the specified coordinate.\n\t\t!#zh\n\t\t将指定的 tile 坐标替换为指定的 TiledTile。\n\t\t@param x x\n\t\t@param y y\n\t\t@param tiledTile tiledTile \n\t\t*/\n\t\tsetTiledTileAt(x: number, y: number, tiledTile: TiledTile): TiledTile;\t\t\n\t\t/**\n\t\t!#en Return texture of cc.SpriteBatchNode.\n\t\t!#zh 获取纹理。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet texture = tiledLayer.getTexture();\n\t\tcc.log(\"Texture: \" + texture);\n\t\t``` \n\t\t*/\n\t\tgetTexture(): Texture2D;\t\t\n\t\t/**\n\t\t!#en Set the texture of cc.SpriteBatchNode.\n\t\t!#zh 设置纹理。\n\t\t@param texture texture\n\t\t\n\t\t@example \n\t\t```js\n\t\ttiledLayer.setTexture(texture);\n\t\t``` \n\t\t*/\n\t\tsetTexture(texture: Texture2D): void;\t\t\n\t\t/**\n\t\t!#en Gets layer size.\n\t\t!#zh 获得层大小。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet size = tiledLayer.getLayerSize();\n\t\tcc.log(\"layer size: \" + size);\n\t\t``` \n\t\t*/\n\t\tgetLayerSize(): Size;\t\t\n\t\t/**\n\t\t!#en Size of the map's tile (could be different from the tile's size).\n\t\t!#zh 获取 tile 的大小( tile 的大小可能会有所不同)。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet mapTileSize = tiledLayer.getMapTileSize();\n\t\tcc.log(\"MapTile size: \" + mapTileSize);\n\t\t``` \n\t\t*/\n\t\tgetMapTileSize(): Size;\t\t\n\t\t/**\n\t\t!#en Tile set information for the layer.\n\t\t!#zh 获取 layer 的 Tileset 信息。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet tileset = tiledLayer.getTileSet();\n\t\t``` \n\t\t*/\n\t\tgetTileSet(): TMXTilesetInfo;\t\t\n\t\t/**\n\t\t!#en Tile set information for the layer.\n\t\t!#zh 设置 layer 的 Tileset 信息。\n\t\t@param tileset tileset\n\t\t\n\t\t@example \n\t\t```js\n\t\ttiledLayer.setTileSet(tileset);\n\t\t``` \n\t\t*/\n\t\tsetTileSet(tileset: TMXTilesetInfo): void;\t\t\n\t\t/**\n\t\t!#en Layer orientation, which is the same as the map orientation.\n\t\t!#zh 获取 Layer 方向(同地图方向)。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet orientation = tiledLayer.getLayerOrientation();\n\t\tcc.log(\"Layer Orientation: \" + orientation);\n\t\t``` \n\t\t*/\n\t\tgetLayerOrientation(): number;\t\t\n\t\t/**\n\t\t!#en properties from the layer. They can be added using Tiled.\n\t\t!#zh 获取 layer 的属性，可以使用 Tiled 编辑器添加属性。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet properties = tiledLayer.getProperties();\n\t\tcc.log(\"Properties: \" + properties);\n\t\t``` \n\t\t*/\n\t\tgetProperties(): any[];\t\n\t}\t\n\t/** !#en Renders a TMX Tile Map in the scene.\n\t!#zh 在场景中渲染一个 tmx 格式的 Tile Map。 */\n\texport class TiledMap extends Component {\t\t\n\t\t/** !#en The TiledMap Asset.\n\t\t!#zh TiledMap 资源。 */\n\t\ttmxAsset: TiledMapAsset;\t\t\n\t\t/**\n\t\t!#en Gets the map size.\n\t\t!#zh 获取地图大小。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet mapSize = tiledMap.getMapSize();\n\t\tcc.log(\"Map Size: \" + mapSize);\n\t\t``` \n\t\t*/\n\t\tgetMapSize(): Size;\t\t\n\t\t/**\n\t\t!#en Gets the tile size.\n\t\t!#zh 获取地图背景中 tile 元素的大小。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet tileSize = tiledMap.getTileSize();\n\t\tcc.log(\"Tile Size: \" + tileSize);\n\t\t``` \n\t\t*/\n\t\tgetTileSize(): Size;\t\t\n\t\t/**\n\t\t!#en map orientation.\n\t\t!#zh 获取地图方向。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet mapOrientation = tiledMap.getMapOrientation();\n\t\tcc.log(\"Map Orientation: \" + mapOrientation);\n\t\t``` \n\t\t*/\n\t\tgetMapOrientation(): number;\t\t\n\t\t/**\n\t\t!#en object groups.\n\t\t!#zh 获取所有的对象层。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet objGroups = titledMap.getObjectGroups();\n\t\tfor (let i = 0; i < objGroups.length; ++i) {\n\t\t    cc.log(\"obj: \" + objGroups[i]);\n\t\t}\n\t\t``` \n\t\t*/\n\t\tgetObjectGroups(): TiledObjectGroup[];\t\t\n\t\t/**\n\t\t!#en Return the TMXObjectGroup for the specific group.\n\t\t!#zh 获取指定的 TMXObjectGroup。\n\t\t@param groupName groupName\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet group = titledMap.getObjectGroup(\"Players\");\n\t\tcc.log(\"ObjectGroup: \" + group);\n\t\t``` \n\t\t*/\n\t\tgetObjectGroup(groupName: string): TiledObjectGroup;\t\t\n\t\t/**\n\t\t!#en Gets the map properties.\n\t\t!#zh 获取地图的属性。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet properties = titledMap.getProperties();\n\t\tfor (let i = 0; i < properties.length; ++i) {\n\t\t    cc.log(\"Properties: \" + properties[i]);\n\t\t}\n\t\t``` \n\t\t*/\n\t\tgetProperties(): any[];\t\t\n\t\t/**\n\t\t!#en Return All layers array.\n\t\t!#zh 返回包含所有 layer 的数组。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet layers = titledMap.allLayers();\n\t\tfor (let i = 0; i < layers.length; ++i) {\n\t\t    cc.log(\"Layers: \" + layers[i]);\n\t\t}\n\t\t``` \n\t\t*/\n\t\tgetLayers(): TiledLayer[];\t\t\n\t\t/**\n\t\t!#en return the cc.TiledLayer for the specific layer.\n\t\t!#zh 获取指定名称的 layer。\n\t\t@param layerName layerName\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet layer = titledMap.getLayer(\"Player\");\n\t\tcc.log(layer);\n\t\t``` \n\t\t*/\n\t\tgetLayer(layerName: string): TiledLayer;\t\t\n\t\t/**\n\t\t!#en Return the value for the specific property name.\n\t\t!#zh 通过属性名称，获取指定的属性。\n\t\t@param propertyName propertyName\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet property = titledMap.getProperty(\"info\");\n\t\tcc.log(\"Property: \" + property);\n\t\t``` \n\t\t*/\n\t\tgetProperty(propertyName: string): string;\t\t\n\t\t/**\n\t\t!#en Return properties dictionary for tile GID.\n\t\t!#zh 通过 GID ，获取指定的属性。\n\t\t@param GID GID\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet properties = titledMap.getPropertiesForGID(GID);\n\t\tcc.log(\"Properties: \" + properties);\n\t\t``` \n\t\t*/\n\t\tgetPropertiesForGID(GID: number): any;\t\n\t}\t\n\t/** Class for tiled map asset handling. */\n\texport class TiledMapAsset extends Asset {\t\t\n\t\ttextures: Texture2D[];\t\t\n\t\ttextureNames: string[];\t\n\t}\t\n\t/** !#en Renders the TMX object group.\n\t!#zh 渲染 tmx object group。 */\n\texport class TiledObjectGroup extends Component {\t\t\n\t\t/**\n\t\t!#en Offset position of child objects.\n\t\t!#zh 获取子对象的偏移位置。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet offset = tMXObjectGroup.getPositionOffset();\n\t\t``` \n\t\t*/\n\t\tgetPositionOffset(): Vec2;\t\t\n\t\t/**\n\t\t!#en List of properties stored in a dictionary.\n\t\t!#zh 以映射的形式获取属性列表。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet offset = tMXObjectGroup.getProperties();\n\t\t``` \n\t\t*/\n\t\tgetProperties(): any;\t\t\n\t\t/**\n\t\t!#en Gets the Group name.\n\t\t!#zh 获取组名称。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet groupName = tMXObjectGroup.getGroupName;\n\t\t``` \n\t\t*/\n\t\tgetGroupName(): string;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturn the object for the specific object name. <br />\n\t\tIt will return the 1st object found on the array for the given name.\n\t\t!#zh 获取指定的对象。\n\t\t@param objectName objectName\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet object = tMXObjectGroup.getObject(\"Group\");\n\t\t``` \n\t\t*/\n\t\tgetObject(objectName: string): any;\t\t\n\t\t/**\n\t\t!#en Gets the objects.\n\t\t!#zh 获取对象数组。\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet objects = tMXObjectGroup.getObjects();\n\t\t``` \n\t\t*/\n\t\tgetObjects(): any[];\t\n\t}\t\n\t/** !#en TiledTile can control the specified map tile.\n\tIt will apply the node rotation, scale, translate to the map tile.\n\tYou can change the TiledTile's gid to change the map tile's style.\n\t!#zh TiledTile 可以单独对某一个地图块进行操作。\n\t他会将节点的旋转，缩放，平移操作应用在这个地图块上，并可以通过更换当前地图块的 gid 来更换地图块的显示样式。 */\n\texport class TiledTile extends Component {\t\t\n\t\t/** !#en Specify the TiledTile horizontal coordinate，use map tile as the unit.\n\t\t!#zh 指定 TiledTile 的横向坐标，以地图块为单位 */\n\t\tx: number;\t\t\n\t\t/** !#en Specify the TiledTile vertical coordinate，use map tile as the unit.\n\t\t!#zh 指定 TiledTile 的纵向坐标，以地图块为单位 */\n\t\ty: number;\t\t\n\t\t/** !#en Specify the TiledTile gid.\n\t\t!#zh 指定 TiledTile 的 gid 值 */\n\t\tgid: number;\t\n\t}\t\n\t/** !#en Class for animation data handling.\n\t!#zh 动画剪辑，用于存储动画数据。 */\n\texport class AnimationClip extends Asset {\t\t\n\t\t/** !#en Duration of this animation.\n\t\t!#zh 动画的持续时间。 */\n\t\tduration: number;\t\t\n\t\t/** !#en FrameRate of this animation.\n\t\t!#zh 动画的帧速率。 */\n\t\tsample: number;\t\t\n\t\t/** !#en Speed of this animation.\n\t\t!#zh 动画的播放速度。 */\n\t\tspeed: number;\t\t\n\t\t/** !#en WrapMode of this animation.\n\t\t!#zh 动画的循环模式。 */\n\t\twrapMode: WrapMode;\t\t\n\t\t/** !#en Curve data.\n\t\t!#zh 曲线数据。 */\n\t\tcurveData: any;\t\t\n\t\t/** !#en Event data.\n\t\t!#zh 事件数据。 */\n\t\tevents: {frame: number, func: string, params: string[]}[];\t\t\n\t\t/**\n\t\t!#en Crate clip with a set of sprite frames\n\t\t!#zh 使用一组序列帧图片来创建动画剪辑\n\t\t@param spriteFrames spriteFrames\n\t\t@param sample sample\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar clip = cc.AnimationClip.createWithSpriteFrames(spriteFrames, 10);\n\t\t``` \n\t\t*/\n\t\tstatic createWithSpriteFrames(spriteFrames: SpriteFrame[], sample: number): AnimationClip;\t\n\t}\t\n\t/** !#en\n\tThe AnimationState gives full control over animation playback process.\n\tIn most cases the Animation Component is sufficient and easier to use. Use the AnimationState if you need full control.\n\t!#zh\n\tAnimationState 完全控制动画播放过程。<br/>\n\t大多数情况下 动画组件 是足够和易于使用的。如果您需要更多的动画控制接口，请使用 AnimationState。 */\n\texport class AnimationState extends Playable {\t\t\n\t\t/**\n\t\t\n\t\t@param clip clip\n\t\t@param name name \n\t\t*/\n\t\tconstructor(clip: AnimationClip, name?: string);\t\t\n\t\t/** !#en The curves list.\n\t\t!#zh 曲线列表。 */\n\t\tcurves: any[];\t\t\n\t\t/** !#en The start delay which represents the number of seconds from an animation's start time to the start of\n\t\tthe active interval.\n\t\t!#zh 延迟多少秒播放。 */\n\t\tdelay: number;\t\t\n\t\t/** !#en The animation's iteration count property.\n\t\t\n\t\tA real number greater than or equal to zero (including positive infinity) representing the number of times\n\t\tto repeat the animation node.\n\t\t\n\t\tValues less than zero and NaN values are treated as the value 1.0 for the purpose of timing model\n\t\tcalculations.\n\t\t\n\t\t!#zh 迭代次数，指动画播放多少次后结束, normalize time。 如 2.5（2次半） */\n\t\trepeatCount: number;\t\t\n\t\t/** !#en The iteration duration of this animation in seconds. (length)\n\t\t!#zh 单次动画的持续时间，秒。 */\n\t\tduration: number;\t\t\n\t\t/** !#en The animation's playback speed. 1 is normal playback speed.\n\t\t!#zh 播放速率。 */\n\t\tspeed: number;\t\t\n\t\t/** !#en\n\t\tWrapping mode of the playing animation.\n\t\tNotice : dynamic change wrapMode will reset time and repeatCount property\n\t\t!#zh\n\t\t动画循环方式。\n\t\t需要注意的是，动态修改 wrapMode 时，会重置 time 以及 repeatCount */\n\t\twrapMode: WrapMode;\t\t\n\t\t/** !#en The current time of this animation in seconds.\n\t\t!#zh 动画当前的时间，秒。 */\n\t\ttime: number;\t\t\n\t\t/** !#en The clip that is being played by this animation state.\n\t\t!#zh 此动画状态正在播放的剪辑。 */\n\t\tclip: AnimationClip;\t\t\n\t\t/** !#en The name of the playing animation.\n\t\t!#zh 动画的名字 */\n\t\tname: string;\t\n\t}\t\n\t/** !#en\n\tThis class provide easing methods for {{#crossLink \"tween\"}}{{/crossLink}} class.<br>\n\tDemonstratio: https://easings.net/\n\t!#zh\n\t缓动函数类，为 {{#crossLink \"Tween\"}}{{/crossLink}} 提供缓动效果函数。<br>\n\t函数效果演示： https://easings.net/ */\n\texport class Easing {\t\t\n\t\t/**\n\t\t!#en Easing in with quadratic formula. From slow to fast.\n\t\t!#zh 平方曲线缓入函数。运动由慢到快。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tquadIn(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing out with quadratic formula. From fast to slow.\n\t\t!#zh 平方曲线缓出函数。运动由快到慢。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tquadOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out with quadratic formula. From slow to fast, then back to slow.\n\t\t!#zh 平方曲线缓入缓出函数。运动由慢到快再到慢。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tquadInOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in with cubic formula. From slow to fast.\n\t\t!#zh 立方曲线缓入函数。运动由慢到快。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tcubicIn(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing out with cubic formula. From slow to fast.\n\t\t!#zh 立方曲线缓出函数。运动由快到慢。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tcubicOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out with cubic formula. From slow to fast, then back to slow.\n\t\t!#zh 立方曲线缓入缓出函数。运动由慢到快再到慢。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tcubicInOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in with quartic formula. From slow to fast.\n\t\t!#zh 四次方曲线缓入函数。运动由慢到快。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tquartIn(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing out with quartic formula. From fast to slow.\n\t\t!#zh 四次方曲线缓出函数。运动由快到慢。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tquartOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out with quartic formula. From slow to fast, then back to slow.\n\t\t!#zh 四次方曲线缓入缓出函数。运动由慢到快再到慢。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tquartInOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in with quintic formula. From slow to fast.\n\t\t!#zh 五次方曲线缓入函数。运动由慢到快。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tquintIn(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing out with quintic formula. From fast to slow.\n\t\t!#zh 五次方曲线缓出函数。运动由快到慢。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tquintOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out with quintic formula. From slow to fast, then back to slow.\n\t\t!#zh 五次方曲线缓入缓出函数。运动由慢到快再到慢。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tquintInOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out with sine formula. From slow to fast.\n\t\t!#zh 正弦曲线缓入函数。运动由慢到快。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tsineIn(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out with sine formula. From fast to slow.\n\t\t!#zh 正弦曲线缓出函数。运动由快到慢。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tsineOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out with sine formula. From slow to fast, then back to slow.\n\t\t!#zh 正弦曲线缓入缓出函数。运动由慢到快再到慢。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tsineInOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out with exponential formula. From slow to fast.\n\t\t!#zh 指数曲线缓入函数。运动由慢到快。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\texpoIn(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out with exponential formula. From fast to slow.\n\t\t!#zh 指数曲线缓出函数。运动由快到慢。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\texpoOu(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out with exponential formula. From slow to fast.\n\t\t!#zh 指数曲线缓入和缓出函数。运动由慢到很快再到慢。\n\t\t@param t The current time as a percentage of the total time, then back to slow. \n\t\t*/\n\t\texpoInOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out with circular formula. From slow to fast.\n\t\t!#zh 循环公式缓入函数。运动由慢到快。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tcircIn(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out with circular formula. From fast to slow.\n\t\t!#zh 循环公式缓出函数。运动由快到慢。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tcircOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out with circular formula. From slow to fast.\n\t\t!#zh 指数曲线缓入缓出函数。运动由慢到很快再到慢。\n\t\t@param t The current time as a percentage of the total time, then back to slow. \n\t\t*/\n\t\tcircInOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in action with a spring oscillating effect.\n\t\t!#zh 弹簧回震效果的缓入函数。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\telasticIn(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing out action with a spring oscillating effect.\n\t\t!#zh 弹簧回震效果的缓出函数。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\telasticOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out action with a spring oscillating effect.\n\t\t!#zh 弹簧回震效果的缓入缓出函数。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\telasticInOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in action with \"back up\" behavior.\n\t\t!#zh 回退效果的缓入函数。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tbackIn(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing out action with \"back up\" behavior.\n\t\t!#zh 回退效果的缓出函数。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tbackOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out action with \"back up\" behavior.\n\t\t!#zh 回退效果的缓入缓出函数。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tbackInOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in action with bouncing effect.\n\t\t!#zh 弹跳效果的缓入函数。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tbounceIn(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing out action with bouncing effect.\n\t\t!#zh 弹跳效果的缓出函数。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tbounceOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Easing in and out action with bouncing effect.\n\t\t!#zh 弹跳效果的缓入缓出函数。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tbounceInOut(t: number): any;\t\t\n\t\t/**\n\t\t!#en Target will run action with smooth effect.\n\t\t!#zh 平滑效果函数。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tsmooth(t: number): any;\t\t\n\t\t/**\n\t\t!#en Target will run action with fade effect.\n\t\t!#zh 渐褪效果函数。\n\t\t@param t The current time as a percentage of the total time. \n\t\t*/\n\t\tfade(t: number): any;\t\n\t}\t\n\t/** undefined */\n\texport class Playable {\t\t\n\t\t/** !#en Is playing or paused in play mode?\n\t\t!#zh 当前是否正在播放。 */\n\t\tisPlaying: boolean;\t\t\n\t\t/** !#en Is currently paused? This can be true even if in edit mode(isPlaying == false).\n\t\t!#zh 当前是否正在暂停 */\n\t\tisPaused: boolean;\t\t\n\t\t/**\n\t\t!#en Play this animation.\n\t\t!#zh 播放动画。 \n\t\t*/\n\t\tplay(): void;\t\t\n\t\t/**\n\t\t!#en Stop this animation.\n\t\t!#zh 停止动画播放。 \n\t\t*/\n\t\tstop(): void;\t\t\n\t\t/**\n\t\t!#en Pause this animation.\n\t\t!#zh 暂停动画。 \n\t\t*/\n\t\tpause(): void;\t\t\n\t\t/**\n\t\t!#en Resume this animation.\n\t\t!#zh 重新播放动画。 \n\t\t*/\n\t\tresume(): void;\t\t\n\t\t/**\n\t\t!#en Perform a single frame step.\n\t\t!#zh 执行一帧动画。 \n\t\t*/\n\t\tstep(): void;\t\n\t}\t\n\t/** !#en Specifies how time is treated when it is outside of the keyframe range of an Animation.\n\t!#zh 动画使用的循环模式。 */\n\texport enum WrapMode {\t\t\n\t\tDefault = 0,\n\t\tNormal = 0,\n\t\tReverse = 0,\n\t\tLoop = 0,\n\t\tLoopReverse = 0,\n\t\tPingPong = 0,\n\t\tPingPongReverse = 0,\t\n\t}\t\n\t/** !#en cc.audioEngine is the singleton object, it provide simple audio APIs.\n\t!#zh\n\tcc.audioengine是单例对象。<br/>\n\t主要用来播放音频，播放的时候会返回一个 audioID，之后都可以通过这个 audioID 来操作这个音频对象。<br/>\n\t不使用的时候，请使用 cc.audioEngine.uncache(filePath); 进行资源释放 <br/>\n\t注意：<br/>\n\t在 Android 系统浏览器上，不同浏览器，不同版本的效果不尽相同。<br/>\n\t比如说：大多数浏览器都需要用户物理交互才可以开始播放音效，有一些不支持 WebAudio，<br/>\n\t有一些不支持多音轨播放。总之如果对音乐依赖比较强，请做尽可能多的测试。 */\n\texport class audioEngine {\t\t\n\t\t/**\n\t\t!#en Play audio.\n\t\t!#zh 播放音频\n\t\t@param clip The audio clip to play.\n\t\t@param loop Whether the music loop or not.\n\t\t@param volume Volume size.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.loader.loadRes(url, cc.AudioClip, function (err, clip) {\n\t\t    var audioID = cc.audioEngine.play(clip, false, 0.5);\n\t\t});\n\t\t``` \n\t\t*/\n\t\tstatic play(clip: AudioClip, loop: boolean, volume: number): number;\t\t\n\t\t/**\n\t\t!#en Set audio loop.\n\t\t!#zh 设置音频是否循环。\n\t\t@param audioID audio id.\n\t\t@param loop Whether cycle.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.setLoop(id, true);\n\t\t``` \n\t\t*/\n\t\tstatic setLoop(audioID: number, loop: boolean): void;\t\t\n\t\t/**\n\t\t!#en Get audio cycle state.\n\t\t!#zh 获取音频的循环状态。\n\t\t@param audioID audio id.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.isLoop(id);\n\t\t``` \n\t\t*/\n\t\tstatic isLoop(audioID: number): boolean;\t\t\n\t\t/**\n\t\t!#en Set the volume of audio.\n\t\t!#zh 设置音量（0.0 ~ 1.0）。\n\t\t@param audioID audio id.\n\t\t@param volume Volume must be in 0.0~1.0 .\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.setVolume(id, 0.5);\n\t\t``` \n\t\t*/\n\t\tstatic setVolume(audioID: number, volume: number): void;\t\t\n\t\t/**\n\t\t!#en The volume of the music max value is 1.0,the min value is 0.0 .\n\t\t!#zh 获取音量（0.0 ~ 1.0）。\n\t\t@param audioID audio id.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar volume = cc.audioEngine.getVolume(id);\n\t\t``` \n\t\t*/\n\t\tstatic getVolume(audioID: number): number;\t\t\n\t\t/**\n\t\t!#en Set current time\n\t\t!#zh 设置当前的音频时间。\n\t\t@param audioID audio id.\n\t\t@param sec current time.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.setCurrentTime(id, 2);\n\t\t``` \n\t\t*/\n\t\tstatic setCurrentTime(audioID: number, sec: number): boolean;\t\t\n\t\t/**\n\t\t!#en Get current time\n\t\t!#zh 获取当前的音频播放时间。\n\t\t@param audioID audio id.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar time = cc.audioEngine.getCurrentTime(id);\n\t\t``` \n\t\t*/\n\t\tstatic getCurrentTime(audioID: number): number;\t\t\n\t\t/**\n\t\t!#en Get audio duration\n\t\t!#zh 获取音频总时长。\n\t\t@param audioID audio id.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar time = cc.audioEngine.getDuration(id);\n\t\t``` \n\t\t*/\n\t\tstatic getDuration(audioID: number): number;\t\t\n\t\t/**\n\t\t!#en Get audio state\n\t\t!#zh 获取音频状态。\n\t\t@param audioID audio id.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar state = cc.audioEngine.getState(id);\n\t\t``` \n\t\t*/\n\t\tstatic getState(audioID: number): audioEngine.AudioState;\t\t\n\t\t/**\n\t\t!#en Set Audio finish callback\n\t\t!#zh 设置一个音频结束后的回调\n\t\t@param audioID audio id.\n\t\t@param callback loaded callback.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.setFinishCallback(id, function () {});\n\t\t``` \n\t\t*/\n\t\tstatic setFinishCallback(audioID: number, callback: Function): void;\t\t\n\t\t/**\n\t\t!#en Pause playing audio.\n\t\t!#zh 暂停正在播放音频。\n\t\t@param audioID The return value of function play.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.pause(audioID);\n\t\t``` \n\t\t*/\n\t\tstatic pause(audioID: number): void;\t\t\n\t\t/**\n\t\t!#en Pause all playing audio\n\t\t!#zh 暂停现在正在播放的所有音频。\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.pauseAll();\n\t\t``` \n\t\t*/\n\t\tstatic pauseAll(): void;\t\t\n\t\t/**\n\t\t!#en Resume playing audio.\n\t\t!#zh 恢复播放指定的音频。\n\t\t@param audioID The return value of function play.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.resume(audioID);\n\t\t``` \n\t\t*/\n\t\tstatic resume(audioID: number): void;\t\t\n\t\t/**\n\t\t!#en Resume all playing audio.\n\t\t!#zh 恢复播放所有之前暂停的所有音频。\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.resumeAll();\n\t\t``` \n\t\t*/\n\t\tstatic resumeAll(): void;\t\t\n\t\t/**\n\t\t!#en Stop playing audio.\n\t\t!#zh 停止播放指定音频。\n\t\t@param audioID The return value of function play.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.stop(audioID);\n\t\t``` \n\t\t*/\n\t\tstatic stop(audioID: number): void;\t\t\n\t\t/**\n\t\t!#en Stop all playing audio.\n\t\t!#zh 停止正在播放的所有音频。\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.stopAll();\n\t\t``` \n\t\t*/\n\t\tstatic stopAll(): void;\t\t\n\t\t/**\n\t\t!#en Set up an audio can generate a few examples.\n\t\t!#zh 设置一个音频可以设置几个实例\n\t\t@param num a number of instances to be created from within an audio\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.setMaxAudioInstance(20);\n\t\t``` \n\t\t*/\n\t\tstatic setMaxAudioInstance(num: number): void;\t\t\n\t\t/**\n\t\t!#en Getting audio can produce several examples.\n\t\t!#zh 获取一个音频可以设置几个实例\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.getMaxAudioInstance();\n\t\t``` \n\t\t*/\n\t\tstatic getMaxAudioInstance(): number;\t\t\n\t\t/**\n\t\t!#en Unload the preloaded audio from internal buffer.\n\t\t!#zh 卸载预加载的音频。\n\t\t@param clip clip\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.uncache(filePath);\n\t\t``` \n\t\t*/\n\t\tstatic uncache(clip: AudioClip): void;\t\t\n\t\t/**\n\t\t!#en Unload all audio from internal buffer.\n\t\t!#zh 卸载所有音频。\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.uncacheAll();\n\t\t``` \n\t\t*/\n\t\tstatic uncacheAll(): void;\t\t\n\t\t/**\n\t\t!#en Preload audio file.\n\t\t!#zh 预加载一个音频\n\t\t@param filePath The file path of an audio.\n\t\t@param callback The callback of an audio.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.preload(path);\n\t\t``` \n\t\t*/\n\t\tstatic preload(filePath: string, callback?: Function): void;\t\t\n\t\t/**\n\t\t!#en Set a size, the unit is KB. Over this size is directly resolved into DOM nodes.\n\t\t!#zh 设置一个以 KB 为单位的尺寸，大于这个尺寸的音频在加载的时候会强制使用 dom 方式加载\n\t\t@param kb The file path of an audio.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.setMaxWebAudioSize(300);\n\t\t``` \n\t\t*/\n\t\tstatic setMaxWebAudioSize(kb: number): void;\t\t\n\t\t/**\n\t\t!#en Play background music\n\t\t!#zh 播放背景音乐\n\t\t@param clip The audio clip to play.\n\t\t@param loop Whether the music loop or not.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.loader.loadRes(url, cc.AudioClip, function (err, clip) {\n\t\t    var audioID = cc.audioEngine.playMusic(clip, false);\n\t\t});\n\t\t``` \n\t\t*/\n\t\tstatic playMusic(clip: AudioClip, loop: boolean): number;\t\t\n\t\t/**\n\t\t!#en Stop background music.\n\t\t!#zh 停止播放背景音乐。\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.stopMusic();\n\t\t``` \n\t\t*/\n\t\tstatic stopMusic(): void;\t\t\n\t\t/**\n\t\t!#en Pause the background music.\n\t\t!#zh 暂停播放背景音乐。\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.pauseMusic();\n\t\t``` \n\t\t*/\n\t\tstatic pauseMusic(): void;\t\t\n\t\t/**\n\t\t!#en Resume playing background music.\n\t\t!#zh 恢复播放背景音乐。\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.resumeMusic();\n\t\t``` \n\t\t*/\n\t\tstatic resumeMusic(): void;\t\t\n\t\t/**\n\t\t!#en Get the volume(0.0 ~ 1.0).\n\t\t!#zh 获取音量（0.0 ~ 1.0）。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar volume = cc.audioEngine.getMusicVolume();\n\t\t``` \n\t\t*/\n\t\tstatic getMusicVolume(): number;\t\t\n\t\t/**\n\t\t!#en Set the background music volume.\n\t\t!#zh 设置背景音乐音量（0.0 ~ 1.0）。\n\t\t@param volume Volume must be in 0.0~1.0.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.setMusicVolume(0.5);\n\t\t``` \n\t\t*/\n\t\tstatic setMusicVolume(volume: number): void;\t\t\n\t\t/**\n\t\t!#en Background music playing state\n\t\t!#zh 背景音乐是否正在播放\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.isMusicPlaying();\n\t\t``` \n\t\t*/\n\t\tstatic isMusicPlaying(): boolean;\t\t\n\t\t/**\n\t\t!#en Play effect audio.\n\t\t!#zh 播放音效\n\t\t@param clip The audio clip to play.\n\t\t@param loop Whether the music loop or not.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.loader.loadRes(url, cc.AudioClip, function (err, clip) {\n\t\t    var audioID = cc.audioEngine.playEffect(clip, false);\n\t\t});\n\t\t``` \n\t\t*/\n\t\tstatic playEffect(clip: AudioClip, loop: boolean): number;\t\t\n\t\t/**\n\t\t!#en Set the volume of effect audio.\n\t\t!#zh 设置音效音量（0.0 ~ 1.0）。\n\t\t@param volume Volume must be in 0.0~1.0.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.setEffectsVolume(0.5);\n\t\t``` \n\t\t*/\n\t\tstatic setEffectsVolume(volume: number): void;\t\t\n\t\t/**\n\t\t!#en The volume of the effect audio max value is 1.0,the min value is 0.0 .\n\t\t!#zh 获取音效音量（0.0 ~ 1.0）。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar volume = cc.audioEngine.getEffectsVolume();\n\t\t``` \n\t\t*/\n\t\tstatic getEffectsVolume(): number;\t\t\n\t\t/**\n\t\t!#en Pause effect audio.\n\t\t!#zh 暂停播放音效。\n\t\t@param audioID audio id.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.pauseEffect(audioID);\n\t\t``` \n\t\t*/\n\t\tstatic pauseEffect(audioID: number): void;\t\t\n\t\t/**\n\t\t!#en Stop playing all the sound effects.\n\t\t!#zh 暂停播放所有音效。\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.pauseAllEffects();\n\t\t``` \n\t\t*/\n\t\tstatic pauseAllEffects(): void;\t\t\n\t\t/**\n\t\t!#en Resume effect audio.\n\t\t!#zh 恢复播放音效音频。\n\t\t@param audioID The return value of function play.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.resumeEffect(audioID);\n\t\t``` \n\t\t*/\n\t\tstatic resumeEffect(audioID: number): void;\t\t\n\t\t/**\n\t\t!#en Resume all effect audio.\n\t\t!#zh 恢复播放所有之前暂停的音效。\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.resumeAllEffects();\n\t\t``` \n\t\t*/\n\t\tstatic resumeAllEffects(): void;\t\t\n\t\t/**\n\t\t!#en Stop playing the effect audio.\n\t\t!#zh 停止播放音效。\n\t\t@param audioID audio id.\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.stopEffect(id);\n\t\t``` \n\t\t*/\n\t\tstatic stopEffect(audioID: number): void;\t\t\n\t\t/**\n\t\t!#en Stop playing all the effects.\n\t\t!#zh 停止播放所有音效。\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.audioEngine.stopAllEffects();\n\t\t``` \n\t\t*/\n\t\tstatic stopAllEffects(): void;\t\n\t}\t\n\t/** !#en cc.VideoPlayer is a component for playing videos, you can use it for showing videos in your game. Because different platforms have different authorization, API and control methods for VideoPlayer component. And have not yet formed a unified standard, only Web, iOS, and Android platforms are currently supported.\n\t!#zh Video 组件，用于在游戏中播放视频。由于不同平台对于 VideoPlayer 组件的授权、API、控制方式都不同，还没有形成统一的标准，所以目前只支持 Web、iOS 和 Android 平台。 */\n\texport class VideoPlayer extends Component {\t\t\n\t\t/** !#en The resource type of videoplayer, REMOTE for remote url and LOCAL for local file path.\n\t\t!#zh 视频来源：REMOTE 表示远程视频 URL，LOCAL 表示本地视频地址。 */\n\t\tresourceType: VideoPlayer.ResourceType;\t\t\n\t\t/** !#en The remote URL of video.\n\t\t!#zh 远程视频的 URL */\n\t\tremoteURL: string;\t\t\n\t\t/** !#en The local video full path.\n\t\t!#zh 本地视频的 URL */\n\t\tclip: string;\t\t\n\t\t/** !#en The current playback time of the now playing item in seconds, you could also change the start playback time.\n\t\t!#zh 指定视频从什么时间点开始播放，单位是秒，也可以用来获取当前视频播放的时间进度。 */\n\t\tcurrentTime: number;\t\t\n\t\t/** !#en The volume of the video.\n\t\t!#zh 视频的音量（0.0 ~ 1.0） */\n\t\tvolume: number;\t\t\n\t\t/** !#en Mutes the VideoPlayer. Mute sets the volume=0, Un-Mute restore the original volume.\n\t\t!#zh 是否静音视频。静音时设置音量为 0，取消静音是恢复原来的音量。 */\n\t\tmute: boolean;\t\t\n\t\t/** !#en Whether keep the aspect ration of the original video.\n\t\t!#zh 是否保持视频原来的宽高比 */\n\t\tkeepAspectRatio: boolean;\t\t\n\t\t/** !#en Whether play video in fullscreen mode.\n\t\t!#zh 是否全屏播放视频 */\n\t\tisFullscreen: boolean;\t\t\n\t\t/** !#en the video player's callback, it will be triggered when certain event occurs, like: playing, paused, stopped and completed.\n\t\t!#zh 视频播放回调函数，该回调函数会在特定情况被触发，比如播放中，暂时，停止和完成播放。 */\n\t\tvideoPlayerEvent: Component.EventHandler[];\t\t\n\t\t/**\n\t\t!#en If a video is paused, call this method could resume playing. If a video is stopped, call this method to play from scratch.\n\t\t!#zh 如果视频被暂停播放了，调用这个接口可以继续播放。如果视频被停止播放了，调用这个接口可以从头开始播放。 \n\t\t*/\n\t\tplay(): void;\t\t\n\t\t/**\n\t\t!#en If a video is paused, call this method to resume playing.\n\t\t!#zh 如果一个视频播放被暂停播放了，调用这个接口可以继续播放。 \n\t\t*/\n\t\tresume(): void;\t\t\n\t\t/**\n\t\t!#en If a video is playing, call this method to pause playing.\n\t\t!#zh 如果一个视频正在播放，调用这个接口可以暂停播放。 \n\t\t*/\n\t\tpause(): void;\t\t\n\t\t/**\n\t\t!#en If a video is playing, call this method to stop playing immediately.\n\t\t!#zh 如果一个视频正在播放，调用这个接口可以立马停止播放。 \n\t\t*/\n\t\tstop(): void;\t\t\n\t\t/**\n\t\t!#en Gets the duration of the video\n\t\t!#zh 获取视频文件的播放总时长 \n\t\t*/\n\t\tgetDuration(): number;\t\t\n\t\t/**\n\t\t!#en Determine whether video is playing or not.\n\t\t!#zh 判断当前视频是否处于播放状态 \n\t\t*/\n\t\tisPlaying(): boolean;\t\t\n\t\t/**\n\t\t!#en if you don't need the VideoPlayer and it isn't in any running Scene, you should\n\t\tcall the destroy method on this component or the associated node explicitly.\n\t\tOtherwise, the created DOM element won't be removed from web page.\n\t\t!#zh\n\t\t如果你不再使用 VideoPlayer，并且组件未添加到场景中，那么你必须手动对组件或所在节点调用 destroy。\n\t\t这样才能移除网页上的 DOM 节点，避免 Web 平台内存泄露。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvideoplayer.node.parent = null;  // or  videoplayer.node.removeFromParent(false);\n\t\t// when you don't need videoplayer anymore\n\t\tvideoplayer.node.destroy();\n\t\t``` \n\t\t*/\n\t\tdestroy(): boolean;\t\n\t}\t\n\t/** !#en cc.WebView is a component for display web pages in the game. Because different platforms have different authorization, API and control methods for WebView component. And have not yet formed a unified standard, only Web, iOS, and Android platforms are currently supported.\n\t!#zh WebView 组件，用于在游戏中显示网页。由于不同平台对于 WebView 组件的授权、API、控制方式都不同，还没有形成统一的标准，所以目前只支持 Web、iOS 和 Android 平台。 */\n\texport class WebView extends Component {\t\t\n\t\t/** !#en A given URL to be loaded by the WebView, it should have a http or https prefix.\n\t\t!#zh 指定 WebView 加载的网址，它应该是一个 http 或者 https 开头的字符串 */\n\t\turl: string;\t\t\n\t\t/** !#en The webview's event callback , it will be triggered when certain webview event occurs.\n\t\t!#zh WebView 的回调事件，当网页加载过程中，加载完成后或者加载出错时都会回调此函数 */\n\t\twebviewLoadedEvents: Component.EventHandler[];\t\t\n\t\t/**\n\t\t!#en\n\t\tSet javascript interface scheme (see also setOnJSCallback). <br/>\n\t\tNote: Supports only on the Android and iOS. For HTML5, please refer to the official documentation.<br/>\n\t\tPlease refer to the official documentation for more details.\n\t\t!#zh\n\t\t设置 JavaScript 接口方案（与 'setOnJSCallback' 配套使用）。<br/>\n\t\t注意：只支持 Android 和 iOS ，Web 端用法请前往官方文档查看。<br/>\n\t\t详情请参阅官方文档\n\t\t@param scheme scheme \n\t\t*/\n\t\tsetJavascriptInterfaceScheme(scheme: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tThis callback called when load URL that start with javascript\n\t\tinterface scheme (see also setJavascriptInterfaceScheme). <br/>\n\t\tNote: Supports only on the Android and iOS. For HTML5, please refer to the official documentation.<br/>\n\t\tPlease refer to the official documentation for more details.\n\t\t!#zh\n\t\t当加载 URL 以 JavaScript 接口方案开始时调用这个回调函数。<br/>\n\t\t注意：只支持 Android 和 iOS，Web 端用法请前往官方文档查看。\n\t\t详情请参阅官方文档\n\t\t@param callback callback \n\t\t*/\n\t\tsetOnJSCallback(callback: Function): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tEvaluates JavaScript in the context of the currently displayed page. <br/>\n\t\tPlease refer to the official document for more details <br/>\n\t\tNote: Cross domain issues need to be resolved by yourself <br/>\n\t\t!#zh\n\t\t执行 WebView 内部页面脚本（详情请参阅官方文档） <br/>\n\t\t注意：需要自行解决跨域问题\n\t\t@param str str \n\t\t*/\n\t\tevaluateJS(str: string): void;\t\t\n\t\t/**\n\t\t!#en if you don't need the WebView and it isn't in any running Scene, you should\n\t\tcall the destroy method on this component or the associated node explicitly.\n\t\tOtherwise, the created DOM element won't be removed from web page.\n\t\t!#zh\n\t\t如果你不再使用 WebView，并且组件未添加到场景中，那么你必须手动对组件或所在节点调用 destroy。\n\t\t这样才能移除网页上的 DOM 节点，避免 Web 平台内存泄露。\n\t\t\n\t\t@example \n\t\t```js\n\t\twebview.node.parent = null;  // or  webview.node.removeFromParent(false);\n\t\t// when you don't need webview anymore\n\t\twebview.node.destroy();\n\t\t``` \n\t\t*/\n\t\tdestroy(): boolean;\t\n\t}\t\n\t/** Class for particle asset handling. */\n\texport class ParticleAsset extends Asset {\t\n\t}\t\n\t/** Particle System base class. <br/>\n\tAttributes of a Particle System:<br/>\n\t - emmision rate of the particles<br/>\n\t - Gravity Mode (Mode A): <br/>\n\t - gravity <br/>\n\t - direction <br/>\n\t - speed +-  variance <br/>\n\t - tangential acceleration +- variance<br/>\n\t - radial acceleration +- variance<br/>\n\t - Radius Mode (Mode B):      <br/>\n\t - startRadius +- variance    <br/>\n\t - endRadius +- variance      <br/>\n\t - rotate +- variance         <br/>\n\t - Properties common to all modes: <br/>\n\t - life +- life variance      <br/>\n\t - start spin +- variance     <br/>\n\t - end spin +- variance       <br/>\n\t - start size +- variance     <br/>\n\t - end size +- variance       <br/>\n\t - start color +- variance    <br/>\n\t - end color +- variance      <br/>\n\t - life +- variance           <br/>\n\t - blending function          <br/>\n\t - texture                    <br/>\n\t<br/>\n\tcocos2d also supports particles generated by Particle Designer (http://particledesigner.71squared.com/).<br/>\n\t'Radius Mode' in Particle Designer uses a fixed emit rate of 30 hz. Since that can't be guarateed in cocos2d,  <br/>\n\tcocos2d uses a another approach, but the results are almost identical.<br/>\n\tcocos2d supports all the variables used by Particle Designer plus a bit more:  <br/>\n\t - spinning particles (supported when using ParticleSystem)       <br/>\n\t - tangential acceleration (Gravity mode)                               <br/>\n\t - radial acceleration (Gravity mode)                                   <br/>\n\t - radius direction (Radius mode) (Particle Designer supports outwards to inwards direction only) <br/>\n\tIt is possible to customize any of the above mentioned properties in runtime. Example:   <br/> */\n\texport class ParticleSystem extends RenderComponent {\t\t\n\t\t/** !#en Play particle in edit mode.\n\t\t!#zh 在编辑器模式下预览粒子，启用后选中粒子时，粒子将自动播放。 */\n\t\tpreview: boolean;\t\t\n\t\t/** !#en\n\t\tIf set custom to true, then use custom properties insteadof read particle file.\n\t\t!#zh 是否自定义粒子属性。 */\n\t\tcustom: boolean;\t\t\n\t\t/** !#en The plist file.\n\t\t!#zh plist 格式的粒子配置文件。 */\n\t\tfile: string;\t\t\n\t\t/** !#en SpriteFrame used for particles display\n\t\t!#zh 用于粒子呈现的 SpriteFrame */\n\t\tspriteFrame: SpriteFrame;\t\t\n\t\t/** !#en Texture of Particle System, readonly, please use spriteFrame to setup new texture。\n\t\t!#zh 粒子贴图，只读属性，请使用 spriteFrame 属性来替换贴图。 */\n\t\ttexture: string;\t\t\n\t\t/** !#en Current quantity of particles that are being simulated.\n\t\t!#zh 当前播放的粒子数量。 */\n\t\tparticleCount: number;\t\t\n\t\t/** !#en Indicate whether the system simulation have stopped.\n\t\t!#zh 指示粒子播放是否完毕。 */\n\t\tstopped: boolean;\t\t\n\t\t/** !#en If set to true, the particle system will automatically start playing on onLoad.\n\t\t!#zh 如果设置为 true 运行时会自动发射粒子。 */\n\t\tplayOnLoad: boolean;\t\t\n\t\t/** !#en Indicate whether the owner node will be auto-removed when it has no particles left.\n\t\t!#zh 粒子播放完毕后自动销毁所在的节点。 */\n\t\tautoRemoveOnFinish: boolean;\t\t\n\t\t/** !#en Indicate whether the particle system is activated.\n\t\t!#zh 是否激活粒子。 */\n\t\tactive: boolean;\t\t\n\t\t/** !#en Maximum particles of the system.\n\t\t!#zh 粒子最大数量。 */\n\t\ttotalParticles: number;\t\t\n\t\t/** !#en How many seconds the emitter wil run. -1 means 'forever'.\n\t\t!#zh 发射器生存时间，单位秒，-1表示持续发射。 */\n\t\tduration: number;\t\t\n\t\t/** !#en Emission rate of the particles.\n\t\t!#zh 每秒发射的粒子数目。 */\n\t\temissionRate: number;\t\t\n\t\t/** !#en Life of each particle setter.\n\t\t!#zh 粒子的运行时间。 */\n\t\tlife: number;\t\t\n\t\t/** !#en Variation of life.\n\t\t!#zh 粒子的运行时间变化范围。 */\n\t\tlifeVar: number;\t\t\n\t\t/** !#en Start color of each particle.\n\t\t!#zh 粒子初始颜色。 */\n\t\tstartColor: Color;\t\t\n\t\t/** !#en Variation of the start color.\n\t\t!#zh 粒子初始颜色变化范围。 */\n\t\tstartColorVar: Color;\t\t\n\t\t/** !#en Ending color of each particle.\n\t\t!#zh 粒子结束颜色。 */\n\t\tendColor: Color;\t\t\n\t\t/** !#en Variation of the end color.\n\t\t!#zh 粒子结束颜色变化范围。 */\n\t\tendColorVar: Color;\t\t\n\t\t/** !#en Angle of each particle setter.\n\t\t!#zh 粒子角度。 */\n\t\tangle: number;\t\t\n\t\t/** !#en Variation of angle of each particle setter.\n\t\t!#zh 粒子角度变化范围。 */\n\t\tangleVar: number;\t\t\n\t\t/** !#en Start size in pixels of each particle.\n\t\t!#zh 粒子的初始大小。 */\n\t\tstartSize: number;\t\t\n\t\t/** !#en Variation of start size in pixels.\n\t\t!#zh 粒子初始大小的变化范围。 */\n\t\tstartSizeVar: number;\t\t\n\t\t/** !#en End size in pixels of each particle.\n\t\t!#zh 粒子结束时的大小。 */\n\t\tendSize: number;\t\t\n\t\t/** !#en Variation of end size in pixels.\n\t\t!#zh 粒子结束大小的变化范围。 */\n\t\tendSizeVar: number;\t\t\n\t\t/** !#en Start angle of each particle.\n\t\t!#zh 粒子开始自旋角度。 */\n\t\tstartSpin: number;\t\t\n\t\t/** !#en Variation of start angle.\n\t\t!#zh 粒子开始自旋角度变化范围。 */\n\t\tstartSpinVar: number;\t\t\n\t\t/** !#en End angle of each particle.\n\t\t!#zh 粒子结束自旋角度。 */\n\t\tendSpin: number;\t\t\n\t\t/** !#en Variation of end angle.\n\t\t!#zh 粒子结束自旋角度变化范围。 */\n\t\tendSpinVar: number;\t\t\n\t\t/** !#en Source position of the emitter.\n\t\t!#zh 发射器位置。 */\n\t\tsourcePos: Vec2;\t\t\n\t\t/** !#en Variation of source position.\n\t\t!#zh 发射器位置的变化范围。（横向和纵向） */\n\t\tposVar: Vec2;\t\t\n\t\t/** !#en Particles movement type.\n\t\t!#zh 粒子位置类型。 */\n\t\tpositionType: ParticleSystem.PositionType;\t\t\n\t\t/** !#en Particles emitter modes.\n\t\t!#zh 发射器类型。 */\n\t\temitterMode: ParticleSystem.EmitterMode;\t\t\n\t\t/** !#en Gravity of the emitter.\n\t\t!#zh 重力。 */\n\t\tgravity: Vec2;\t\t\n\t\t/** !#en Speed of the emitter.\n\t\t!#zh 速度。 */\n\t\tspeed: number;\t\t\n\t\t/** !#en Variation of the speed.\n\t\t!#zh 速度变化范围。 */\n\t\tspeedVar: number;\t\t\n\t\t/** !#en Tangential acceleration of each particle. Only available in 'Gravity' mode.\n\t\t!#zh 每个粒子的切向加速度，即垂直于重力方向的加速度，只有在重力模式下可用。 */\n\t\ttangentialAccel: number;\t\t\n\t\t/** !#en Variation of the tangential acceleration.\n\t\t!#zh 每个粒子的切向加速度变化范围。 */\n\t\ttangentialAccelVar: number;\t\t\n\t\t/** !#en Acceleration of each particle. Only available in 'Gravity' mode.\n\t\t!#zh 粒子径向加速度，即平行于重力方向的加速度，只有在重力模式下可用。 */\n\t\tradialAccel: number;\t\t\n\t\t/** !#en Variation of the radial acceleration.\n\t\t!#zh 粒子径向加速度变化范围。 */\n\t\tradialAccelVar: number;\t\t\n\t\t/** !#en Indicate whether the rotation of each particle equals to its direction. Only available in 'Gravity' mode.\n\t\t!#zh 每个粒子的旋转是否等于其方向，只有在重力模式下可用。 */\n\t\trotationIsDir: boolean;\t\t\n\t\t/** !#en Starting radius of the particles. Only available in 'Radius' mode.\n\t\t!#zh 初始半径，表示粒子出生时相对发射器的距离，只有在半径模式下可用。 */\n\t\tstartRadius: number;\t\t\n\t\t/** !#en Variation of the starting radius.\n\t\t!#zh 初始半径变化范围。 */\n\t\tstartRadiusVar: number;\t\t\n\t\t/** !#en Ending radius of the particles. Only available in 'Radius' mode.\n\t\t!#zh 结束半径，只有在半径模式下可用。 */\n\t\tendRadius: number;\t\t\n\t\t/** !#en Variation of the ending radius.\n\t\t!#zh 结束半径变化范围。 */\n\t\tendRadiusVar: number;\t\t\n\t\t/** !#en Number of degress to rotate a particle around the source pos per second. Only available in 'Radius' mode.\n\t\t!#zh 粒子每秒围绕起始点的旋转角度，只有在半径模式下可用。 */\n\t\trotatePerS: number;\t\t\n\t\t/** !#en Variation of the degress to rotate a particle around the source pos per second.\n\t\t!#zh 粒子每秒围绕起始点的旋转角度变化范围。 */\n\t\trotatePerSVar: number;\t\t\n\t\t/** !#en The Particle emitter lives forever.\n\t\t!#zh 表示发射器永久存在 */\n\t\tstatic DURATION_INFINITY: number;\t\t\n\t\t/** !#en The starting size of the particle is equal to the ending size.\n\t\t!#zh 表示粒子的起始大小等于结束大小。 */\n\t\tstatic START_SIZE_EQUAL_TO_END_SIZE: number;\t\t\n\t\t/** !#en The starting radius of the particle is equal to the ending radius.\n\t\t!#zh 表示粒子的起始半径等于结束半径。 */\n\t\tstatic START_RADIUS_EQUAL_TO_END_RADIUS: number;\t\t\n\t\t/**\n\t\t!#en Stop emitting particles. Running particles will continue to run until they die.\n\t\t!#zh 停止发射器发射粒子，发射出去的粒子将继续运行，直至粒子生命结束。\n\t\t\n\t\t@example \n\t\t```js\n\t\t// stop particle system.\n\t\tmyParticleSystem.stopSystem();\n\t\t``` \n\t\t*/\n\t\tstopSystem(): void;\t\t\n\t\t/**\n\t\t!#en Kill all living particles.\n\t\t!#zh 杀死所有存在的粒子，然后重新启动粒子发射器。\n\t\t\n\t\t@example \n\t\t```js\n\t\t// play particle system.\n\t\tmyParticleSystem.resetSystem();\n\t\t``` \n\t\t*/\n\t\tresetSystem(): void;\t\t\n\t\t/**\n\t\t!#en Whether or not the system is full.\n\t\t!#zh 发射器中粒子是否大于等于设置的总粒子数量。 \n\t\t*/\n\t\tisFull(): boolean;\t\t\n\t\t/**\n\t\t!#en Sets a new texture with a rect. The rect is in texture position and size.\n\t\tPlease use spriteFrame property instead, this function is deprecated since v1.9\n\t\t!#zh 设置一张新贴图和关联的矩形。\n\t\t请直接设置 spriteFrame 属性，这个函数从 v1.9 版本开始已经被废弃\n\t\t@param texture texture\n\t\t@param rect rect \n\t\t*/\n\t\tsetTextureWithRect(texture: Texture2D, rect: Rect): void;\t\n\t}\t\n\t/** !#en\n\t<p>\n\t   ATTENTION: USE cc.director INSTEAD OF cc.Director.<br/>\n\t   cc.director is a singleton object which manage your game's logic flow.<br/>\n\t   Since the cc.director is a singleton, you don't need to call any constructor or create functions,<br/>\n\t   the standard way to use it is by calling:<br/>\n\t     - cc.director.methodName(); <br/>\n\t\n\t   It creates and handle the main Window and manages how and when to execute the Scenes.<br/>\n\t   <br/>\n\t   The cc.director is also responsible for:<br/>\n\t     - initializing the OpenGL context<br/>\n\t     - setting the OpenGL pixel format (default on is RGB565)<br/>\n\t     - setting the OpenGL buffer depth (default on is 0-bit)<br/>\n\t     - setting the color for clear screen (default one is BLACK)<br/>\n\t     - setting the projection (default one is 3D)<br/>\n\t     - setting the orientation (default one is Portrait)<br/>\n\t     <br/>\n\t   <br/>\n\t   The cc.director also sets the default OpenGL context:<br/>\n\t     - GL_TEXTURE_2D is enabled<br/>\n\t     - GL_VERTEX_ARRAY is enabled<br/>\n\t     - GL_COLOR_ARRAY is enabled<br/>\n\t     - GL_TEXTURE_COORD_ARRAY is enabled<br/>\n\t</p>\n\t<p>\n\t  cc.director also synchronizes timers with the refresh rate of the display.<br/>\n\t  Features and Limitations:<br/>\n\t     - Scheduled timers & drawing are synchronizes with the refresh rate of the display<br/>\n\t     - Only supports animation intervals of 1/60 1/30 & 1/15<br/>\n\t</p>\n\t\n\t!#zh\n\t<p>\n\t    注意：用 cc.director 代替 cc.Director。<br/>\n\t    cc.director 一个管理你的游戏的逻辑流程的单例对象。<br/>\n\t    由于 cc.director 是一个单例，你不需要调用任何构造函数或创建函数，<br/>\n\t    使用它的标准方法是通过调用：<br/>\n\t      - cc.director.methodName();\n\t    <br/>\n\t    它创建和处理主窗口并且管理什么时候执行场景。<br/>\n\t    <br/>\n\t    cc.director 还负责：<br/>\n\t     - 初始化 OpenGL 环境。<br/>\n\t     - 设置OpenGL像素格式。(默认是 RGB565)<br/>\n\t     - 设置OpenGL缓冲区深度 (默认是 0-bit)<br/>\n\t     - 设置空白场景的颜色 (默认是 黑色)<br/>\n\t     - 设置投影 (默认是 3D)<br/>\n\t     - 设置方向 (默认是 Portrait)<br/>\n\t   <br/>\n\t   cc.director 设置了 OpenGL 默认环境 <br/>\n\t     - GL_TEXTURE_2D   启用。<br/>\n\t     - GL_VERTEX_ARRAY 启用。<br/>\n\t     - GL_COLOR_ARRAY  启用。<br/>\n\t     - GL_TEXTURE_COORD_ARRAY 启用。<br/>\n\t</p>\n\t<p>\n\t  cc.director 也同步定时器与显示器的刷新速率。\n\t  <br/>\n\t  特点和局限性: <br/>\n\t     - 将计时器 & 渲染与显示器的刷新频率同步。<br/>\n\t     - 只支持动画的间隔 1/60 1/30 & 1/15。<br/>\n\t</p> */\n\texport class Director extends EventTarget {\t\t\n\t\t/**\n\t\t!#en\n\t\tConverts a view coordinate to an WebGL coordinate<br/>\n\t\tUseful to convert (multi) touches coordinates to the current layout (portrait or landscape)<br/>\n\t\tImplementation can be found in CCDirectorWebGL.\n\t\t!#zh 将触摸点的屏幕坐标转换为 WebGL View 下的坐标。\n\t\t@param uiPoint uiPoint \n\t\t*/\n\t\tconvertToGL(uiPoint: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tConverts an OpenGL coordinate to a view coordinate<br/>\n\t\tUseful to convert node points to window points for calls such as glScissor<br/>\n\t\tImplementation can be found in CCDirectorWebGL.\n\t\t!#zh 将触摸点的 WebGL View 坐标转换为屏幕坐标。\n\t\t@param glPoint glPoint \n\t\t*/\n\t\tconvertToUI(glPoint: Vec2): Vec2;\t\t\n\t\t/**\n\t\tEnd the life of director in the next frame \n\t\t*/\n\t\tend(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the size of the WebGL view in points.<br/>\n\t\tIt takes into account any possible rotation (device orientation) of the window.\n\t\t!#zh 获取视图的大小，以点为单位。 \n\t\t*/\n\t\tgetWinSize(): Size;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the size of the OpenGL view in pixels.<br/>\n\t\tIt takes into account any possible rotation (device orientation) of the window.<br/>\n\t\tOn Mac winSize and winSizeInPixels return the same value.\n\t\t(The pixel here refers to the resource resolution. If you want to get the physics resolution of device, you need to use cc.view.getFrameSize())\n\t\t!#zh\n\t\t获取视图大小，以像素为单位（这里的像素指的是资源分辨率。\n\t\t如果要获取屏幕物理分辨率，需要用 cc.view.getFrameSize()） \n\t\t*/\n\t\tgetWinSizeInPixels(): Size;\t\t\n\t\t/**\n\t\t!#en Pause the director's ticker, only involve the game logic execution.\n\t\tIt won't pause the rendering process nor the event manager.\n\t\tIf you want to pause the entier game including rendering, audio and event,\n\t\tplease use {{#crossLink \"Game.pause\"}}cc.game.pause{{/crossLink}}\n\t\t!#zh 暂停正在运行的场景，该暂停只会停止游戏逻辑执行，但是不会停止渲染和 UI 响应。\n\t\t如果想要更彻底得暂停游戏，包含渲染，音频和事件，请使用 {{#crossLink \"Game.pause\"}}cc.game.pause{{/crossLink}}。 \n\t\t*/\n\t\tpause(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRun a scene. Replaces the running scene with a new one or enter the first scene.<br/>\n\t\tThe new scene will be launched immediately.\n\t\t!#zh 立刻切换指定场景。\n\t\t@param scene The need run scene.\n\t\t@param onBeforeLoadScene The function invoked at the scene before loading.\n\t\t@param onLaunched The function invoked at the scene after launch. \n\t\t*/\n\t\trunSceneImmediate(scene: Scene, onBeforeLoadScene?: Function, onLaunched?: Function): void;\t\t\n\t\t/**\n\t\t!#en Loads the scene by its name.\n\t\t!#zh 通过场景名称进行加载场景。\n\t\t@param sceneName The name of the scene to load.\n\t\t@param onLaunched callback, will be called after scene launched. \n\t\t*/\n\t\tloadScene(sceneName: string, onLaunched?: Function): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tPreloads the scene to reduces loading time. You can call this method at any time you want.\n\t\tAfter calling this method, you still need to launch the scene by `cc.director.loadScene`.\n\t\tIt will be totally fine to call `cc.director.loadScene` at any time even if the preloading is not\n\t\tyet finished, the scene will be launched after loaded automatically.\n\t\t!#zh 预加载场景，你可以在任何时候调用这个方法。\n\t\t调用完后，你仍然需要通过 `cc.director.loadScene` 来启动场景，因为这个方法不会执行场景加载操作。\n\t\t就算预加载还没完成，你也可以直接调用 `cc.director.loadScene`，加载完成后场景就会启动。\n\t\t@param sceneName The name of the scene to preload.\n\t\t@param onProgress callback, will be called when the load progression change.\n\t\t@param onLoaded callback, will be called after scene loaded. \n\t\t*/\n\t\tpreloadScene(sceneName: string, onProgress?: (completedCount: number, totalCount: number, item: any) => void, onLoaded?: (error: Error, asset: SceneAsset) => void): void;\t\t\n\t\t/**\n\t\t!#en Resume game logic execution after pause, if the current scene is not paused, nothing will happen.\n\t\t!#zh 恢复暂停场景的游戏逻辑，如果当前场景没有暂停将没任何事情发生。 \n\t\t*/\n\t\tresume(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tEnables or disables WebGL depth test.<br/>\n\t\tImplementation can be found in CCDirectorCanvas.js/CCDirectorWebGL.js\n\t\t!#zh 启用/禁用深度测试（在 Canvas 渲染模式下不会生效）。\n\t\t@param on on \n\t\t*/\n\t\tsetDepthTest(on: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSet color for clear screen.<br/>\n\t\t(Implementation can be found in CCDirectorCanvas.js/CCDirectorWebGL.js)\n\t\t!#zh\n\t\t设置场景的默认擦除颜色。<br/>\n\t\t支持全透明，但不支持透明度为中间值。要支持全透明需手工开启 cc.macro.ENABLE_TRANSPARENT_CANVAS。\n\t\t@param clearColor clearColor \n\t\t*/\n\t\tsetClearColor(clearColor: Color): void;\t\t\n\t\t/**\n\t\t!#en Returns current logic Scene.\n\t\t!#zh 获取当前逻辑场景。\n\t\t\n\t\t@example \n\t\t```js\n\t\t// This will help you to get the Canvas node in scene\n\t\t cc.director.getScene().getChildByName('Canvas');\n\t\t``` \n\t\t*/\n\t\tgetScene(): Scene;\t\t\n\t\t/**\n\t\t!#en Returns the FPS value. Please use {{#crossLink \"Game.setFrameRate\"}}cc.game.setFrameRate{{/crossLink}} to control animation interval.\n\t\t!#zh 获取单位帧执行时间。请使用 {{#crossLink \"Game.setFrameRate\"}}cc.game.setFrameRate{{/crossLink}} 来控制游戏帧率。 \n\t\t*/\n\t\tgetAnimationInterval(): number;\t\t\n\t\t/**\n\t\tSets animation interval, this doesn't control the main loop.\n\t\tTo control the game's frame rate overall, please use {{#crossLink \"Game.setFrameRate\"}}cc.game.setFrameRate{{/crossLink}}\n\t\t@param value The animation interval desired. \n\t\t*/\n\t\tsetAnimationInterval(value: number): void;\t\t\n\t\t/**\n\t\t!#en Returns the delta time since last frame.\n\t\t!#zh 获取上一帧的增量时间。 \n\t\t*/\n\t\tgetDeltaTime(): number;\t\t\n\t\t/**\n\t\t!#en Returns how many frames were called since the director started.\n\t\t!#zh 获取 director 启动以来游戏运行的总帧数。 \n\t\t*/\n\t\tgetTotalFrames(): number;\t\t\n\t\t/**\n\t\t!#en Returns whether or not the Director is paused.\n\t\t!#zh 是否处于暂停状态。 \n\t\t*/\n\t\tisPaused(): boolean;\t\t\n\t\t/**\n\t\t!#en Returns the cc.Scheduler associated with this director.\n\t\t!#zh 获取和 director 相关联的 cc.Scheduler。 \n\t\t*/\n\t\tgetScheduler(): Scheduler;\t\t\n\t\t/**\n\t\t!#en Sets the cc.Scheduler associated with this director.\n\t\t!#zh 设置和 director 相关联的 cc.Scheduler。\n\t\t@param scheduler scheduler \n\t\t*/\n\t\tsetScheduler(scheduler: Scheduler): void;\t\t\n\t\t/**\n\t\t!#en Returns the cc.ActionManager associated with this director.\n\t\t!#zh 获取和 director 相关联的 cc.ActionManager（动作管理器）。 \n\t\t*/\n\t\tgetActionManager(): ActionManager;\t\t\n\t\t/**\n\t\t!#en Sets the cc.ActionManager associated with this director.\n\t\t!#zh 设置和 director 相关联的 cc.ActionManager（动作管理器）。\n\t\t@param actionManager actionManager \n\t\t*/\n\t\tsetActionManager(actionManager: ActionManager): void;\t\t\n\t\t/**\n\t\t!#en Returns the cc.CollisionManager associated with this director.\n\t\t!#zh 获取和 director 相关联的 cc.CollisionManager （碰撞管理器）。 \n\t\t*/\n\t\tgetCollisionManager(): CollisionManager;\t\t\n\t\t/**\n\t\t!#en Returns the cc.PhysicsManager associated with this director.\n\t\t!#zh 返回与 director 相关联的 cc.PhysicsManager （物理管理器）。 \n\t\t*/\n\t\tgetPhysicsManager(): PhysicsManager;\t\t\n\t\t/** !#en The event projection changed of cc.Director. This event will not get triggered since v2.0\n\t\t!#zh cc.Director 投影变化的事件。从 v2.0 开始这个事件不会再被触发 */\n\t\tstatic EVENT_PROJECTION_CHANGED: string;\t\t\n\t\t/** !#en The event which will be triggered before loading a new scene.\n\t\t!#zh 加载新场景之前所触发的事件。 */\n\t\tstatic EVENT_BEFORE_SCENE_LOADING: string;\t\t\n\t\t/** !#en The event which will be triggered before launching a new scene.\n\t\t!#zh 运行新场景之前所触发的事件。 */\n\t\tstatic EVENT_BEFORE_SCENE_LAUNCH: string;\t\t\n\t\t/** !#en The event which will be triggered after launching a new scene.\n\t\t!#zh 运行新场景之后所触发的事件。 */\n\t\tstatic EVENT_AFTER_SCENE_LAUNCH: string;\t\t\n\t\t/** !#en The event which will be triggered at the beginning of every frame.\n\t\t!#zh 每个帧的开始时所触发的事件。 */\n\t\tstatic EVENT_BEFORE_UPDATE: string;\t\t\n\t\t/** !#en The event which will be triggered after engine and components update logic.\n\t\t!#zh 将在引擎和组件 “update” 逻辑之后所触发的事件。 */\n\t\tstatic EVENT_AFTER_UPDATE: string;\t\t\n\t\t/** !#en The event is deprecated since v2.0, please use cc.Director.EVENT_BEFORE_DRAW instead\n\t\t!#zh 这个事件从 v2.0 开始被废弃，请直接使用 cc.Director.EVENT_BEFORE_DRAW */\n\t\tstatic EVENT_BEFORE_VISIT: string;\t\t\n\t\t/** !#en The event is deprecated since v2.0, please use cc.Director.EVENT_BEFORE_DRAW instead\n\t\t!#zh 这个事件从 v2.0 开始被废弃，请直接使用 cc.Director.EVENT_BEFORE_DRAW */\n\t\tstatic EVENT_AFTER_VISIT: string;\t\t\n\t\t/** !#en The event which will be triggered before the rendering process.\n\t\t!#zh 渲染过程之前所触发的事件。 */\n\t\tstatic EVENT_BEFORE_DRAW: string;\t\t\n\t\t/** !#en The event which will be triggered after the rendering process.\n\t\t!#zh 渲染过程之后所触发的事件。 */\n\t\tstatic EVENT_AFTER_DRAW: string;\t\t\n\t\t/** Constant for 2D projection (orthogonal projection) */\n\t\tstatic PROJECTION_2D: number;\t\t\n\t\t/** Constant for 3D projection with a fovy=60, znear=0.5f and zfar=1500. */\n\t\tstatic PROJECTION_3D: number;\t\t\n\t\t/** Constant for custom projection, if cc.Director's projection set to it, it calls \"updateProjection\" on the projection delegate. */\n\t\tstatic PROJECTION_CUSTOM: number;\t\t\n\t\t/** Constant for default projection of cc.Director, default projection is 2D projection */\n\t\tstatic PROJECTION_DEFAULT: number;\t\n\t}\t\n\t/** !#en An object to boot the game.\n\t!#zh 包含游戏主体信息并负责驱动游戏的游戏对象。 */\n\texport class debug {\t\t\n\t\t/**\n\t\t!#en Gets error message with the error id and possible parameters.\n\t\t!#zh 通过 error id 和必要的参数来获取错误信息。\n\t\t@param errorId errorId\n\t\t@param param param \n\t\t*/\n\t\tstatic getError(errorId: string, param?: any): string;\t\t\n\t\t/**\n\t\t!#en Returns whether or not to display the FPS informations.\n\t\t!#zh 是否显示 FPS 信息。 \n\t\t*/\n\t\tstatic isDisplayStats(): boolean;\t\t\n\t\t/**\n\t\t!#en Sets whether display the FPS on the bottom-left corner.\n\t\t!#zh 设置是否在左下角显示 FPS。\n\t\t@param displayStats displayStats \n\t\t*/\n\t\tstatic setDisplayStats(displayStats: boolean): void;\t\n\t}\t\n\t/** !#en An object to boot the game.\n\t!#zh 包含游戏主体信息并负责驱动游戏的游戏对象。 */\n\texport class Game extends EventTarget {\t\t\n\t\t/** !#en Event triggered when game hide to background.\n\t\tPlease note that this event is not 100% guaranteed to be fired on Web platform,\n\t\ton native platforms, it corresponds to enter background event, os status bar or notification center may not trigger this event.\n\t\t!#zh 游戏进入后台时触发的事件。\n\t\t请注意，在 WEB 平台，这个事件不一定会 100% 触发，这完全取决于浏览器的回调行为。\n\t\t在原生平台，它对应的是应用被切换到后台事件，下拉菜单和上拉状态栏等不一定会触发这个事件，这取决于系统行为。 */\n\t\tEVENT_HIDE: string;\t\t\n\t\t/** !#en Event triggered when game back to foreground\n\t\tPlease note that this event is not 100% guaranteed to be fired on Web platform,\n\t\ton native platforms, it corresponds to enter foreground event.\n\t\t!#zh 游戏进入前台运行时触发的事件。\n\t\t请注意，在 WEB 平台，这个事件不一定会 100% 触发，这完全取决于浏览器的回调行为。\n\t\t在原生平台，它对应的是应用被切换到前台事件。 */\n\t\tEVENT_SHOW: string;\t\t\n\t\t/** !#en Event triggered when game restart\n\t\t!#zh 调用restart后，触发事件。 */\n\t\tEVENT_RESTART: string;\t\t\n\t\t/** Event triggered after game inited, at this point all engine objects and game scripts are loaded */\n\t\tEVENT_GAME_INITED: string;\t\t\n\t\t/** Event triggered after engine inited, at this point you will be able to use all engine classes.\n\t\tIt was defined as EVENT_RENDERER_INITED in cocos creator v1.x and renamed in v2.0 */\n\t\tEVENT_ENGINE_INITED: string;\t\t\n\t\t/** Web Canvas 2d API as renderer backend */\n\t\tRENDER_TYPE_CANVAS: number;\t\t\n\t\t/** WebGL API as renderer backend */\n\t\tRENDER_TYPE_WEBGL: number;\t\t\n\t\t/** OpenGL API as renderer backend */\n\t\tRENDER_TYPE_OPENGL: number;\t\t\n\t\t/** !#en The outer frame of the game canvas, parent of game container.\n\t\t!#zh 游戏画布的外框，container 的父容器。 */\n\t\tframe: any;\t\t\n\t\t/** !#en The container of game canvas.\n\t\t!#zh 游戏画布的容器。 */\n\t\tcontainer: HTMLDivElement;\t\t\n\t\t/** !#en The canvas of the game.\n\t\t!#zh 游戏的画布。 */\n\t\tcanvas: HTMLCanvasElement;\t\t\n\t\t/** !#en The renderer backend of the game.\n\t\t!#zh 游戏的渲染器类型。 */\n\t\trenderType: number;\t\t\n\t\t/** !#en\n\t\tThe current game configuration, including:<br/>\n\t\t1. debugMode<br/>\n\t\t     \"debugMode\" possible values :<br/>\n\t\t     0 - No message will be printed.                                                      <br/>\n\t\t     1 - cc.error, cc.assert, cc.warn, cc.log will print in console.                      <br/>\n\t\t     2 - cc.error, cc.assert, cc.warn will print in console.                              <br/>\n\t\t     3 - cc.error, cc.assert will print in console.                                       <br/>\n\t\t     4 - cc.error, cc.assert, cc.warn, cc.log will print on canvas, available only on web.<br/>\n\t\t     5 - cc.error, cc.assert, cc.warn will print on canvas, available only on web.        <br/>\n\t\t     6 - cc.error, cc.assert will print on canvas, available only on web.                 <br/>\n\t\t2. showFPS<br/>\n\t\t     Left bottom corner fps information will show when \"showFPS\" equals true, otherwise it will be hide.<br/>\n\t\t3. exposeClassName<br/>\n\t\t     Expose class name to chrome debug tools, the class intantiate performance is a little bit slower when exposed.<br/>\n\t\t4. frameRate<br/>\n\t\t     \"frameRate\" set the wanted frame rate for your game, but the real fps depends on your game implementation and the running environment.<br/>\n\t\t5. id<br/>\n\t\t     \"gameCanvas\" sets the id of your canvas element on the web page, it's useful only on web.<br/>\n\t\t6. renderMode<br/>\n\t\t     \"renderMode\" sets the renderer type, only useful on web :<br/>\n\t\t     0 - Automatically chosen by engine<br/>\n\t\t     1 - Forced to use canvas renderer<br/>\n\t\t     2 - Forced to use WebGL renderer, but this will be ignored on mobile browsers<br/>\n\t\t7. scenes<br/>\n\t\t     \"scenes\" include available scenes in the current bundle.<br/>\n\t\t<br/>\n\t\tPlease DO NOT modify this object directly, it won't have any effect.<br/>\n\t\t!#zh\n\t\t当前的游戏配置，包括：                                                                  <br/>\n\t\t1. debugMode（debug 模式，但是在浏览器中这个选项会被忽略）                                <br/>\n\t\t     \"debugMode\" 各种设置选项的意义。                                                   <br/>\n\t\t         0 - 没有消息被打印出来。                                                       <br/>\n\t\t         1 - cc.error，cc.assert，cc.warn，cc.log 将打印在 console 中。                  <br/>\n\t\t         2 - cc.error，cc.assert，cc.warn 将打印在 console 中。                          <br/>\n\t\t         3 - cc.error，cc.assert 将打印在 console 中。                                   <br/>\n\t\t         4 - cc.error，cc.assert，cc.warn，cc.log 将打印在 canvas 中（仅适用于 web 端）。 <br/>\n\t\t         5 - cc.error，cc.assert，cc.warn 将打印在 canvas 中（仅适用于 web 端）。         <br/>\n\t\t         6 - cc.error，cc.assert 将打印在 canvas 中（仅适用于 web 端）。                  <br/>\n\t\t2. showFPS（显示 FPS）                                                            <br/>\n\t\t     当 showFPS 为 true 的时候界面的左下角将显示 fps 的信息，否则被隐藏。              <br/>\n\t\t3. exposeClassName                                                           <br/>\n\t\t     暴露类名让 Chrome DevTools 可以识别，如果开启会稍稍降低类的创建过程的性能，但对对象构造没有影响。 <br/>\n\t\t4. frameRate (帧率)                                                              <br/>\n\t\t     “frameRate” 设置想要的帧率你的游戏，但真正的FPS取决于你的游戏实现和运行环境。      <br/>\n\t\t5. id                                                                            <br/>\n\t\t     \"gameCanvas\" Web 页面上的 Canvas Element ID，仅适用于 web 端。                         <br/>\n\t\t6. renderMode（渲染模式）                                                         <br/>\n\t\t     “renderMode” 设置渲染器类型，仅适用于 web 端：                              <br/>\n\t\t         0 - 通过引擎自动选择。                                                     <br/>\n\t\t         1 - 强制使用 canvas 渲染。\n\t\t         2 - 强制使用 WebGL 渲染，但是在部分 Android 浏览器中这个选项会被忽略。     <br/>\n\t\t7. scenes                                                                         <br/>\n\t\t     “scenes” 当前包中可用场景。                                                   <br/>\n\t\t<br/>\n\t\t注意：请不要直接修改这个对象，它不会有任何效果。 */\n\t\tconfig: any;\t\t\n\t\t/**\n\t\t!#en Callback when the scripts of engine have been load.\n\t\t!#zh 当引擎完成启动后的回调函数。 \n\t\t*/\n\t\tonStart(): void;\t\t\n\t\t/**\n\t\t!#en Set frame rate of game.\n\t\t!#zh 设置游戏帧率。\n\t\t@param frameRate frameRate \n\t\t*/\n\t\tsetFrameRate(frameRate: number): void;\t\t\n\t\t/**\n\t\t!#en Get frame rate set for the game, it doesn't represent the real frame rate.\n\t\t!#zh 获取设置的游戏帧率（不等同于实际帧率）。 \n\t\t*/\n\t\tgetFrameRate(): number;\t\t\n\t\t/**\n\t\t!#en Run the game frame by frame.\n\t\t!#zh 执行一帧游戏循环。 \n\t\t*/\n\t\tstep(): void;\t\t\n\t\t/**\n\t\t!#en Pause the game main loop. This will pause:\n\t\tgame logic execution, rendering process, event manager, background music and all audio effects.\n\t\tThis is different with cc.director.pause which only pause the game logic execution.\n\t\t!#zh 暂停游戏主循环。包含：游戏逻辑，渲染，事件处理，背景音乐和所有音效。这点和只暂停游戏逻辑的 cc.director.pause 不同。 \n\t\t*/\n\t\tpause(): void;\t\t\n\t\t/**\n\t\t!#en Resume the game from pause. This will resume:\n\t\tgame logic execution, rendering process, event manager, background music and all audio effects.\n\t\t!#zh 恢复游戏主循环。包含：游戏逻辑，渲染，事件处理，背景音乐和所有音效。 \n\t\t*/\n\t\tresume(): void;\t\t\n\t\t/**\n\t\t!#en Check whether the game is paused.\n\t\t!#zh 判断游戏是否暂停。 \n\t\t*/\n\t\tisPaused(): boolean;\t\t\n\t\t/**\n\t\t!#en Restart game.\n\t\t!#zh 重新开始游戏 \n\t\t*/\n\t\trestart(): void;\t\t\n\t\t/**\n\t\t!#en End game, it will close the game window\n\t\t!#zh 退出游戏 \n\t\t*/\n\t\tend(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the game object.\n\t\tThis type of event should be triggered via `emit`.\n\t\t!#zh\n\t\t注册 game 的特定事件类型回调。这种类型的事件应该被 `emit` 触发。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null \n\t\t*/\n\t\ton<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the game object,\n\t\tthe callback will remove itself after the first time it is triggered.\n\t\t!#zh\n\t\t注册 game 的特定事件类型回调，回调会在第一时间被触发后删除自身。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null \n\t\t*/\n\t\tonce(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;\t\t\n\t\t/**\n\t\t!#en Prepare game.\n\t\t!#zh 准备引擎，请不要直接调用这个函数。\n\t\t@param cb cb \n\t\t*/\n\t\tprepare(cb: Function): void;\t\t\n\t\t/**\n\t\t!#en Run game with configuration object and onStart function.\n\t\t!#zh 运行游戏，并且指定引擎配置和 onStart 的回调。\n\t\t@param config Pass configuration object or onStart function\n\t\t@param onStart function to be executed after game initialized \n\t\t*/\n\t\trun(config: any, onStart: Function): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd a persistent root node to the game, the persistent node won't be destroyed during scene transition.<br/>\n\t\tThe target node must be placed in the root level of hierarchy, otherwise this API won't have any effect.\n\t\t!#zh\n\t\t声明常驻根节点，该节点不会被在场景切换中被销毁。<br/>\n\t\t目标节点必须位于为层级的根节点，否则无效。\n\t\t@param node The node to be made persistent \n\t\t*/\n\t\taddPersistRootNode(node: Node): void;\t\t\n\t\t/**\n\t\t!#en Remove a persistent root node.\n\t\t!#zh 取消常驻根节点。\n\t\t@param node The node to be removed from persistent node list \n\t\t*/\n\t\tremovePersistRootNode(node: Node): void;\t\t\n\t\t/**\n\t\t!#en Check whether the node is a persistent root node.\n\t\t!#zh 检查节点是否是常驻根节点。\n\t\t@param node The node to be checked \n\t\t*/\n\t\tisPersistRootNode(node: Node): boolean;\t\n\t}\t\n\t/** !#en\n\tClass of all entities in Cocos Creator scenes.<br/>\n\tFor events supported by Node, please refer to {{#crossLink \"Node.EventType\"}}{{/crossLink}}\n\t!#zh\n\tCocos Creator 场景中的所有节点类。<br/>\n\t支持的节点事件，请参阅 {{#crossLink \"Node.EventType\"}}{{/crossLink}}。 */\n\texport class Node extends _BaseNode {\t\t\n\t\t/** !#en\n\t\tGroup index of node.<br/>\n\t\tWhich Group this node belongs to will resolve that this node's collision components can collide with which other collision componentns.<br/>\n\t\t!#zh\n\t\t节点的分组索引。<br/>\n\t\t节点的分组将关系到节点的碰撞组件可以与哪些碰撞组件相碰撞。<br/> */\n\t\tgroupIndex: number;\t\t\n\t\t/** !#en\n\t\tGroup of node.<br/>\n\t\tWhich Group this node belongs to will resolve that this node's collision components can collide with which other collision componentns.<br/>\n\t\t!#zh\n\t\t节点的分组。<br/>\n\t\t节点的分组将关系到节点的碰撞组件可以与哪些碰撞组件相碰撞。<br/> */\n\t\tgroup: string;\t\t\n\t\t/** !#en The position (x, y) of the node in its parent's coordinates.\n\t\t!#zh 节点在父节点坐标系中的位置（x, y）。 */\n\t\tposition: Vec2;\t\t\n\t\t/** !#en x axis position of node.\n\t\t!#zh 节点 X 轴坐标。 */\n\t\tx: number;\t\t\n\t\t/** !#en y axis position of node.\n\t\t!#zh 节点 Y 轴坐标。 */\n\t\ty: number;\t\t\n\t\t/** !#en z axis position of node.\n\t\t!#zh 节点 Z 轴坐标。 */\n\t\tz: number;\t\t\n\t\t/** !#en Rotation of node.\n\t\t!#zh 该节点旋转角度。 */\n\t\trotation: number;\t\t\n\t\t/** !#en\n\t\tAngle of node, the positive value is anti-clockwise direction.\n\t\t!#zh\n\t\t该节点的旋转角度，正值为逆时针方向。 */\n\t\tangle: number;\t\t\n\t\t/** !#en The rotation as Euler angles in degrees, used in 3D node.\n\t\t!#zh 该节点的欧拉角度，用于 3D 节点。 */\n\t\teulerAngles: Vec3;\t\t\n\t\t/** !#en Rotation on x axis.\n\t\t!#zh 该节点 X 轴旋转角度。 */\n\t\trotationX: number;\t\t\n\t\t/** !#en Rotation on y axis.\n\t\t!#zh 该节点 Y 轴旋转角度。 */\n\t\trotationY: number;\t\t\n\t\t/** !#en The local scale relative to the parent.\n\t\t!#zh 节点相对父节点的缩放。 */\n\t\tscale: number;\t\t\n\t\t/** !#en Scale on x axis.\n\t\t!#zh 节点 X 轴缩放。 */\n\t\tscaleX: number;\t\t\n\t\t/** !#en Scale on y axis.\n\t\t!#zh 节点 Y 轴缩放。 */\n\t\tscaleY: number;\t\t\n\t\t/** !#en Scale on z axis.\n\t\t!#zh 节点 Z 轴缩放。 */\n\t\tscaleZ: number;\t\t\n\t\t/** !#en Skew x\n\t\t!#zh 该节点 X 轴倾斜角度。 */\n\t\tskewX: number;\t\t\n\t\t/** !#en Skew y\n\t\t!#zh 该节点 Y 轴倾斜角度。 */\n\t\tskewY: number;\t\t\n\t\t/** !#en Opacity of node, default value is 255.\n\t\t!#zh 节点透明度，默认值为 255。 */\n\t\topacity: number;\t\t\n\t\t/** !#en Color of node, default value is white: (255, 255, 255).\n\t\t!#zh 节点颜色。默认为白色，数值为：（255，255，255）。 */\n\t\tcolor: Color;\t\t\n\t\t/** !#en Anchor point's position on x axis.\n\t\t!#zh 节点 X 轴锚点位置。 */\n\t\tanchorX: number;\t\t\n\t\t/** !#en Anchor point's position on y axis.\n\t\t!#zh 节点 Y 轴锚点位置。 */\n\t\tanchorY: number;\t\t\n\t\t/** !#en Width of node.\n\t\t!#zh 节点宽度。 */\n\t\twidth: number;\t\t\n\t\t/** !#en Height of node.\n\t\t!#zh 节点高度。 */\n\t\theight: number;\t\t\n\t\t/** !#en zIndex is the 'key' used to sort the node relative to its siblings.<br/>\n\t\tThe value of zIndex should be in the range between cc.macro.MIN_ZINDEX and cc.macro.MAX_ZINDEX.<br/>\n\t\tThe Node's parent will sort all its children based on the zIndex value and the arrival order.<br/>\n\t\tNodes with greater zIndex will be sorted after nodes with smaller zIndex.<br/>\n\t\tIf two nodes have the same zIndex, then the node that was added first to the children's array will be in front of the other node in the array.<br/>\n\t\tNode's order in children list will affect its rendering order. Parent is always rendering before all children.\n\t\t!#zh zIndex 是用来对节点进行排序的关键属性，它决定一个节点在兄弟节点之间的位置。<br/>\n\t\tzIndex 的取值应该介于 cc.macro.MIN_ZINDEX 和 cc.macro.MAX_ZINDEX 之间\n\t\t父节点主要根据节点的 zIndex 和添加次序来排序，拥有更高 zIndex 的节点将被排在后面，如果两个节点的 zIndex 一致，先添加的节点会稳定排在另一个节点之前。<br/>\n\t\t节点在 children 中的顺序决定了其渲染顺序。父节点永远在所有子节点之前被渲染 */\n\t\tzIndex: number;\t\t\n\t\t/**\n\t\t\n\t\t@param name name \n\t\t*/\n\t\tconstructor(name?: string);\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister a callback of a specific event type on Node.<br/>\n\t\tUse this method to register touch or mouse event permit propagation based on scene graph,<br/>\n\t\tThese kinds of event are triggered with dispatchEvent, the dispatch process has three steps:<br/>\n\t\t1. Capturing phase: dispatch in capture targets (`_getCapturingTargets`), e.g. parents in node tree, from root to the real target<br/>\n\t\t2. At target phase: dispatch to the listeners of the real target<br/>\n\t\t3. Bubbling phase: dispatch in bubble targets (`_getBubblingTargets`), e.g. parents in node tree, from the real target to root<br/>\n\t\tIn any moment of the dispatching process, it can be stopped via `event.stopPropagation()` or `event.stopPropagationImmidiate()`.<br/>\n\t\tIt's the recommended way to register touch/mouse event for Node,<br/>\n\t\tplease do not use cc.eventManager directly for Node.<br/>\n\t\tYou can also register custom event and use `emit` to trigger custom event on Node.<br/>\n\t\tFor such events, there won't be capturing and bubbling phase, your event will be dispatched directly to its listeners registered on the same node.<br/>\n\t\tYou can also pass event callback parameters with `emit` by passing parameters after `type`.\n\t\t!#zh\n\t\t在节点上注册指定类型的回调函数，也可以设置 target 用于绑定响应函数的 this 对象。<br/>\n\t\t鼠标或触摸事件会被系统调用 dispatchEvent 方法触发，触发的过程包含三个阶段：<br/>\n\t\t1. 捕获阶段：派发事件给捕获目标（通过 `_getCapturingTargets` 获取），比如，节点树中注册了捕获阶段的父节点，从根节点开始派发直到目标节点。<br/>\n\t\t2. 目标阶段：派发给目标节点的监听器。<br/>\n\t\t3. 冒泡阶段：派发事件给冒泡目标（通过 `_getBubblingTargets` 获取），比如，节点树中注册了冒泡阶段的父节点，从目标节点开始派发直到根节点。<br/>\n\t\t同时您可以将事件派发到父节点或者通过调用 stopPropagation 拦截它。<br/>\n\t\t推荐使用这种方式来监听节点上的触摸或鼠标事件，请不要在节点上直接使用 cc.eventManager。<br/>\n\t\t你也可以注册自定义事件到节点上，并通过 emit 方法触发此类事件，对于这类事件，不会发生捕获冒泡阶段，只会直接派发给注册在该节点上的监听器<br/>\n\t\t你可以通过在 emit 方法调用时在 type 之后传递额外的参数作为事件回调的参数列表\n\t\t@param type A string representing the event type to listen for.<br>See {{#crossLink \"Node/EventTyupe/POSITION_CHANGED\"}}Node Events{{/crossLink}} for all builtin events.\n\t\t@param callback The callback that will be invoked when the event is dispatched. The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t@param useCapture When set to true, the listener will be triggered at capturing phase which is ahead of the final target emit, otherwise it will be triggered during bubbling phase.\n\t\t\n\t\t@example \n\t\t```js\n\t\tthis.node.on(cc.Node.EventType.TOUCH_START, this.memberFunction, this);  // if \"this\" is component and the \"memberFunction\" declared in CCClass.\n\t\tnode.on(cc.Node.EventType.TOUCH_START, callback, this);\n\t\tnode.on(cc.Node.EventType.TOUCH_MOVE, callback, this);\n\t\tnode.on(cc.Node.EventType.TOUCH_END, callback, this);\n\t\tnode.on(cc.Node.EventType.TOUCH_CANCEL, callback, this);\n\t\tnode.on(cc.Node.EventType.ANCHOR_CHANGED, callback);\n\t\tnode.on(cc.Node.EventType.COLOR_CHANGED, callback);\n\t\t``` \n\t\t*/\n\t\ton<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the Node,\n\t\tthe callback will remove itself after the first time it is triggered.\n\t\t!#zh\n\t\t注册节点的特定事件类型回调，回调会在第一时间被触发后删除自身。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.once(cc.Node.EventType.ANCHOR_CHANGED, callback);\n\t\t``` \n\t\t*/\n\t\tonce<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemoves the callback previously registered with the same type, callback, target and or useCapture.\n\t\tThis method is merely an alias to removeEventListener.\n\t\t!#zh 删除之前与同类型，回调，目标或 useCapture 注册的回调。\n\t\t@param type A string representing the event type being removed.\n\t\t@param callback The callback to remove.\n\t\t@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed\n\t\t@param useCapture When set to true, the listener will be triggered at capturing phase which is ahead of the final target emit, otherwise it will be triggered during bubbling phase.\n\t\t\n\t\t@example \n\t\t```js\n\t\tthis.node.off(cc.Node.EventType.TOUCH_START, this.memberFunction, this);\n\t\tnode.off(cc.Node.EventType.TOUCH_START, callback, this.node);\n\t\tnode.off(cc.Node.EventType.ANCHOR_CHANGED, callback, this);\n\t\t``` \n\t\t*/\n\t\toff(type: string, callback?: Function, target?: any, useCapture?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Removes all callbacks previously registered with the same target.\n\t\t!#zh 移除目标上的所有注册事件。\n\t\t@param target The target to be searched for all related callbacks\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.targetOff(target);\n\t\t``` \n\t\t*/\n\t\ttargetOff(target: any): void;\t\t\n\t\t/**\n\t\t!#en Checks whether the EventTarget object has any callback registered for a specific type of event.\n\t\t!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。\n\t\t@param type The type of event. \n\t\t*/\n\t\thasEventListener(type: string): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tTrigger an event directly with the event name and necessary arguments.\n\t\t!#zh\n\t\t通过事件名发送自定义事件\n\t\t@param type event type\n\t\t@param arg1 First argument in callback\n\t\t@param arg2 Second argument in callback\n\t\t@param arg3 Third argument in callback\n\t\t@param arg4 Fourth argument in callback\n\t\t@param arg5 Fifth argument in callback\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.emit('fire', event);\n\t\teventTarget.emit('fire', message, emitter);\n\t\t``` \n\t\t*/\n\t\temit(type: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tDispatches an event into the event flow.\n\t\tThe event target is the EventTarget object upon which the dispatchEvent() method is called.\n\t\t!#zh 分发事件到事件流中。\n\t\t@param event The Event object that is dispatched into the event flow \n\t\t*/\n\t\tdispatchEvent(event: Event): void;\t\t\n\t\t/**\n\t\t!#en Pause node related system events registered with the current Node. Node system events includes touch and mouse events.\n\t\tIf recursive is set to true, then this API will pause the node system events for the node and all nodes in its sub node tree.\n\t\tReference: http://docs.cocos2d-x.org/editors_and_tools/creator-chapters/scripting/internal-events/\n\t\t!#zh 暂停当前节点上注册的所有节点系统事件，节点系统事件包含触摸和鼠标事件。\n\t\t如果传递 recursive 为 true，那么这个 API 将暂停本节点和它的子树上所有节点的节点系统事件。\n\t\t参考：https://www.cocos.com/docs/creator/scripting/internal-events.html\n\t\t@param recursive Whether to pause node system events on the sub node tree.\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.pauseSystemEvents(true);\n\t\t``` \n\t\t*/\n\t\tpauseSystemEvents(recursive: boolean): void;\t\t\n\t\t/**\n\t\t!#en Resume node related system events registered with the current Node. Node system events includes touch and mouse events.\n\t\tIf recursive is set to true, then this API will resume the node system events for the node and all nodes in its sub node tree.\n\t\tReference: http://docs.cocos2d-x.org/editors_and_tools/creator-chapters/scripting/internal-events/\n\t\t!#zh 恢复当前节点上注册的所有节点系统事件，节点系统事件包含触摸和鼠标事件。\n\t\t如果传递 recursive 为 true，那么这个 API 将恢复本节点和它的子树上所有节点的节点系统事件。\n\t\t参考：https://www.cocos.com/docs/creator/scripting/internal-events.html\n\t\t@param recursive Whether to resume node system events on the sub node tree.\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.resumeSystemEvents(true);\n\t\t``` \n\t\t*/\n\t\tresumeSystemEvents(recursive: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tExecutes an action, and returns the action that is executed.<br/>\n\t\tThe node becomes the action's target. Refer to cc.Action's getTarget() <br/>\n\t\tCalling runAction while the node is not active won't have any effect. <br/>\n\t\tNote：You shouldn't modify the action after runAction, that won't take any effect.<br/>\n\t\tif you want to modify, when you define action plus.\n\t\t!#zh\n\t\t执行并返回该执行的动作。该节点将会变成动作的目标。<br/>\n\t\t调用 runAction 时，节点自身处于不激活状态将不会有任何效果。<br/>\n\t\t注意：你不应该修改 runAction 后的动作，将无法发挥作用，如果想进行修改，请在定义 action 时加入。\n\t\t@param action action\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar action = cc.scaleTo(0.2, 1, 0.6);\n\t\tnode.runAction(action);\n\t\tnode.runAction(action).repeatForever(); // fail\n\t\tnode.runAction(action.repeatForever()); // right\n\t\t``` \n\t\t*/\n\t\trunAction(action: Action): Action;\t\t\n\t\t/**\n\t\t!#en Pause all actions running on the current node. Equals to `cc.director.getActionManager().pauseTarget(node)`.\n\t\t!#zh 暂停本节点上所有正在运行的动作。和 `cc.director.getActionManager().pauseTarget(node);` 等价。\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.pauseAllActions();\n\t\t``` \n\t\t*/\n\t\tpauseAllActions(): void;\t\t\n\t\t/**\n\t\t!#en Resume all paused actions on the current node. Equals to `cc.director.getActionManager().resumeTarget(node)`.\n\t\t!#zh 恢复运行本节点上所有暂停的动作。和 `cc.director.getActionManager().resumeTarget(node);` 等价。\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.resumeAllActions();\n\t\t``` \n\t\t*/\n\t\tresumeAllActions(): void;\t\t\n\t\t/**\n\t\t!#en Stops and removes all actions from the running action list .\n\t\t!#zh 停止并且移除所有正在运行的动作列表。\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.stopAllActions();\n\t\t``` \n\t\t*/\n\t\tstopAllActions(): void;\t\t\n\t\t/**\n\t\t!#en Stops and removes an action from the running action list.\n\t\t!#zh 停止并移除指定的动作。\n\t\t@param action An action object to be removed.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar action = cc.scaleTo(0.2, 1, 0.6);\n\t\tnode.stopAction(action);\n\t\t``` \n\t\t*/\n\t\tstopAction(action: Action): void;\t\t\n\t\t/**\n\t\t!#en Removes an action from the running action list by its tag.\n\t\t!#zh 停止并且移除指定标签的动作。\n\t\t@param tag A tag that indicates the action to be removed.\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.stopActionByTag(1);\n\t\t``` \n\t\t*/\n\t\tstopActionByTag(tag: number): void;\t\t\n\t\t/**\n\t\t!#en Returns an action from the running action list by its tag.\n\t\t!#zh 通过标签获取指定动作。\n\t\t@param tag tag\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar action = node.getActionByTag(1);\n\t\t``` \n\t\t*/\n\t\tgetActionByTag(tag: number): Action;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays).<br/>\n\t\t   Composable actions are counted as 1 action. Example:<br/>\n\t\t   If you are running 1 Sequence of 7 actions, it will return 1. <br/>\n\t\t   If you are running 7 Sequences of 2 actions, it will return 7.</p>\n\t\t!#zh\n\t\t获取运行着的动作加上正在调度运行的动作的总数。<br/>\n\t\t例如：<br/>\n\t\t- 如果你正在运行 7 个动作中的 1 个 Sequence，它将返回 1。<br/>\n\t\t- 如果你正在运行 2 个动作中的 7 个 Sequence，它将返回 7。<br/>\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar count = node.getNumberOfRunningActions();\n\t\tcc.log(\"Running Action Count: \" + count);\n\t\t``` \n\t\t*/\n\t\tgetNumberOfRunningActions(): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns a copy of the position (x, y, z) of the node in its parent's coordinates.\n\t\tYou can pass a cc.Vec2 or cc.Vec3 as the argument to receive the return values.\n\t\t!#zh\n\t\t获取节点在父节点坐标系中的位置（x, y, z）。\n\t\t你可以传一个 cc.Vec2 或者 cc.Vec3 作为参数来接收返回值。\n\t\t@param out The return value to receive position\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.log(\"Node Position: \" + node.getPosition());\n\t\t``` \n\t\t*/\n\t\tgetPosition(out?: Vec2|Vec3): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the position (x, y, z) of the node in its parent's coordinates.<br/>\n\t\tUsually we use cc.v2(x, y) to compose cc.Vec2 object,<br/>\n\t\tand passing two numbers (x, y) is more efficient than passing cc.Vec2 object.\n\t\tFor 3D node we can use cc.v3(x, y, z) to compose cc.Vec3 object,<br/>\n\t\tand passing three numbers (x, y, z) is more efficient than passing cc.Vec3 object.\n\t\t!#zh\n\t\t设置节点在父节点坐标系中的位置。<br/>\n\t\t可以通过下面的方式设置坐标点：<br/>\n\t\t1. 传入 2 个数值 x, y。<br/>\n\t\t2. 传入 cc.v2(x, y) 类型为 cc.Vec2 的对象。\n\t\t3. 对于 3D 节点可以传入 3 个数值 x, y, z。<br/>\n\t\t4. 对于 3D 节点可以传入 cc.v3(x, y, z) 类型为 cc.Vec3 的对象。\n\t\t@param newPosOrX X coordinate for position or the position (x, y, z) of the node in coordinates\n\t\t@param y Y coordinate for position\n\t\t@param z Z coordinate for position \n\t\t*/\n\t\tsetPosition(newPosOrX: Vec2|Vec3|number, y?: number, z?: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the scale factor of the node.\n\t\tNeed pass a cc.Vec2 or cc.Vec3 as the argument to receive the return values.\n\t\t!#zh 获取节点的缩放，需要传一个 cc.Vec2 或者 cc.Vec3 作为参数来接收返回值。\n\t\t@param out out\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.log(\"Node Scale: \" + node.getScale(cc.v3()));\n\t\t``` \n\t\t*/\n\t\tgetScale(out: Vec2|Vec3): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the scale of axis in local coordinates of the node.\n\t\tYou can operate 2 axis in 2D node, and 3 axis in 3D node.\n\t\t!#zh\n\t\t设置节点在本地坐标系中坐标轴上的缩放比例。\n\t\t2D 节点可以操作两个坐标轴，而 3D 节点可以操作三个坐标轴。\n\t\t@param x scaleX or scale object\n\t\t@param y y\n\t\t@param z z\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.setScale(cc.v2(2, 2));\n\t\tnode.setScale(cc.v3(2, 2, 2)); // for 3D node\n\t\tnode.setScale(2);\n\t\t``` \n\t\t*/\n\t\tsetScale(x: number|Vec2|Vec3, y?: number, z?: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet rotation of node (in quaternion).\n\t\tNeed pass a cc.Quat as the argument to receive the return values.\n\t\t!#zh\n\t\t获取该节点的 quaternion 旋转角度，需要传一个 cc.Quat 作为参数来接收返回值。\n\t\t@param out out \n\t\t*/\n\t\tgetRotation(out: Quat): Quat;\t\t\n\t\t/**\n\t\t!#en Set rotation of node (in quaternion).\n\t\t!#zh 设置该节点的 quaternion 旋转角度。\n\t\t@param quat Quaternion object represents the rotation or the x value of quaternion\n\t\t@param y y value of quternion\n\t\t@param z z value of quternion\n\t\t@param w w value of quternion \n\t\t*/\n\t\tsetRotation(quat: Quat|number, y?: number, z?: number, w?: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns a copy the untransformed size of the node. <br/>\n\t\tThe contentSize remains the same no matter the node is scaled or rotated.<br/>\n\t\tAll nodes has a size. Layer and Scene has the same size of the screen by default. <br/>\n\t\t!#zh 获取节点自身大小，不受该节点是否被缩放或者旋转的影响。\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.log(\"Content Size: \" + node.getContentSize());\n\t\t``` \n\t\t*/\n\t\tgetContentSize(): Size;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the untransformed size of the node.<br/>\n\t\tThe contentSize remains the same no matter the node is scaled or rotated.<br/>\n\t\tAll nodes has a size. Layer and Scene has the same size of the screen.\n\t\t!#zh 设置节点原始大小，不受该节点是否被缩放或者旋转的影响。\n\t\t@param size The untransformed size of the node or The untransformed size's width of the node.\n\t\t@param height The untransformed size's height of the node.\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.setContentSize(cc.size(100, 100));\n\t\tnode.setContentSize(100, 100);\n\t\t``` \n\t\t*/\n\t\tsetContentSize(size: Size|number, height?: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns a copy of the anchor point.<br/>\n\t\tAnchor point is the point around which all transformations and positioning manipulations take place.<br/>\n\t\tIt's like a pin in the node where it is \"attached\" to its parent. <br/>\n\t\tThe anchorPoint is normalized, like a percentage. (0,0) means the bottom-left corner and (1,1) means the top-right corner. <br/>\n\t\tBut you can use values higher than (1,1) and lower than (0,0) too.  <br/>\n\t\tThe default anchor point is (0.5,0.5), so it starts at the center of the node.\n\t\t!#zh\n\t\t获取节点锚点，用百分比表示。<br/>\n\t\t锚点应用于所有变换和坐标点的操作，它就像在节点上连接其父节点的大头针。<br/>\n\t\t锚点是标准化的，就像百分比一样。(0，0) 表示左下角，(1，1) 表示右上角。<br/>\n\t\t但是你可以使用比（1，1）更高的值或者比（0，0）更低的值。<br/>\n\t\t默认的锚点是（0.5，0.5），因此它开始于节点的中心位置。<br/>\n\t\t注意：Creator 中的锚点仅用于定位所在的节点，子节点的定位不受影响。\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.log(\"Node AnchorPoint: \" + node.getAnchorPoint());\n\t\t``` \n\t\t*/\n\t\tgetAnchorPoint(): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the anchor point in percent. <br/>\n\t\tanchor point is the point around which all transformations and positioning manipulations take place. <br/>\n\t\tIt's like a pin in the node where it is \"attached\" to its parent. <br/>\n\t\tThe anchorPoint is normalized, like a percentage. (0,0) means the bottom-left corner and (1,1) means the top-right corner.<br/>\n\t\tBut you can use values higher than (1,1) and lower than (0,0) too.<br/>\n\t\tThe default anchor point is (0.5,0.5), so it starts at the center of the node.\n\t\t!#zh\n\t\t设置锚点的百分比。<br/>\n\t\t锚点应用于所有变换和坐标点的操作，它就像在节点上连接其父节点的大头针。<br/>\n\t\t锚点是标准化的，就像百分比一样。(0，0) 表示左下角，(1，1) 表示右上角。<br/>\n\t\t但是你可以使用比（1，1）更高的值或者比（0，0）更低的值。<br/>\n\t\t默认的锚点是（0.5，0.5），因此它开始于节点的中心位置。<br/>\n\t\t注意：Creator 中的锚点仅用于定位所在的节点，子节点的定位不受影响。\n\t\t@param point The anchor point of node or The x axis anchor of node.\n\t\t@param y The y axis anchor of node.\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.setAnchorPoint(cc.v2(1, 1));\n\t\tnode.setAnchorPoint(1, 1);\n\t\t``` \n\t\t*/\n\t\tsetAnchorPoint(point: Vec2|number, y?: number): void;\t\t\n\t\t/**\n\t\t!#en Set rotation by lookAt target point, normally used by Camera Node\n\t\t!#zh 通过观察目标来设置 rotation，一般用于 Camera Node 上\n\t\t@param pos pos\n\t\t@param up default is (0,1,0) \n\t\t*/\n\t\tlookAt(pos: Vec3, up?: Vec3): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the local transform matrix (4x4), based on parent node coordinates\n\t\t!#zh 返回局部空间坐标系的矩阵，基于父节点坐标系。\n\t\t@param out The matrix object to be filled with data\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet mat4 = cc.mat4();\n\t\tnode.getLocalMatrix(mat4);\n\t\t``` \n\t\t*/\n\t\tgetLocalMatrix(out: Mat4): Mat4;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the world transform matrix (4x4)\n\t\t!#zh 返回世界空间坐标系的矩阵。\n\t\t@param out The matrix object to be filled with data\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet mat4 = cc.mat4();\n\t\tnode.getWorldMatrix(mat4);\n\t\t``` \n\t\t*/\n\t\tgetWorldMatrix(out: Mat4): Mat4;\t\t\n\t\t/**\n\t\t!#en\n\t\tConverts a Point to node (local) space coordinates.\n\t\t!#zh\n\t\t将一个点转换到节点 (局部) 空间坐标系。\n\t\t@param worldPoint worldPoint\n\t\t@param out out\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar newVec2 = node.convertToNodeSpaceAR(cc.v2(100, 100));\n\t\tvar newVec3 = node.convertToNodeSpaceAR(cc.v3(100, 100, 100));\n\t\t``` \n\t\t*/\n\t\tconvertToNodeSpaceAR(worldPoint: Vec3|Vec2, out?: Vec3|Vec2): Vec3;\t\t\n\t\t/**\n\t\t!#en\n\t\tConverts a Point in node coordinates to world space coordinates.\n\t\t!#zh\n\t\t将节点坐标系下的一个点转换到世界空间坐标系。\n\t\t@param nodePoint nodePoint\n\t\t@param out out\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar newVec2 = node.convertToWorldSpaceAR(cc.v2(100, 100));\n\t\tvar newVec3 = node.convertToWorldSpaceAR(cc.v3(100, 100, 100));\n\t\t``` \n\t\t*/\n\t\tconvertToWorldSpaceAR(nodePoint: Vec3|Vec2, out?: Vec3|Vec2): Vec3;\t\t\n\t\t/**\n\t\t!#en Converts a Point to node (local) space coordinates then add the anchor point position.\n\t\tSo the return position will be related to the left bottom corner of the node's bounding box.\n\t\tThis equals to the API behavior of cocos2d-x, you probably want to use convertToNodeSpaceAR instead\n\t\t!#zh 将一个点转换到节点 (局部) 坐标系，并加上锚点的坐标。<br/>\n\t\t也就是说返回的坐标是相对于节点包围盒左下角的坐标。<br/>\n\t\t这个 API 的设计是为了和 cocos2d-x 中行为一致，更多情况下你可能需要使用 convertToNodeSpaceAR。\n\t\t@param worldPoint worldPoint\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar newVec2 = node.convertToNodeSpace(cc.v2(100, 100));\n\t\t``` \n\t\t*/\n\t\tconvertToNodeSpace(worldPoint: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en Converts a Point related to the left bottom corner of the node's bounding box to world space coordinates.\n\t\tThis equals to the API behavior of cocos2d-x, you probably want to use convertToWorldSpaceAR instead\n\t\t!#zh 将一个相对于节点左下角的坐标位置转换到世界空间坐标系。\n\t\t这个 API 的设计是为了和 cocos2d-x 中行为一致，更多情况下你可能需要使用 convertToWorldSpaceAR\n\t\t@param nodePoint nodePoint\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar newVec2 = node.convertToWorldSpace(cc.v2(100, 100));\n\t\t``` \n\t\t*/\n\t\tconvertToWorldSpace(nodePoint: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.<br/>\n\t\tThe matrix is in Pixels.\n\t\t!#zh 返回这个将节点（局部）的空间坐标系转换成父节点的空间坐标系的矩阵。这个矩阵以像素为单位。\n\t\t@param out The affine transform object to be filled with data\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet affineTransform = cc.AffineTransform.create();\n\t\tnode.getNodeToParentTransform(affineTransform);\n\t\t``` \n\t\t*/\n\t\tgetNodeToParentTransform(out?: AffineTransform): AffineTransform;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.<br/>\n\t\tThe matrix is in Pixels.<br/>\n\t\tThis method is AR (Anchor Relative).\n\t\t!#zh\n\t\t返回这个将节点（局部）的空间坐标系转换成父节点的空间坐标系的矩阵。<br/>\n\t\t这个矩阵以像素为单位。<br/>\n\t\t该方法基于节点坐标。\n\t\t@param out The affine transform object to be filled with data\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet affineTransform = cc.AffineTransform.create();\n\t\tnode.getNodeToParentTransformAR(affineTransform);\n\t\t``` \n\t\t*/\n\t\tgetNodeToParentTransformAR(out?: AffineTransform): AffineTransform;\t\t\n\t\t/**\n\t\t!#en Returns the world affine transform matrix. The matrix is in Pixels.\n\t\t!#zh 返回节点到世界坐标系的仿射变换矩阵。矩阵单位是像素。\n\t\t@param out The affine transform object to be filled with data\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet affineTransform = cc.AffineTransform.create();\n\t\tnode.getNodeToWorldTransform(affineTransform);\n\t\t``` \n\t\t*/\n\t\tgetNodeToWorldTransform(out?: AffineTransform): AffineTransform;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the world affine transform matrix. The matrix is in Pixels.<br/>\n\t\tThis method is AR (Anchor Relative).\n\t\t!#zh\n\t\t返回节点到世界坐标仿射变换矩阵。矩阵单位是像素。<br/>\n\t\t该方法基于节点坐标。\n\t\t@param out The affine transform object to be filled with data\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet affineTransform = cc.AffineTransform.create();\n\t\tnode.getNodeToWorldTransformAR(affineTransform);\n\t\t``` \n\t\t*/\n\t\tgetNodeToWorldTransformAR(out?: AffineTransform): AffineTransform;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the matrix that transform parent's space coordinates to the node's (local) space coordinates.<br/>\n\t\tThe matrix is in Pixels. The returned transform is readonly and cannot be changed.\n\t\t!#zh\n\t\t返回将父节点的坐标系转换成节点（局部）的空间坐标系的矩阵。<br/>\n\t\t该矩阵以像素为单位。返回的矩阵是只读的，不能更改。\n\t\t@param out The affine transform object to be filled with data\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet affineTransform = cc.AffineTransform.create();\n\t\tnode.getParentToNodeTransform(affineTransform);\n\t\t``` \n\t\t*/\n\t\tgetParentToNodeTransform(out?: AffineTransform): AffineTransform;\t\t\n\t\t/**\n\t\t!#en Returns the inverse world affine transform matrix. The matrix is in Pixels.\n\t\t!#en 返回世界坐标系到节点坐标系的逆矩阵。\n\t\t@param out The affine transform object to be filled with data\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet affineTransform = cc.AffineTransform.create();\n\t\tnode.getWorldToNodeTransform(affineTransform);\n\t\t``` \n\t\t*/\n\t\tgetWorldToNodeTransform(out?: AffineTransform): AffineTransform;\t\t\n\t\t/**\n\t\t!#en convenience methods which take a cc.Touch instead of cc.Vec2.\n\t\t!#zh 将触摸点转换成本地坐标系中位置。\n\t\t@param touch The touch object\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar newVec2 = node.convertTouchToNodeSpace(touch);\n\t\t``` \n\t\t*/\n\t\tconvertTouchToNodeSpace(touch: Touch): Vec2;\t\t\n\t\t/**\n\t\t!#en converts a cc.Touch (world coordinates) into a local coordinate. This method is AR (Anchor Relative).\n\t\t!#zh 转换一个 cc.Touch（世界坐标）到一个局部坐标，该方法基于节点坐标。\n\t\t@param touch The touch object\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar newVec2 = node.convertTouchToNodeSpaceAR(touch);\n\t\t``` \n\t\t*/\n\t\tconvertTouchToNodeSpaceAR(touch: Touch): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns a \"local\" axis aligned bounding box of the node. <br/>\n\t\tThe returned box is relative only to its parent.\n\t\t!#zh 返回父节坐标系下的轴向对齐的包围盒。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar boundingBox = node.getBoundingBox();\n\t\t``` \n\t\t*/\n\t\tgetBoundingBox(): Rect;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns a \"world\" axis aligned bounding box of the node.<br/>\n\t\tThe bounding box contains self and active children's world bounding box.\n\t\t!#zh\n\t\t返回节点在世界坐标系下的对齐轴向的包围盒（AABB）。<br/>\n\t\t该边框包含自身和已激活的子节点的世界边框。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar newRect = node.getBoundingBoxToWorld();\n\t\t``` \n\t\t*/\n\t\tgetBoundingBoxToWorld(): Rect;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdds a child to the node with z order and name.\n\t\t!#zh\n\t\t添加子节点，并且可以修改该节点的 局部 Z 顺序和名字。\n\t\t@param child A child node\n\t\t@param zIndex Z order for drawing priority. Please refer to zIndex property\n\t\t@param name A name to identify the node easily. Please refer to name property\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.addChild(newNode, 1, \"node\");\n\t\t``` \n\t\t*/\n\t\taddChild(child: Node, zIndex?: number, name?: string): void;\t\t\n\t\t/**\n\t\t!#en Stops all running actions and schedulers.\n\t\t!#zh 停止所有正在播放的动作和计时器。\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.cleanup();\n\t\t``` \n\t\t*/\n\t\tcleanup(): void;\t\t\n\t\t/**\n\t\t!#en Sorts the children array depends on children's zIndex and arrivalOrder,\n\t\tnormally you won't need to invoke this function.\n\t\t!#zh 根据子节点的 zIndex 和 arrivalOrder 进行排序，正常情况下开发者不需要手动调用这个函数。 \n\t\t*/\n\t\tsortAllChildren(): void;\t\t\n\t\t/** !en\n\t\tSwitch 2D/3D node. The 2D nodes will run faster.\n\t\t!zh\n\t\t切换 2D/3D 节点，2D 节点会有更高的运行效率 */\n\t\tis3DNode: boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the displayed opacity of Node,\n\t\tthe difference between displayed opacity and opacity is that displayed opacity is calculated based on opacity and parent node's opacity when cascade opacity enabled.\n\t\t!#zh\n\t\t获取节点显示透明度，\n\t\t显示透明度和透明度之间的不同之处在于当启用级连透明度时，\n\t\t显示透明度是基于自身透明度和父节点透明度计算的。 \n\t\t*/\n\t\tgetDisplayedOpacity(): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the displayed color of Node,\n\t\tthe difference between displayed color and color is that displayed color is calculated based on color and parent node's color when cascade color enabled.\n\t\t!#zh\n\t\t获取节点的显示颜色，\n\t\t显示颜色和颜色之间的不同之处在于当启用级连颜色时，\n\t\t显示颜色是基于自身颜色和父节点颜色计算的。 \n\t\t*/\n\t\tgetDisplayedColor(): Color;\t\t\n\t\t/** !#en Cascade opacity is removed from v2.0\n\t\tIndicate whether node's opacity value affect its child nodes, default value is true.\n\t\t!#zh 透明度级联功能从 v2.0 开始已移除\n\t\t节点的不透明度值是否影响其子节点，默认值为 true。 */\n\t\tcascadeOpacity: boolean;\t\t\n\t\t/**\n\t\t!#en Cascade opacity is removed from v2.0\n\t\tReturns whether node's opacity value affect its child nodes.\n\t\t!#zh 透明度级联功能从 v2.0 开始已移除\n\t\t返回节点的不透明度值是否影响其子节点。 \n\t\t*/\n\t\tisCascadeOpacityEnabled(): boolean;\t\t\n\t\t/**\n\t\t!#en Cascade opacity is removed from v2.0\n\t\tEnable or disable cascade opacity, if cascade enabled, child nodes' opacity will be the multiplication of parent opacity and its own opacity.\n\t\t!#zh 透明度级联功能从 v2.0 开始已移除\n\t\t启用或禁用级连不透明度，如果级连启用，子节点的不透明度将是父不透明度乘上它自己的不透明度。\n\t\t@param cascadeOpacityEnabled cascadeOpacityEnabled \n\t\t*/\n\t\tsetCascadeOpacityEnabled(cascadeOpacityEnabled: boolean): void;\t\t\n\t\t/**\n\t\t!#en Opacity modify RGB have been removed since v2.0\n\t\tSet whether color should be changed with the opacity value,\n\t\tuseless in ccsg.Node, but this function is override in some class to have such behavior.\n\t\t!#zh 透明度影响颜色配置已经被废弃\n\t\t设置更改透明度时是否修改RGB值，\n\t\t@param opacityValue opacityValue \n\t\t*/\n\t\tsetOpacityModifyRGB(opacityValue: boolean): void;\t\t\n\t\t/**\n\t\t!#en Opacity modify RGB have been removed since v2.0\n\t\tGet whether color should be changed with the opacity value.\n\t\t!#zh 透明度影响颜色配置已经被废弃\n\t\t获取更改透明度时是否修改RGB值。 \n\t\t*/\n\t\tisOpacityModifyRGB(): boolean;\t\n\t}\t\n\t/** !#en\n\tClass of private entities in Cocos Creator scenes.<br/>\n\tThe PrivateNode is hidden in editor, and completely transparent to users.<br/>\n\tIt's normally used as Node's private content created by components in parent node.<br/>\n\tSo in theory private nodes are not children, they are part of the parent node.<br/>\n\tPrivate node have two important characteristics:<br/>\n\t1. It has the minimum z index and cannot be modified, because they can't be displayed over real children.<br/>\n\t2. The positioning of private nodes is also special, they will consider the left bottom corner of the parent node's bounding box as the origin of local coordinates.<br/>\n\t   In this way, they can be easily kept inside the bounding box.<br/>\n\tCurrently, it's used by RichText component and TileMap component.\n\t!#zh\n\tCocos Creator 场景中的私有节点类。<br/>\n\t私有节点在编辑器中不可见，对用户透明。<br/>\n\t通常私有节点是被一些特殊的组件创建出来作为父节点的一部分而存在的，理论上来说，它们不是子节点，而是父节点的组成部分。<br/>\n\t私有节点有两个非常重要的特性：<br/>\n\t1. 它有着最小的渲染排序的 Z 轴深度，并且无法被更改，因为它们不能被显示在其他正常子节点之上。<br/>\n\t2. 它的定位也是特殊的，对于私有节点来说，父节点包围盒的左下角是它的局部坐标系原点，这个原点相当于父节点的位置减去它锚点的偏移。这样私有节点可以比较容易被控制在包围盒之中。<br/>\n\t目前在引擎中，RichText 和 TileMap 都有可能生成私有节点。 */\n\texport class PrivateNode extends Node {\t\t\n\t\t/**\n\t\t\n\t\t@param name name \n\t\t*/\n\t\tconstructor(name?: string);\t\n\t}\t\n\t/** !#en\n\tcc.Scene is a subclass of cc.Node that is used only as an abstract concept.<br/>\n\tcc.Scene and cc.Node are almost identical with the difference that users can not modify cc.Scene manually.\n\t!#zh\n\tcc.Scene 是 cc.Node 的子类，仅作为一个抽象的概念。<br/>\n\tcc.Scene 和 cc.Node 有点不同，用户不应直接修改 cc.Scene。 */\n\texport class Scene extends Node {\t\t\n\t\t/** !#en Indicates whether all (directly or indirectly) static referenced assets of this scene are releasable by default after scene unloading.\n\t\t!#zh 指示该场景中直接或间接静态引用到的所有资源是否默认在场景切换后自动释放。 */\n\t\tautoReleaseAssets: boolean;\t\n\t}\t\n\t/** !#en\n\tScheduler is responsible of triggering the scheduled callbacks.<br/>\n\tYou should not use NSTimer. Instead use this class.<br/>\n\t<br/>\n\tThere are 2 different types of callbacks (selectors):<br/>\n\t    - update callback: the 'update' callback will be called every frame. You can customize the priority.<br/>\n\t    - custom callback: A custom callback will be called every frame, or with a custom interval of time<br/>\n\t<br/>\n\tThe 'custom selectors' should be avoided when possible. It is faster,\n\tand consumes less memory to use the 'update callback'. *\n\t!#zh\n\tScheduler 是负责触发回调函数的类。<br/>\n\t通常情况下，建议使用 cc.director.getScheduler() 来获取系统定时器。<br/>\n\t有两种不同类型的定时器：<br/>\n\t    - update 定时器：每一帧都会触发。您可以自定义优先级。<br/>\n\t    - 自定义定时器：自定义定时器可以每一帧或者自定义的时间间隔触发。<br/>\n\t如果希望每帧都触发，应该使用 update 定时器，使用 update 定时器更快，而且消耗更少的内存。 */\n\texport class Scheduler {\t\t\n\t\t/**\n\t\t!en This method should be called for any target which needs to schedule tasks, and this method should be called before any scheduler API usage.\n\t\tThis method will add a `_id` property if it doesn't exist.\n\t\t!zh 任何需要用 Scheduler 管理任务的对象主体都应该调用这个方法，并且应该在调用任何 Scheduler API 之前调用这个方法。\n\t\t这个方法会给对象添加一个 `_id` 属性，如果这个属性不存在的话。\n\t\t@param target target \n\t\t*/\n\t\tenableForTarget(target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tModifies the time of all scheduled callbacks.<br/>\n\t\tYou can use this property to create a 'slow motion' or 'fast forward' effect.<br/>\n\t\tDefault is 1.0. To create a 'slow motion' effect, use values below 1.0.<br/>\n\t\tTo create a 'fast forward' effect, use values higher than 1.0.<br/>\n\t\tNote：It will affect EVERY scheduled selector / action.\n\t\t!#zh\n\t\t设置时间间隔的缩放比例。<br/>\n\t\t您可以使用这个方法来创建一个 “slow motion（慢动作）” 或 “fast forward（快进）” 的效果。<br/>\n\t\t默认是 1.0。要创建一个 “slow motion（慢动作）” 效果,使用值低于 1.0。<br/>\n\t\t要使用 “fast forward（快进）” 效果，使用值大于 1.0。<br/>\n\t\t注意：它影响该 Scheduler 下管理的所有定时器。\n\t\t@param timeScale timeScale \n\t\t*/\n\t\tsetTimeScale(timeScale: number): void;\t\t\n\t\t/**\n\t\t!#en Returns time scale of scheduler.\n\t\t!#zh 获取时间间隔的缩放比例。 \n\t\t*/\n\t\tgetTimeScale(): number;\t\t\n\t\t/**\n\t\t!#en 'update' the scheduler. (You should NEVER call this method, unless you know what you are doing.)\n\t\t!#zh update 调度函数。(不应该直接调用这个方法，除非完全了解这么做的结果)\n\t\t@param dt delta time \n\t\t*/\n\t\tupdate(dt: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\t<p>\n\t\t  The scheduled method will be called every 'interval' seconds.<br/>\n\t\t  If paused is YES, then it won't be called until it is resumed.<br/>\n\t\t  If 'interval' is 0, it will be called every frame, but if so, it recommended to use 'scheduleUpdateForTarget:' instead.<br/>\n\t\t  If the callback function is already scheduled, then only the interval parameter will be updated without re-scheduling it again.<br/>\n\t\t  repeat let the action be repeated repeat + 1 times, use cc.macro.REPEAT_FOREVER to let the action run continuously<br/>\n\t\t  delay is the amount of time the action will wait before it'll start<br/>\n\t\t</p>\n\t\t!#zh\n\t\t指定回调函数，调用对象等信息来添加一个新的定时器。<br/>\n\t\t如果 paused 值为 true，那么直到 resume 被调用才开始计时。<br/>\n\t\t当时间间隔达到指定值时，设置的回调函数将会被调用。<br/>\n\t\t如果 interval 值为 0，那么回调函数每一帧都会被调用，但如果是这样，\n\t\t建议使用 scheduleUpdateForTarget 代替。<br/>\n\t\t如果回调函数已经被定时器使用，那么只会更新之前定时器的时间间隔参数，不会设置新的定时器。<br/>\n\t\trepeat 值可以让定时器触发 repeat + 1 次，使用 cc.macro.REPEAT_FOREVER\n\t\t可以让定时器一直循环触发。<br/>\n\t\tdelay 值指定延迟时间，定时器会在延迟指定的时间之后开始计时。\n\t\t@param callback callback\n\t\t@param target target\n\t\t@param interval interval\n\t\t@param repeat repeat\n\t\t@param delay delay\n\t\t@param paused paused\n\t\t\n\t\t@example \n\t\t```js\n\t\t//register a schedule to scheduler\n\t\tcc.director.getScheduler().schedule(callback, this, interval, !this._isRunning);\n\t\t\n\t\t``` \n\t\t*/\n\t\tschedule(callback: Function, target: any, interval: number, repeat: number, delay: number, paused?: boolean): void;\n\t\tschedule(callback: Function, target: any, interval: number, paused?: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSchedules the update callback for a given target,\n\t\tDuring every frame after schedule started, the \"update\" function of target will be invoked.\n\t\t!#zh\n\t\t使用指定的优先级为指定的对象设置 update 定时器。\n\t\tupdate 定时器每一帧都会被触发，触发时自动调用指定对象的 \"update\" 函数。\n\t\t优先级的值越低，定时器被触发的越早。\n\t\t@param target target\n\t\t@param priority priority\n\t\t@param paused paused \n\t\t*/\n\t\tscheduleUpdate(target: any, priority: number, paused: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tUnschedules a callback for a callback and a given target.\n\t\tIf you want to unschedule the \"update\", use `unscheduleUpdate()`\n\t\t!#zh\n\t\t取消指定对象定时器。\n\t\t如果需要取消 update 定时器，请使用 unscheduleUpdate()。\n\t\t@param callback The callback to be unscheduled\n\t\t@param target The target bound to the callback. \n\t\t*/\n\t\tunschedule(callback: Function, target: any): void;\t\t\n\t\t/**\n\t\t!#en Unschedules the update callback for a given target.\n\t\t!#zh 取消指定对象的 update 定时器。\n\t\t@param target The target to be unscheduled. \n\t\t*/\n\t\tunscheduleUpdate(target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tUnschedules all scheduled callbacks for a given target.\n\t\tThis also includes the \"update\" callback.\n\t\t!#zh 取消指定对象的所有定时器，包括 update 定时器。\n\t\t@param target The target to be unscheduled. \n\t\t*/\n\t\tunscheduleAllForTarget(target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tUnschedules all scheduled callbacks from all targets including the system callbacks.<br/>\n\t\tYou should NEVER call this method, unless you know what you are doing.\n\t\t!#zh\n\t\t取消所有对象的所有定时器，包括系统定时器。<br/>\n\t\t不用调用此函数，除非你确定你在做什么。 \n\t\t*/\n\t\tunscheduleAll(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tUnschedules all callbacks from all targets with a minimum priority.<br/>\n\t\tYou should only call this with `PRIORITY_NON_SYSTEM_MIN` or higher.\n\t\t!#zh\n\t\t取消所有优先级的值大于指定优先级的定时器。<br/>\n\t\t你应该只取消优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。\n\t\t@param minPriority The minimum priority of selector to be unscheduled. Which means, all selectors which\n\t\t       priority is higher than minPriority will be unscheduled. \n\t\t*/\n\t\tunscheduleAllWithMinPriority(minPriority: number): void;\t\t\n\t\t/**\n\t\t!#en Checks whether a callback for a given target is scheduled.\n\t\t!#zh 检查指定的回调函数和回调对象组合是否存在定时器。\n\t\t@param callback The callback to check.\n\t\t@param target The target of the callback. \n\t\t*/\n\t\tisScheduled(callback: Function, target: any): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tPause all selectors from all targets.<br/>\n\t\tYou should NEVER call this method, unless you know what you are doing.\n\t\t!#zh\n\t\t暂停所有对象的所有定时器。<br/>\n\t\t不要调用这个方法，除非你知道你正在做什么。 \n\t\t*/\n\t\tpauseAllTargets(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tPause all selectors from all targets with a minimum priority. <br/>\n\t\tYou should only call this with kCCPriorityNonSystemMin or higher.\n\t\t!#zh\n\t\t暂停所有优先级的值大于指定优先级的定时器。<br/>\n\t\t你应该只暂停优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。\n\t\t@param minPriority minPriority \n\t\t*/\n\t\tpauseAllTargetsWithMinPriority(minPriority: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tResume selectors on a set of targets.<br/>\n\t\tThis can be useful for undoing a call to pauseAllCallbacks.\n\t\t!#zh\n\t\t恢复指定数组中所有对象的定时器。<br/>\n\t\t这个函数是 pauseAllCallbacks 的逆操作。\n\t\t@param targetsToResume targetsToResume \n\t\t*/\n\t\tresumeTargets(targetsToResume: any[]): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tPauses the target.<br/>\n\t\tAll scheduled selectors/update for a given target won't be 'ticked' until the target is resumed.<br/>\n\t\tIf the target is not present, nothing happens.\n\t\t!#zh\n\t\t暂停指定对象的定时器。<br/>\n\t\t指定对象的所有定时器都会被暂停。<br/>\n\t\t如果指定的对象没有定时器，什么也不会发生。\n\t\t@param target target \n\t\t*/\n\t\tpauseTarget(target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tResumes the target.<br/>\n\t\tThe 'target' will be unpaused, so all schedule selectors/update will be 'ticked' again.<br/>\n\t\tIf the target is not present, nothing happens.\n\t\t!#zh\n\t\t恢复指定对象的所有定时器。<br/>\n\t\t指定对象的所有定时器将继续工作。<br/>\n\t\t如果指定的对象没有定时器，什么也不会发生。\n\t\t@param target target \n\t\t*/\n\t\tresumeTarget(target: any): void;\t\t\n\t\t/**\n\t\t!#en Returns whether or not the target is paused.\n\t\t!#zh 返回指定对象的定时器是否暂停了。\n\t\t@param target target \n\t\t*/\n\t\tisTargetPaused(target: any): boolean;\t\t\n\t\t/** !#en Priority level reserved for system services.\n\t\t!#zh 系统服务的优先级。 */\n\t\tstatic PRIORITY_SYSTEM: number;\t\t\n\t\t/** !#en Minimum priority level for user scheduling.\n\t\t!#zh 用户调度最低优先级。 */\n\t\tstatic PRIORITY_NON_SYSTEM: number;\t\n\t}\t\n\t/** !#en\n\tCamera is usefull when making reel game or other games which need scroll screen.\n\tUsing camera will be more efficient than moving node to scroll screen.\n\tCamera\n\t!#zh\n\t摄像机在制作卷轴或是其他需要移动屏幕的游戏时比较有用，使用摄像机将会比移动节点来移动屏幕更加高效。 */\n\texport class Camera extends Component {\t\t\n\t\t/** !#en\n\t\tThe camera zoom ratio, only support 2D camera.\n\t\t!#zh\n\t\t摄像机缩放比率, 只支持 2D camera。 */\n\t\tzoomRatio: number;\t\t\n\t\t/** !#en\n\t\tField of view. The width of the Camera’s view angle, measured in degrees along the local Y axis.\n\t\t!#zh\n\t\t决定摄像机视角的宽度，当摄像机处于透视投影模式下这个属性才会生效。 */\n\t\tfov: number;\t\t\n\t\t/** !#en\n\t\tThe viewport size of the Camera when set to orthographic projection.\n\t\t!#zh\n\t\t摄像机在正交投影模式下的视窗大小。 */\n\t\torthoSize: number;\t\t\n\t\t/** !#en\n\t\tThe near clipping plane.\n\t\t!#zh\n\t\t摄像机的近剪裁面。 */\n\t\tnearClip: number;\t\t\n\t\t/** !#en\n\t\tThe far clipping plane.\n\t\t!#zh\n\t\t摄像机的远剪裁面。 */\n\t\tfarClip: number;\t\t\n\t\t/** !#en\n\t\tIs the camera orthographic (true) or perspective (false)?\n\t\t!#zh\n\t\t设置摄像机的投影模式是正交还是透视模式。 */\n\t\tortho: boolean;\t\t\n\t\t/** !#en\n\t\tFour values (0 ~ 1) that indicate where on the screen this camera view will be drawn.\n\t\t!#zh\n\t\t决定摄像机绘制在屏幕上哪个位置，值为（0 ~ 1）。 */\n\t\trect: Rect;\t\t\n\t\t/** !#en\n\t\tThis is used to render parts of the scene selectively.\n\t\t!#zh\n\t\t决定摄像机会渲染场景的哪一部分。 */\n\t\tcullingMask: number;\t\t\n\t\t/** !#en\n\t\tDetermining what to clear when camera rendering.\n\t\t!#zh\n\t\t决定摄像机渲染时会清除哪些状态。 */\n\t\tclearFlags: Camera.ClearFlags;\t\t\n\t\t/** !#en\n\t\tThe color with which the screen will be cleared.\n\t\t!#zh\n\t\t摄像机用于清除屏幕的背景色。 */\n\t\tbackgroundColor: Color;\t\t\n\t\t/** !#en\n\t\tCamera's depth in the camera rendering order.\n\t\t!#zh\n\t\t摄像机深度，用于决定摄像机的渲染顺序。 */\n\t\tdepth: number;\t\t\n\t\t/** !#en\n\t\tDestination render texture.\n\t\tUsually cameras render directly to screen, but for some effects it is useful to make a camera render into a texture.\n\t\t!#zh\n\t\t摄像机渲染的目标 RenderTexture。\n\t\t一般摄像机会直接渲染到屏幕上，但是有一些效果可以使用摄像机渲染到 RenderTexture 上再对 RenderTexture 进行处理来实现。 */\n\t\ttargetTexture: RenderTexture;\t\t\n\t\t/** !#en\n\t\tSets the camera's render stages.\n\t\t!#zh\n\t\t设置摄像机渲染的阶段 */\n\t\trenderStages: number;\t\t\n\t\t/** !#en\n\t\tThe first enabled camera.\n\t\t!#zh\n\t\t第一个被激活的摄像机。 */\n\t\tstatic main: Camera;\t\t\n\t\t/** !#en\n\t\tAll enabled cameras.\n\t\t!#zh\n\t\t激活的所有摄像机。 */\n\t\tstatic cameras: Camera[];\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the first camera which the node belong to.\n\t\t!#zh\n\t\t获取节点所在的第一个摄像机。\n\t\t@param node node \n\t\t*/\n\t\tstatic findCamera(node: Node): Camera;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the screen to world matrix, only support 2D camera.\n\t\t!#zh\n\t\t获取屏幕坐标系到世界坐标系的矩阵，只适用于 2D 摄像机。\n\t\t@param out the matrix to receive the result \n\t\t*/\n\t\tgetScreenToWorldMatrix2D(out: Mat4): Mat4;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the world to camera matrix, only support 2D camera.\n\t\t!#zh\n\t\t获取世界坐标系到摄像机坐标系的矩阵，只适用于 2D 摄像机。\n\t\t@param out the matrix to receive the result \n\t\t*/\n\t\tgetWorldToScreenMatrix2D(out: Mat4): Mat4;\t\t\n\t\t/**\n\t\t!#en\n\t\tConvert point from screen to world.\n\t\t!#zh\n\t\t将坐标从屏幕坐标系转换到世界坐标系。\n\t\t@param screenPosition screenPosition\n\t\t@param out out \n\t\t*/\n\t\tgetScreenToWorldPoint(screenPosition: Vec3|Vec2, out?: Vec3|Vec2): Vec3;\t\t\n\t\t/**\n\t\t!#en\n\t\tConvert point from world to screen.\n\t\t!#zh\n\t\t将坐标从世界坐标系转化到屏幕坐标系。\n\t\t@param worldPosition worldPosition\n\t\t@param out out \n\t\t*/\n\t\tgetWorldToScreenPoint(worldPosition: Vec3|Vec2, out?: Vec3|Vec2): Vec3;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet a ray from screen position\n\t\t!#zh\n\t\t从屏幕坐标获取一条射线\n\t\t@param screenPos screenPos \n\t\t*/\n\t\tgetRay(screenPos: Vec2): Ray;\t\t\n\t\t/**\n\t\t!#en\n\t\tCheck whether the node is in the camera.\n\t\t!#zh\n\t\t检测节点是否被此摄像机影响\n\t\t@param node the node which need to check \n\t\t*/\n\t\tcontainsNode(node: Node): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tRender the camera manually.\n\t\t!#zh\n\t\t手动渲染摄像机。\n\t\t@param root root \n\t\t*/\n\t\trender(root: Node): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the matrix that transform the node's (local) space coordinates into the camera's space coordinates.\n\t\t!#zh\n\t\t返回一个将节点坐标系转换到摄像机坐标系下的矩阵\n\t\t@param node the node which should transform \n\t\t*/\n\t\tgetNodeToCameraTransform(node: Node): AffineTransform;\t\t\n\t\t/**\n\t\t!#en\n\t\tConver a camera coordinates point to world coordinates.\n\t\t!#zh\n\t\t将一个摄像机坐标系下的点转换到世界坐标系下。\n\t\t@param point the point which should transform\n\t\t@param out the point to receive the result \n\t\t*/\n\t\tgetCameraToWorldPoint(point: Vec2, out: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tConver a world coordinates point to camera coordinates.\n\t\t!#zh\n\t\t将一个世界坐标系下的点转换到摄像机坐标系下。\n\t\t@param point point\n\t\t@param out the point to receive the result \n\t\t*/\n\t\tgetWorldToCameraPoint(point: Vec2, out: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the camera to world matrix\n\t\t!#zh\n\t\t获取摄像机坐标系到世界坐标系的矩阵\n\t\t@param out the matrix to receive the result \n\t\t*/\n\t\tgetCameraToWorldMatrix(out: Mat4): Mat4;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the world to camera matrix\n\t\t!#zh\n\t\t获取世界坐标系到摄像机坐标系的矩阵\n\t\t@param out the matrix to receive the result \n\t\t*/\n\t\tgetWorldToCameraMatrix(out: Mat4): Mat4;\t\n\t}\t\n\t/** !#en The Light Component\n\t\n\t!#zh 光源组件 */\n\texport class Light extends Component {\t\n\t}\t\n\t/** !#en\n\tBase class for handling assets used in Creator.<br/>\n\t\n\tYou may want to override:<br/>\n\t- createNode<br/>\n\t- getset functions of _nativeAsset<br/>\n\t- cc.Object._serialize<br/>\n\t- cc.Object._deserialize<br/>\n\t!#zh\n\tCreator 中的资源基类。<br/>\n\t\n\t您可能需要重写：<br/>\n\t- createNode <br/>\n\t- _nativeAsset 的 getset 方法<br/>\n\t- cc.Object._serialize<br/>\n\t- cc.Object._deserialize<br/> */\n\texport class Asset extends RawAsset {\t\t\n\t\t/** !#en\n\t\tWhether the asset is loaded or not\n\t\t!#zh\n\t\t该资源是否已经成功加载 */\n\t\tloaded: boolean;\t\t\n\t\t/** !#en\n\t\tPoints to the true url of this asset's native object, only valid when asset is loaded and asyncLoadAsset is not enabled.\n\t\tUrl equals nativeUrl on web(web-mobile, web-desktop) or native(iOS, Android etc) platform. The difference between\n\t\tnativeUrl and url is that url may points to temporary path or cached path on mini game platform which has cache mechanism (WeChat etc).\n\t\tIf you want to make use of the native file on those platforms, you should use url instead of nativeUrl.\n\t\t!#zh\n\t\t资源的原生文件的真实url，只在资源被加载后以及没有启用延迟加载时才有效。在web平台（web-mobile, web-desktop）或者原生平台（iOS，安卓等）上url与\n\t\tnativeUrl是相等的，nativeUrl与url的区别在于，某些带缓存机制的小游戏平台（微信等）上url可能会指向临时文件路径或者缓存路径，如果你需要在这些平台上使用资源的原生文件，\n\t\t请使用url，避免使用nativeUrl */\n\t\turl: string;\t\t\n\t\t/** !#en\n\t\tReturns the url of this asset's native object, if none it will returns an empty string.\n\t\t!#zh\n\t\t返回该资源对应的目标平台资源的 URL，如果没有将返回一个空字符串。 */\n\t\tnativeUrl: string;\t\t\n\t\t/** !#en Indicates whether its dependent raw assets can support deferred load if the owner scene (or prefab) is marked as `asyncLoadAssets`.\n\t\t!#zh 当场景或 Prefab 被标记为 `asyncLoadAssets`，禁止延迟加载该资源所依赖的其它 RawAsset。 */\n\t\tstatic preventDeferredLoadDependents: boolean;\t\t\n\t\t/** !#en Indicates whether its native object should be preloaded from native url.\n\t\t!#zh 禁止预加载原生对象。 */\n\t\tstatic preventPreloadNativeObject: boolean;\t\t\n\t\t/**\n\t\tReturns the asset's url.\n\t\t\n\t\tThe `Asset` object overrides the `toString()` method of the `Object` object.\n\t\tFor `Asset` objects, the toString() method returns a string representation of the object.\n\t\tJavaScript calls the toString() method automatically when an asset is to be represented as a text value or when a texture is referred to in a string concatenation. \n\t\t*/\n\t\ttoString(): string;\t\t\n\t\t/**\n\t\t!#en\n\t\tCreate a new node using this asset in the scene.<br/>\n\t\tIf this type of asset dont have its corresponding node type, this method should be null.\n\t\t!#zh\n\t\t使用该资源在场景中创建一个新节点。<br/>\n\t\t如果这类资源没有相应的节点类型，该方法应该是空的。\n\t\t@param callback callback \n\t\t*/\n\t\tcreateNode(callback: (error: string, node: any) => void): void;\t\n\t}\t\n\t/** !#en Class for audio data handling.\n\t!#zh 音频资源类。 */\n\texport class AudioClip extends Asset implements EventTarget {\t\t\n\t\t/**\n\t\t!#en Checks whether the EventTarget object has any callback registered for a specific type of event.\n\t\t!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。\n\t\t@param type The type of event. \n\t\t*/\n\t\thasEventListener(type: string): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget.\n\t\tThis type of event should be triggered via `emit`.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.on('fire', function () {\n\t\t    cc.log(\"fire in the hole\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\ton<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemoves the listeners previously registered with the same type, callback, target and or useCapture,\n\t\tif only type is passed as parameter, all listeners registered with that type will be removed.\n\t\t!#zh\n\t\t删除之前用同类型，回调，目标或 useCapture 注册的事件监听器，如果只传递 type，将会删除 type 类型的所有事件监听器。\n\t\t@param type A string representing the event type being removed.\n\t\t@param callback The callback to remove.\n\t\t@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed\n\t\t\n\t\t@example \n\t\t```js\n\t\t// register fire eventListener\n\t\tvar callback = eventTarget.on('fire', function () {\n\t\t    cc.log(\"fire in the hole\");\n\t\t}, target);\n\t\t// remove fire event listener\n\t\teventTarget.off('fire', callback, target);\n\t\t// remove all fire event listeners\n\t\teventTarget.off('fire');\n\t\t``` \n\t\t*/\n\t\toff(type: string, callback?: Function, target?: any): void;\t\t\n\t\t/**\n\t\t!#en Removes all callbacks previously registered with the same target (passed as parameter).\n\t\tThis is not for removing all listeners in the current event target,\n\t\tand this is not for removing all listeners the target parameter have registered.\n\t\tIt's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.\n\t\t!#zh 在当前 EventTarget 上删除指定目标（target 参数）注册的所有事件监听器。\n\t\t这个函数无法删除当前 EventTarget 的所有事件监听器，也无法删除 target 参数所注册的所有事件监听器。\n\t\t这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。\n\t\t@param target The target to be searched for all related listeners \n\t\t*/\n\t\ttargetOff(target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget,\n\t\tthe callback will remove itself after the first time it is triggered.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调，回调会在第一时间被触发后删除自身。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.once('fire', function () {\n\t\t    cc.log(\"this is the callback and will be invoked only once\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\tonce(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tTrigger an event directly with the event name and necessary arguments.\n\t\t!#zh\n\t\t通过事件名发送自定义事件\n\t\t@param type event type\n\t\t@param arg1 First argument\n\t\t@param arg2 Second argument\n\t\t@param arg3 Third argument\n\t\t@param arg4 Fourth argument\n\t\t@param arg5 Fifth argument\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.emit('fire', event);\n\t\teventTarget.emit('fire', message, emitter);\n\t\t``` \n\t\t*/\n\t\temit(type: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSend an event with the event object.\n\t\t!#zh\n\t\t通过事件对象派发事件\n\t\t@param event event \n\t\t*/\n\t\tdispatchEvent(event: Event): void;\t\n\t}\t\n\t/** !#en Class for BitmapFont handling.\n\t!#zh 位图字体资源类。 */\n\texport class BitmapFont extends Font {\t\n\t}\t\n\t/** undefined */\n\texport class BufferAsset extends Asset {\t\n\t}\t\n\t/** !#en Class for Font handling.\n\t!#zh 字体资源类。 */\n\texport class Font extends Asset {\t\n\t}\t\n\t/** !#en\n\tClass for JSON file. When the JSON file is loaded, this object is returned.\n\tThe parsed JSON object can be accessed through the `json` attribute in it.<br>\n\tIf you want to get the original JSON text, you should modify the extname to `.txt`\n\tso that it is loaded as a `TextAsset` instead of a `JsonAsset`.\n\t\n\t!#zh\n\tJSON 资源类。JSON 文件加载后，将会返回该对象。可以通过其中的 `json` 属性访问解析后的 JSON 对象。<br>\n\t如果你想要获得 JSON 的原始文本，那么应该修改源文件的后缀为 `.txt`，这样就会加载为一个 `TextAsset` 而不是 `JsonAsset`。 */\n\texport class JsonAsset extends Asset {\t\t\n\t\t/** The loaded JSON object. */\n\t\tjson: any;\t\n\t}\t\n\t/** !#en Class for LabelAtlas handling.\n\t!#zh 艺术数字字体资源类。 */\n\texport class LabelAtlas extends BitmapFont {\t\n\t}\t\n\t/** !#en Class for prefab handling.\n\t!#zh 预制资源类。 */\n\texport class Prefab extends Asset {\t\t\n\t\t/** the main cc.Node in the prefab */\n\t\tdata: Node;\t\t\n\t\t/** !#zh\n\t\t设置实例化这个 prefab 时所用的优化策略。根据使用情况设置为合适的值，能优化该 prefab 实例化所用的时间。\n\t\t!#en\n\t\tIndicates the optimization policy for instantiating this prefab.\n\t\tSet to a suitable value based on usage, can optimize the time it takes to instantiate this prefab. */\n\t\toptimizationPolicy: Prefab.OptimizationPolicy;\t\t\n\t\t/** !#en Indicates the raw assets of this prefab can be load after prefab loaded.\n\t\t!#zh 指示该 Prefab 依赖的资源可否在 Prefab 加载后再延迟加载。 */\n\t\tasyncLoadAssets: boolean;\t\t\n\t\treadonly: boolean;\t\t\n\t\t/**\n\t\tDynamically translation prefab data into minimized code.<br/>\n\t\tThis method will be called automatically before the first time the prefab being instantiated,\n\t\tbut you can re-call to refresh the create function once you modified the original prefab data in script. \n\t\t*/\n\t\tcompileCreateFunction(): void;\t\n\t}\t\n\t/** !#en\n\tThe base class for registering asset types.\n\t!#zh\n\t注册用的资源基类。 */\n\texport class RawAsset extends Object {\t\n\t}\t\n\t/** Render textures are textures that can be rendered to. */\n\texport class RenderTexture extends Texture2D {\t\t\n\t\t/**\n\t\t!#en\n\t\tInit the render texture with size.\n\t\t!#zh\n\t\t初始化 render texture\n\t\t@param width width\n\t\t@param height height\n\t\t@param depthStencilFormat depthStencilFormat \n\t\t*/\n\t\tinitWithSize(width?: number, height?: number, depthStencilFormat?: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet pixels from render texture, the pixels data stores in a RGBA Uint8Array.\n\t\tIt will return a new (width * height * 4) length Uint8Array by default。\n\t\tYou can specify a data to store the pixels to reuse the data,\n\t\tyou and can specify other params to specify the texture region to read.\n\t\t!#zh\n\t\t从 render texture 读取像素数据，数据类型为 RGBA 格式的 Uint8Array 数组。\n\t\t默认每次调用此函数会生成一个大小为 （长 x 高 x 4） 的 Uint8Array。\n\t\t你可以通过传入 data 来接收像素数据，也可以通过传参来指定需要读取的区域的像素。\n\t\t@param data data\n\t\t@param x x\n\t\t@param y y\n\t\t@param w w\n\t\t@param h h \n\t\t*/\n\t\treadPixels(data?: Uint8Array, x?: number, y?: number, w?: number, h?: number): Uint8Array;\t\n\t}\t\n\t/** !#en Class for scene handling.\n\t!#zh 场景资源类。 */\n\texport class SceneAsset extends Asset {\t\t\n\t\tscene: Scene;\t\t\n\t\t/** !#en Indicates the raw assets of this scene can be load after scene launched.\n\t\t!#zh 指示该场景依赖的资源可否在场景切换后再延迟加载。 */\n\t\tasyncLoadAssets: boolean;\t\n\t}\t\n\t/** !#en Class for script handling.\n\t!#zh Script 资源类。 */\n\texport class _Script extends Asset {\t\n\t}\t\n\t/** !#en Class for JavaScript handling.\n\t!#zh JavaScript 资源类。 */\n\texport class _JavaScript extends Asset {\t\n\t}\t\n\t/** !#en Class for coffeescript handling.\n\t!#zh CoffeeScript 资源类。 */\n\texport class CoffeeScript extends Asset {\t\n\t}\t\n\t/** !#en Class for TypeScript handling.\n\t!#zh TypeScript 资源类。 */\n\texport class TypeScript extends Asset {\t\n\t}\t\n\t/** !#en Class for sprite atlas handling.\n\t!#zh 精灵图集资源类。 */\n\texport class SpriteAtlas extends Asset {\t\t\n\t\t/**\n\t\tReturns the texture of the sprite atlas \n\t\t*/\n\t\tgetTexture(): Texture2D;\t\t\n\t\t/**\n\t\tReturns the sprite frame correspond to the given key in sprite atlas.\n\t\t@param key key \n\t\t*/\n\t\tgetSpriteFrame(key: string): SpriteFrame;\t\t\n\t\t/**\n\t\tReturns the sprite frames in sprite atlas. \n\t\t*/\n\t\tgetSpriteFrames(): SpriteFrame[];\t\n\t}\t\n\t/** !#en\n\tA cc.SpriteFrame has:<br/>\n\t - texture: A cc.Texture2D that will be used by render components<br/>\n\t - rectangle: A rectangle of the texture\n\t\n\t!#zh\n\t一个 SpriteFrame 包含：<br/>\n\t - 纹理：会被渲染组件使用的 Texture2D 对象。<br/>\n\t - 矩形：在纹理中的矩形区域。 */\n\texport class SpriteFrame extends Asset implements EventTarget {\t\t\n\t\t/** !#en Top border of the sprite\n\t\t!#zh sprite 的顶部边框 */\n\t\tinsetTop: number;\t\t\n\t\t/** !#en Bottom border of the sprite\n\t\t!#zh sprite 的底部边框 */\n\t\tinsetBottom: number;\t\t\n\t\t/** !#en Left border of the sprite\n\t\t!#zh sprite 的左边边框 */\n\t\tinsetLeft: number;\t\t\n\t\t/** !#en Right border of the sprite\n\t\t!#zh sprite 的左边边框 */\n\t\tinsetRight: number;\t\t\n\t\t/**\n\t\t!#en\n\t\tConstructor of SpriteFrame class.\n\t\t!#zh\n\t\tSpriteFrame 类的构造函数。\n\t\t@param filename filename\n\t\t@param rect rect\n\t\t@param rotated Whether the frame is rotated in the texture\n\t\t@param offset The offset of the frame in the texture\n\t\t@param originalSize The size of the frame in the texture \n\t\t*/\n\t\tconstructor(filename?: string|Texture2D, rect?: Rect, rotated?: boolean, offset?: Vec2, originalSize?: Size);\t\t\n\t\t/**\n\t\t!#en Returns whether the texture have been loaded\n\t\t!#zh 返回是否已加载纹理 \n\t\t*/\n\t\ttextureLoaded(): boolean;\t\t\n\t\t/**\n\t\t!#en Returns whether the sprite frame is rotated in the texture.\n\t\t!#zh 获取 SpriteFrame 是否旋转 \n\t\t*/\n\t\tisRotated(): boolean;\t\t\n\t\t/**\n\t\t!#en Set whether the sprite frame is rotated in the texture.\n\t\t!#zh 设置 SpriteFrame 是否旋转\n\t\t@param bRotated bRotated \n\t\t*/\n\t\tsetRotated(bRotated: boolean): void;\t\t\n\t\t/**\n\t\t!#en Returns the rect of the sprite frame in the texture.\n\t\t!#zh 获取 SpriteFrame 的纹理矩形区域 \n\t\t*/\n\t\tgetRect(): Rect;\t\t\n\t\t/**\n\t\t!#en Sets the rect of the sprite frame in the texture.\n\t\t!#zh 设置 SpriteFrame 的纹理矩形区域\n\t\t@param rect rect \n\t\t*/\n\t\tsetRect(rect: Rect): void;\t\t\n\t\t/**\n\t\t!#en Returns the original size of the trimmed image.\n\t\t!#zh 获取修剪前的原始大小 \n\t\t*/\n\t\tgetOriginalSize(): Size;\t\t\n\t\t/**\n\t\t!#en Sets the original size of the trimmed image.\n\t\t!#zh 设置修剪前的原始大小\n\t\t@param size size \n\t\t*/\n\t\tsetOriginalSize(size: Size): void;\t\t\n\t\t/**\n\t\t!#en Returns the texture of the frame.\n\t\t!#zh 获取使用的纹理实例 \n\t\t*/\n\t\tgetTexture(): Texture2D;\t\t\n\t\t/**\n\t\t!#en Returns the offset of the frame in the texture.\n\t\t!#zh 获取偏移量 \n\t\t*/\n\t\tgetOffset(): Vec2;\t\t\n\t\t/**\n\t\t!#en Sets the offset of the frame in the texture.\n\t\t!#zh 设置偏移量\n\t\t@param offsets offsets \n\t\t*/\n\t\tsetOffset(offsets: Vec2): void;\t\t\n\t\t/**\n\t\t!#en Clone the sprite frame.\n\t\t!#zh 克隆 SpriteFrame \n\t\t*/\n\t\tclone(): SpriteFrame;\t\t\n\t\t/**\n\t\t!#en Set SpriteFrame with Texture, rect, rotated, offset and originalSize.<br/>\n\t\t!#zh 通过 Texture，rect，rotated，offset 和 originalSize 设置 SpriteFrame。\n\t\t@param textureOrTextureFile textureOrTextureFile\n\t\t@param rect rect\n\t\t@param rotated rotated\n\t\t@param offset offset\n\t\t@param originalSize originalSize \n\t\t*/\n\t\tsetTexture(textureOrTextureFile: string|Texture2D, rect?: Rect, rotated?: boolean, offset?: Vec2, originalSize?: Size): boolean;\t\t\n\t\t/**\n\t\t!#en If a loading scene (or prefab) is marked as `asyncLoadAssets`, all the textures of the SpriteFrame which\n\t\tassociated by user's custom Components in the scene, will not preload automatically.\n\t\tThese textures will be load when Sprite component is going to render the SpriteFrames.\n\t\tYou can call this method if you want to load the texture early.\n\t\t!#zh 当加载中的场景或 Prefab 被标记为 `asyncLoadAssets` 时，用户在场景中由自定义组件关联到的所有 SpriteFrame 的贴图都不会被提前加载。\n\t\t只有当 Sprite 组件要渲染这些 SpriteFrame 时，才会检查贴图是否加载。如果你希望加载过程提前，你可以手工调用这个方法。\n\t\t\n\t\t@example \n\t\t```js\n\t\tif (spriteFrame.textureLoaded()) {\n\t\t    this._onSpriteFrameLoaded();\n\t\t}\n\t\telse {\n\t\t    spriteFrame.once('load', this._onSpriteFrameLoaded, this);\n\t\t    spriteFrame.ensureLoadTexture();\n\t\t}\n\t\t``` \n\t\t*/\n\t\tensureLoadTexture(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tIf you do not need to use the SpriteFrame temporarily, you can call this method so that its texture could be garbage collected. Then when you need to render the SpriteFrame, you should call `ensureLoadTexture` manually to reload texture.\n\t\t!#zh\n\t\t当你暂时不再使用这个 SpriteFrame 时，可以调用这个方法来保证引用的贴图对象能被 GC。然后当你要渲染 SpriteFrame 时，你需要手动调用 `ensureLoadTexture` 来重新加载贴图。\n\t\t\n\t\t@example \n\t\t```js\n\t\tspriteFrame.clearTexture();\n\t\t// when you need the SpriteFrame again...\n\t\tspriteFrame.once('load', onSpriteFrameLoaded);\n\t\tspriteFrame.ensureLoadTexture();\n\t\t``` \n\t\t*/\n\t\tclearTexture(): void;\t\t\n\t\t/**\n\t\t!#en Checks whether the EventTarget object has any callback registered for a specific type of event.\n\t\t!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。\n\t\t@param type The type of event. \n\t\t*/\n\t\thasEventListener(type: string): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget.\n\t\tThis type of event should be triggered via `emit`.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.on('fire', function () {\n\t\t    cc.log(\"fire in the hole\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\ton<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemoves the listeners previously registered with the same type, callback, target and or useCapture,\n\t\tif only type is passed as parameter, all listeners registered with that type will be removed.\n\t\t!#zh\n\t\t删除之前用同类型，回调，目标或 useCapture 注册的事件监听器，如果只传递 type，将会删除 type 类型的所有事件监听器。\n\t\t@param type A string representing the event type being removed.\n\t\t@param callback The callback to remove.\n\t\t@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed\n\t\t\n\t\t@example \n\t\t```js\n\t\t// register fire eventListener\n\t\tvar callback = eventTarget.on('fire', function () {\n\t\t    cc.log(\"fire in the hole\");\n\t\t}, target);\n\t\t// remove fire event listener\n\t\teventTarget.off('fire', callback, target);\n\t\t// remove all fire event listeners\n\t\teventTarget.off('fire');\n\t\t``` \n\t\t*/\n\t\toff(type: string, callback?: Function, target?: any): void;\t\t\n\t\t/**\n\t\t!#en Removes all callbacks previously registered with the same target (passed as parameter).\n\t\tThis is not for removing all listeners in the current event target,\n\t\tand this is not for removing all listeners the target parameter have registered.\n\t\tIt's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.\n\t\t!#zh 在当前 EventTarget 上删除指定目标（target 参数）注册的所有事件监听器。\n\t\t这个函数无法删除当前 EventTarget 的所有事件监听器，也无法删除 target 参数所注册的所有事件监听器。\n\t\t这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。\n\t\t@param target The target to be searched for all related listeners \n\t\t*/\n\t\ttargetOff(target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget,\n\t\tthe callback will remove itself after the first time it is triggered.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调，回调会在第一时间被触发后删除自身。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.once('fire', function () {\n\t\t    cc.log(\"this is the callback and will be invoked only once\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\tonce(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tTrigger an event directly with the event name and necessary arguments.\n\t\t!#zh\n\t\t通过事件名发送自定义事件\n\t\t@param type event type\n\t\t@param arg1 First argument\n\t\t@param arg2 Second argument\n\t\t@param arg3 Third argument\n\t\t@param arg4 Fourth argument\n\t\t@param arg5 Fifth argument\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.emit('fire', event);\n\t\teventTarget.emit('fire', message, emitter);\n\t\t``` \n\t\t*/\n\t\temit(type: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSend an event with the event object.\n\t\t!#zh\n\t\t通过事件对象派发事件\n\t\t@param event event \n\t\t*/\n\t\tdispatchEvent(event: Event): void;\t\n\t}\t\n\t/** !#en Class for TTFFont handling.\n\t!#zh TTF 字体资源类。 */\n\texport class TTFFont extends Font {\t\n\t}\t\n\t/** !#en Class for text file.\n\t!#zh 文本资源类。 */\n\texport class TextAsset extends Asset {\t\t\n\t\t/** The text contents of the resource. */\n\t\ttext: string;\t\n\t}\t\n\t/** This class allows to easily create OpenGL or Canvas 2D textures from images or raw data. */\n\texport class Texture2D extends Asset implements EventTarget {\t\t\n\t\t/** !#en Sets whether generate mipmaps for the texture\n\t\t!#zh 是否为纹理设置生成 mipmaps。 */\n\t\tgenMipmaps: boolean;\t\t\n\t\t/** !#en\n\t\tSets whether texture can be packed into texture atlas.\n\t\tIf need use texture uv in custom Effect, please sets packable to false.\n\t\t!#zh\n\t\t设置纹理是否允许参与合图。\n\t\t如果需要在自定义 Effect 中使用纹理 UV，需要禁止该选项。 */\n\t\tpackable: boolean;\t\t\n\t\t/** !#en\n\t\tWhether the texture is loaded or not\n\t\t!#zh\n\t\t贴图是否已经成功加载 */\n\t\tloaded: boolean;\t\t\n\t\t/** !#en\n\t\tTexture width in pixel\n\t\t!#zh\n\t\t贴图像素宽度 */\n\t\twidth: number;\t\t\n\t\t/** !#en\n\t\tTexture height in pixel\n\t\t!#zh\n\t\t贴图像素高度 */\n\t\theight: number;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet renderer texture implementation object\n\t\textended from render.Texture2D\n\t\t!#zh  返回渲染器内部贴图对象 \n\t\t*/\n\t\tgetImpl(): void;\t\t\n\t\t/**\n\t\tUpdate texture options, not available in Canvas render mode.\n\t\timage, format, premultiplyAlpha can not be updated in native.\n\t\t@param options options \n\t\t*/\n\t\tupdate(options: {image: DOMImageElement; genMipmaps: boolean; format: Texture2D.PixelFormat; minFilter: Texture2D.Filter; magFilter: Texture2D.Filter; wrapS: WrapMode; wrapT: WrapMode; premultiplyAlpha: boolean; }): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tInit with HTML element.\n\t\t!#zh 用 HTML Image 或 Canvas 对象初始化贴图。\n\t\t@param element element\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar img = new Image();\n\t\timg.src = dataURL;\n\t\ttexture.initWithElement(img);\n\t\t``` \n\t\t*/\n\t\tinitWithElement(element: HTMLImageElement|HTMLCanvasElement): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tIntializes with a texture2d with data in Uint8Array.\n\t\t!#zh 使用一个存储在 Unit8Array 中的图像数据（raw data）初始化数据。\n\t\t@param data data\n\t\t@param pixelFormat pixelFormat\n\t\t@param pixelsWidth pixelsWidth\n\t\t@param pixelsHeight pixelsHeight \n\t\t*/\n\t\tinitWithData(data: DataView, pixelFormat: number, pixelsWidth: number, pixelsHeight: number): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tHTMLElement Object getter, available only on web.\n\t\t!#zh 获取当前贴图对应的 HTML Image 或 Canvas 对象，只在 Web 平台下有效。 \n\t\t*/\n\t\tgetHtmlElementObj(): HTMLImageElement;\t\t\n\t\t/**\n\t\t!#en\n\t\tDestory this texture and immediately release its video memory. (Inherit from cc.Object.destroy)<br>\n\t\tAfter destroy, this object is not usable any more.\n\t\tYou can use cc.isValid(obj) to check whether the object is destroyed before accessing it.\n\t\t!#zh\n\t\t销毁该贴图，并立即释放它对应的显存。（继承自 cc.Object.destroy）<br/>\n\t\t销毁后，该对象不再可用。您可以在访问对象之前使用 cc.isValid(obj) 来检查对象是否已被销毁。 \n\t\t*/\n\t\tdestroy(): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tPixel format of the texture.\n\t\t!#zh 获取纹理的像素格式。 \n\t\t*/\n\t\tgetPixelFormat(): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tWhether or not the texture has their Alpha premultiplied.\n\t\t!#zh 检查纹理在上传 GPU 时预乘选项是否开启。 \n\t\t*/\n\t\thasPremultipliedAlpha(): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tHandler of texture loaded event.\n\t\tSince v2.0, you don't need to invoke this function, it will be invoked automatically after texture loaded.\n\t\t!#zh 贴图加载事件处理器。v2.0 之后你将不在需要手动执行这个函数，它会在贴图加载成功之后自动执行。\n\t\t@param premultiplied premultiplied \n\t\t*/\n\t\thandleLoadedTexture(premultiplied?: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tDescription of cc.Texture2D.\n\t\t!#zh cc.Texture2D 描述。 \n\t\t*/\n\t\tdescription(): string;\t\t\n\t\t/**\n\t\t!#en\n\t\tRelease texture, please use destroy instead.\n\t\t!#zh 释放纹理，请使用 destroy 替代。 \n\t\t*/\n\t\treleaseTexture(): void;\t\t\n\t\t/**\n\t\t!#en Sets the wrap s and wrap t options. <br/>\n\t\tIf the texture size is NPOT (non power of 2), then in can only use gl.CLAMP_TO_EDGE in gl.TEXTURE_WRAP_{S,T}.\n\t\t!#zh 设置纹理包装模式。\n\t\t若纹理贴图尺寸是 NPOT（non power of 2），则只能使用 Texture2D.WrapMode.CLAMP_TO_EDGE。\n\t\t@param wrapS wrapS\n\t\t@param wrapT wrapT \n\t\t*/\n\t\tsetTexParameters(wrapS: Texture2D.WrapMode, wrapT: Texture2D.WrapMode): void;\t\t\n\t\t/**\n\t\t!#en Sets the minFilter and magFilter options\n\t\t!#zh 设置纹理贴图缩小和放大过滤器算法选项。\n\t\t@param minFilter minFilter\n\t\t@param magFilter magFilter \n\t\t*/\n\t\tsetFilters(minFilter: Texture2D.Filter, magFilter: Texture2D.Filter): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the flipY options\n\t\t!#zh 设置贴图的纵向翻转选项。\n\t\t@param flipY flipY \n\t\t*/\n\t\tsetFlipY(flipY: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the premultiply alpha options\n\t\t!#zh 设置贴图的预乘选项。\n\t\t@param premultiply premultiply \n\t\t*/\n\t\tsetPremultiplyAlpha(premultiply: boolean): void;\t\t\n\t\t/**\n\t\t!#en Checks whether the EventTarget object has any callback registered for a specific type of event.\n\t\t!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。\n\t\t@param type The type of event. \n\t\t*/\n\t\thasEventListener(type: string): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget.\n\t\tThis type of event should be triggered via `emit`.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.on('fire', function () {\n\t\t    cc.log(\"fire in the hole\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\ton<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemoves the listeners previously registered with the same type, callback, target and or useCapture,\n\t\tif only type is passed as parameter, all listeners registered with that type will be removed.\n\t\t!#zh\n\t\t删除之前用同类型，回调，目标或 useCapture 注册的事件监听器，如果只传递 type，将会删除 type 类型的所有事件监听器。\n\t\t@param type A string representing the event type being removed.\n\t\t@param callback The callback to remove.\n\t\t@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed\n\t\t\n\t\t@example \n\t\t```js\n\t\t// register fire eventListener\n\t\tvar callback = eventTarget.on('fire', function () {\n\t\t    cc.log(\"fire in the hole\");\n\t\t}, target);\n\t\t// remove fire event listener\n\t\teventTarget.off('fire', callback, target);\n\t\t// remove all fire event listeners\n\t\teventTarget.off('fire');\n\t\t``` \n\t\t*/\n\t\toff(type: string, callback?: Function, target?: any): void;\t\t\n\t\t/**\n\t\t!#en Removes all callbacks previously registered with the same target (passed as parameter).\n\t\tThis is not for removing all listeners in the current event target,\n\t\tand this is not for removing all listeners the target parameter have registered.\n\t\tIt's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.\n\t\t!#zh 在当前 EventTarget 上删除指定目标（target 参数）注册的所有事件监听器。\n\t\t这个函数无法删除当前 EventTarget 的所有事件监听器，也无法删除 target 参数所注册的所有事件监听器。\n\t\t这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。\n\t\t@param target The target to be searched for all related listeners \n\t\t*/\n\t\ttargetOff(target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget,\n\t\tthe callback will remove itself after the first time it is triggered.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调，回调会在第一时间被触发后删除自身。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.once('fire', function () {\n\t\t    cc.log(\"this is the callback and will be invoked only once\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\tonce(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tTrigger an event directly with the event name and necessary arguments.\n\t\t!#zh\n\t\t通过事件名发送自定义事件\n\t\t@param type event type\n\t\t@param arg1 First argument\n\t\t@param arg2 Second argument\n\t\t@param arg3 Third argument\n\t\t@param arg4 Fourth argument\n\t\t@param arg5 Fifth argument\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.emit('fire', event);\n\t\teventTarget.emit('fire', message, emitter);\n\t\t``` \n\t\t*/\n\t\temit(type: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSend an event with the event object.\n\t\t!#zh\n\t\t通过事件对象派发事件\n\t\t@param event event \n\t\t*/\n\t\tdispatchEvent(event: Event): void;\t\n\t}\t\n\t/** !#en Box Collider.\n\t!#zh 包围盒碰撞组件 */\n\texport class BoxCollider extends Collider implements Collider.Box {\t\t\n\t\t/** !#en Position offset\n\t\t!#zh 位置偏移量 */\n\t\toffset: Vec2;\t\t\n\t\t/** !#en Box size\n\t\t!#zh 包围盒大小 */\n\t\tsize: Size;\t\n\t}\t\n\t/** !#en Circle Collider.\n\t!#zh 圆形碰撞组件 */\n\texport class CircleCollider extends Collider implements Collider.Circle {\t\t\n\t\t/** !#en Position offset\n\t\t!#zh 位置偏移量 */\n\t\toffset: Vec2;\t\t\n\t\t/** !#en Circle radius\n\t\t!#zh 圆形半径 */\n\t\tradius: number;\t\n\t}\t\n\t/** !#en Collider component base class.\n\t!#zh 碰撞组件基类 */\n\texport class Collider extends Component {\t\t\n\t\t/** !#en Tag. If a node has several collider components, you can judge which type of collider is collided according to the tag.\n\t\t!#zh 标签。当一个节点上有多个碰撞组件时，在发生碰撞后，可以使用此标签来判断是节点上的哪个碰撞组件被碰撞了。 */\n\t\ttag: number;\t\n\t}\t\n\t/** !#en\n\tA simple collision manager class.\n\tIt will calculate whether the collider collides other colliders, if collides then call the callbacks.\n\t!#zh\n\t一个简单的碰撞组件管理类，用于处理节点之间的碰撞组件是否产生了碰撞，并调用相应回调函数。 */\n\texport class CollisionManager implements EventTarget {\t\t\n\t\t/** !#en\n\t\t!#zh\n\t\t是否开启碰撞管理，默认为不开启 */\n\t\tenabled: boolean;\t\t\n\t\t/** !#en\n\t\t!#zh\n\t\t是否绘制碰撞组件的包围盒，默认为不绘制 */\n\t\tenabledDrawBoundingBox: boolean;\t\t\n\t\t/** !#en\n\t\t!#zh\n\t\t是否绘制碰撞组件的形状，默认为不绘制 */\n\t\tenabledDebugDraw: boolean;\t\t\n\t\t/**\n\t\t!#en Checks whether the EventTarget object has any callback registered for a specific type of event.\n\t\t!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。\n\t\t@param type The type of event. \n\t\t*/\n\t\thasEventListener(type: string): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget.\n\t\tThis type of event should be triggered via `emit`.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.on('fire', function () {\n\t\t    cc.log(\"fire in the hole\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\ton<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemoves the listeners previously registered with the same type, callback, target and or useCapture,\n\t\tif only type is passed as parameter, all listeners registered with that type will be removed.\n\t\t!#zh\n\t\t删除之前用同类型，回调，目标或 useCapture 注册的事件监听器，如果只传递 type，将会删除 type 类型的所有事件监听器。\n\t\t@param type A string representing the event type being removed.\n\t\t@param callback The callback to remove.\n\t\t@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed\n\t\t\n\t\t@example \n\t\t```js\n\t\t// register fire eventListener\n\t\tvar callback = eventTarget.on('fire', function () {\n\t\t    cc.log(\"fire in the hole\");\n\t\t}, target);\n\t\t// remove fire event listener\n\t\teventTarget.off('fire', callback, target);\n\t\t// remove all fire event listeners\n\t\teventTarget.off('fire');\n\t\t``` \n\t\t*/\n\t\toff(type: string, callback?: Function, target?: any): void;\t\t\n\t\t/**\n\t\t!#en Removes all callbacks previously registered with the same target (passed as parameter).\n\t\tThis is not for removing all listeners in the current event target,\n\t\tand this is not for removing all listeners the target parameter have registered.\n\t\tIt's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.\n\t\t!#zh 在当前 EventTarget 上删除指定目标（target 参数）注册的所有事件监听器。\n\t\t这个函数无法删除当前 EventTarget 的所有事件监听器，也无法删除 target 参数所注册的所有事件监听器。\n\t\t这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。\n\t\t@param target The target to be searched for all related listeners \n\t\t*/\n\t\ttargetOff(target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget,\n\t\tthe callback will remove itself after the first time it is triggered.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调，回调会在第一时间被触发后删除自身。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.once('fire', function () {\n\t\t    cc.log(\"this is the callback and will be invoked only once\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\tonce(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tTrigger an event directly with the event name and necessary arguments.\n\t\t!#zh\n\t\t通过事件名发送自定义事件\n\t\t@param type event type\n\t\t@param arg1 First argument\n\t\t@param arg2 Second argument\n\t\t@param arg3 Third argument\n\t\t@param arg4 Fourth argument\n\t\t@param arg5 Fifth argument\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.emit('fire', event);\n\t\teventTarget.emit('fire', message, emitter);\n\t\t``` \n\t\t*/\n\t\temit(type: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSend an event with the event object.\n\t\t!#zh\n\t\t通过事件对象派发事件\n\t\t@param event event \n\t\t*/\n\t\tdispatchEvent(event: Event): void;\t\n\t}\t\n\t/** !#en Intersection helper class\n\t!#zh 辅助类，用于测试形状与形状是否相交 */\n\texport class Intersection {\t\t\n\t\t/**\n\t\t!#en Test line and line\n\t\t!#zh 测试线段与线段是否相交\n\t\t@param a1 The start point of the first line\n\t\t@param a2 The end point of the first line\n\t\t@param b1 The start point of the second line\n\t\t@param b2 The end point of the second line \n\t\t*/\n\t\tstatic lineLine(a1: Vec2, a2: Vec2, b1: Vec2, b2: Vec2): boolean;\t\t\n\t\t/**\n\t\t!#en Test line and rect\n\t\t!#zh 测试线段与矩形是否相交\n\t\t@param a1 The start point of the line\n\t\t@param a2 The end point of the line\n\t\t@param b The rect \n\t\t*/\n\t\tstatic lineRect(a1: Vec2, a2: Vec2, b: Rect): boolean;\t\t\n\t\t/**\n\t\t!#en Test line and polygon\n\t\t!#zh 测试线段与多边形是否相交\n\t\t@param a1 The start point of the line\n\t\t@param a2 The end point of the line\n\t\t@param b The polygon, a set of points \n\t\t*/\n\t\tstatic linePolygon(a1: Vec2, a2: Vec2, b: Vec2[]): boolean;\t\t\n\t\t/**\n\t\t!#en Test rect and rect\n\t\t!#zh 测试矩形与矩形是否相交\n\t\t@param a The first rect\n\t\t@param b The second rect \n\t\t*/\n\t\tstatic rectRect(a: Rect, b: Rect): boolean;\t\t\n\t\t/**\n\t\t!#en Test rect and polygon\n\t\t!#zh 测试矩形与多边形是否相交\n\t\t@param a The rect\n\t\t@param b The polygon, a set of points \n\t\t*/\n\t\tstatic rectPolygon(a: Rect, b: Vec2[]): boolean;\t\t\n\t\t/**\n\t\t!#en Test polygon and polygon\n\t\t!#zh 测试多边形与多边形是否相交\n\t\t@param a The first polygon, a set of points\n\t\t@param b The second polygon, a set of points \n\t\t*/\n\t\tstatic polygonPolygon(a: Vec2[], b: Vec2[]): boolean;\t\t\n\t\t/**\n\t\t!#en Test circle and circle\n\t\t!#zh 测试圆形与圆形是否相交\n\t\t@param a Object contains position and radius\n\t\t@param b Object contains position and radius \n\t\t*/\n\t\tstatic circleCircle(a: {position: Vec2, radius: number}, b: {position: Vec2, radius: number}): boolean;\t\t\n\t\t/**\n\t\t!#en Test polygon and circle\n\t\t!#zh 测试矩形与圆形是否相交\n\t\t@param polygon The Polygon, a set of points\n\t\t@param circle Object contains position and radius \n\t\t*/\n\t\tstatic polygonCircle(polygon: Vec2[], circle: {position: Vec2, radius: number}): boolean;\t\t\n\t\t/**\n\t\t!#en Test whether the point is in the polygon\n\t\t!#zh 测试一个点是否在一个多边形中\n\t\t@param point The point\n\t\t@param polygon The polygon, a set of points \n\t\t*/\n\t\tstatic pointInPolygon(point: Vec2, polygon: Vec2[]): boolean;\t\t\n\t\t/**\n\t\t!#en Calculate the distance of point to line.\n\t\t!#zh 计算点到直线的距离。如果这是一条线段并且垂足不在线段内，则会计算点到线段端点的距离。\n\t\t@param point The point\n\t\t@param start The start point of line\n\t\t@param end The end point of line\n\t\t@param isSegment whether this line is a segment \n\t\t*/\n\t\tstatic pointLineDistance(point: Vec2, start: Vec2, end: Vec2, isSegment: boolean): number;\t\n\t}\t\n\t/** !#en Polygon Collider.\n\t!#zh 多边形碰撞组件 */\n\texport class PolygonCollider extends Collider implements Collider.Polygon {\t\t\n\t\t/** !#en Position offset\n\t\t!#zh 位置偏移量 */\n\t\toffset: Vec2;\t\t\n\t\t/** !#en Polygon points\n\t\t!#zh 多边形顶点数组 */\n\t\tpoints: Vec2[];\t\n\t}\t\n\t/** !#en The touch event class\n\t!#zh 封装了触摸相关的信息。 */\n\texport class Touch {\t\t\n\t\t/**\n\t\t!#en Returns the current touch location in OpenGL coordinates.、\n\t\t!#zh 获取当前触点位置。 \n\t\t*/\n\t\tgetLocation(): Vec2;\t\t\n\t\t/**\n\t\t!#en Returns X axis location value.\n\t\t!#zh 获取当前触点 X 轴位置。 \n\t\t*/\n\t\tgetLocationX(): number;\t\t\n\t\t/**\n\t\t!#en Returns Y axis location value.\n\t\t!#zh 获取当前触点 Y 轴位置。 \n\t\t*/\n\t\tgetLocationY(): number;\t\t\n\t\t/**\n\t\t!#en Returns the previous touch location in OpenGL coordinates.\n\t\t!#zh 获取触点在上一次事件时的位置对象，对象包含 x 和 y 属性。 \n\t\t*/\n\t\tgetPreviousLocation(): Vec2;\t\t\n\t\t/**\n\t\t!#en Returns the start touch location in OpenGL coordinates.\n\t\t!#zh 获获取触点落下时的位置对象，对象包含 x 和 y 属性。 \n\t\t*/\n\t\tgetStartLocation(): Vec2;\t\t\n\t\t/**\n\t\t!#en Returns the delta distance from the previous touche to the current one in screen coordinates.\n\t\t!#zh 获取触点距离上一次事件移动的距离对象，对象包含 x 和 y 属性。 \n\t\t*/\n\t\tgetDelta(): Vec2;\t\t\n\t\t/**\n\t\t!#en Returns the current touch location in screen coordinates.\n\t\t!#zh 获取当前事件在游戏窗口内的坐标位置对象，对象包含 x 和 y 属性。 \n\t\t*/\n\t\tgetLocationInView(): Vec2;\t\t\n\t\t/**\n\t\t!#en Returns the previous touch location in screen coordinates.\n\t\t!#zh 获取触点在上一次事件时在游戏窗口中的位置对象，对象包含 x 和 y 属性。 \n\t\t*/\n\t\tgetPreviousLocationInView(): Vec2;\t\t\n\t\t/**\n\t\t!#en Returns the start touch location in screen coordinates.\n\t\t!#zh 获取触点落下时在游戏窗口中的位置对象，对象包含 x 和 y 属性。 \n\t\t*/\n\t\tgetStartLocationInView(): Vec2;\t\t\n\t\t/**\n\t\t!#en Returns the id of cc.Touch.\n\t\t!#zh 触点的标识 ID，可以用来在多点触摸中跟踪触点。 \n\t\t*/\n\t\tgetID(): number;\t\t\n\t\t/**\n\t\t!#en Sets information to touch.\n\t\t!#zh 设置触摸相关的信息。用于监控触摸事件。\n\t\t@param id id\n\t\t@param x x\n\t\t@param y y \n\t\t*/\n\t\tsetTouchInfo(id: number, x: number, y: number): void;\t\n\t}\t\n\t/** !#en The animation component is used to play back animations.\n\t\n\tAnimation provide several events to register：\n\t - play : Emit when begin playing animation\n\t - stop : Emit when stop playing animation\n\t - pause : Emit when pause animation\n\t - resume : Emit when resume animation\n\t - lastframe : If animation repeat count is larger than 1, emit when animation play to the last frame\n\t - finished : Emit when finish playing animation\n\t\n\t!#zh Animation 组件用于播放动画。\n\t\n\tAnimation 提供了一系列可注册的事件：\n\t - play : 开始播放时\n\t - stop : 停止播放时\n\t - pause : 暂停播放时\n\t - resume : 恢复播放时\n\t - lastframe : 假如动画循环次数大于 1，当动画播放到最后一帧时\n\t - finished : 动画播放完成时 */\n\texport class Animation extends Component implements EventTarget {\t\t\n\t\t/** !#en Animation will play the default clip when start game.\n\t\t!#zh 在勾选自动播放或调用 play() 时默认播放的动画剪辑。 */\n\t\tdefaultClip: AnimationClip;\t\t\n\t\t/** !#en Current played clip.\n\t\t!#zh 当前播放的动画剪辑。 */\n\t\tcurrentClip: AnimationClip;\t\t\n\t\t/** !#en Whether the animation should auto play the default clip when start game.\n\t\t!#zh 是否在运行游戏后自动播放默认动画剪辑。 */\n\t\tplayOnLoad: boolean;\t\t\n\t\t/**\n\t\t!#en Get all the clips used in this animation.\n\t\t!#zh 获取动画组件上的所有动画剪辑。 \n\t\t*/\n\t\tgetClips(): AnimationClip[];\t\t\n\t\t/**\n\t\t!#en Plays an animation and stop other animations.\n\t\t!#zh 播放指定的动画，并且停止当前正在播放动画。如果没有指定动画，则播放默认动画。\n\t\t@param name The name of animation to play. If no name is supplied then the default animation will be played.\n\t\t@param startTime play an animation from startTime\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar animCtrl = this.node.getComponent(cc.Animation);\n\t\tanimCtrl.play(\"linear\");\n\t\t``` \n\t\t*/\n\t\tplay(name?: string, startTime?: number): AnimationState;\t\t\n\t\t/**\n\t\t!#en\n\t\tPlays an additive animation, it will not stop other animations.\n\t\tIf there are other animations playing, then will play several animations at the same time.\n\t\t!#zh 播放指定的动画（将不会停止当前播放的动画）。如果没有指定动画，则播放默认动画。\n\t\t@param name The name of animation to play. If no name is supplied then the default animation will be played.\n\t\t@param startTime play an animation from startTime\n\t\t\n\t\t@example \n\t\t```js\n\t\t// linear_1 and linear_2 at the same time playing.\n\t\tvar animCtrl = this.node.getComponent(cc.Animation);\n\t\tanimCtrl.playAdditive(\"linear_1\");\n\t\tanimCtrl.playAdditive(\"linear_2\");\n\t\t``` \n\t\t*/\n\t\tplayAdditive(name?: string, startTime?: number): AnimationState;\t\t\n\t\t/**\n\t\t!#en Stops an animation named name. If no name is supplied then stops all playing animations that were started with this Animation. <br/>\n\t\tStopping an animation also Rewinds it to the Start.\n\t\t!#zh 停止指定的动画。如果没有指定名字，则停止当前正在播放的动画。\n\t\t@param name The animation to stop, if not supplied then stops all playing animations. \n\t\t*/\n\t\tstop(name?: string): void;\t\t\n\t\t/**\n\t\t!#en Pauses an animation named name. If no name is supplied then pauses all playing animations that were started with this Animation.\n\t\t!#zh 暂停当前或者指定的动画。如果没有指定名字，则暂停当前正在播放的动画。\n\t\t@param name The animation to pauses, if not supplied then pauses all playing animations. \n\t\t*/\n\t\tpause(name?: string): void;\t\t\n\t\t/**\n\t\t!#en Resumes an animation named name. If no name is supplied then resumes all paused animations that were started with this Animation.\n\t\t!#zh 重新播放指定的动画，如果没有指定名字，则重新播放当前正在播放的动画。\n\t\t@param name The animation to resumes, if not supplied then resumes all paused animations. \n\t\t*/\n\t\tresume(name?: string): void;\t\t\n\t\t/**\n\t\t!#en Make an animation named name go to the specified time. If no name is supplied then make all animations go to the specified time.\n\t\t!#zh 设置指定动画的播放时间。如果没有指定名字，则设置当前播放动画的播放时间。\n\t\t@param time The time to go to\n\t\t@param name Specified animation name, if not supplied then make all animations go to the time. \n\t\t*/\n\t\tsetCurrentTime(time?: number, name?: string): void;\t\t\n\t\t/**\n\t\t!#en Returns the animation state named name. If no animation with the specified name, the function will return null.\n\t\t!#zh 获取当前或者指定的动画状态，如果未找到指定动画剪辑则返回 null。\n\t\t@param name name \n\t\t*/\n\t\tgetAnimationState(name: string): AnimationState;\t\t\n\t\t/**\n\t\t!#en Adds a clip to the animation with name newName. If a clip with that name already exists it will be replaced with the new clip.\n\t\t!#zh 添加动画剪辑，并且可以重新设置该动画剪辑的名称。\n\t\t@param clip the clip to add\n\t\t@param newName newName \n\t\t*/\n\t\taddClip(clip: AnimationClip, newName?: string): AnimationState;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemove clip from the animation list. This will remove the clip and any animation states based on it.\n\t\tIf there are animation states depand on the clip are playing or clip is defaultClip, it will not delete the clip.\n\t\tBut if force is true, then will always remove the clip and any animation states based on it. If clip is defaultClip, defaultClip will be reset to null\n\t\t!#zh\n\t\t从动画列表中移除指定的动画剪辑，<br/>\n\t\t如果依赖于 clip 的 AnimationState 正在播放或者 clip 是 defaultClip 的话，默认是不会删除 clip 的。\n\t\t但是如果 force 参数为 true，则会强制停止该动画，然后移除该动画剪辑和相关的动画。这时候如果 clip 是 defaultClip，defaultClip 将会被重置为 null。\n\t\t@param clip clip\n\t\t@param force If force is true, then will always remove the clip and any animation states based on it. \n\t\t*/\n\t\tremoveClip(clip: AnimationClip, force?: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSamples animations at the current state.<br/>\n\t\tThis is useful when you explicitly want to set up some animation state, and sample it once.\n\t\t!#zh 对指定或当前动画进行采样。你可以手动将动画设置到某一个状态，然后采样一次。\n\t\t@param name name \n\t\t*/\n\t\tsample(name: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister animation event callback.\n\t\tThe event arguments will provide the AnimationState which emit the event.\n\t\tWhen play an animation, will auto register the event callback to the AnimationState, and unregister the event callback from the AnimationState when animation stopped.\n\t\t!#zh\n\t\t注册动画事件回调。\n\t\t回调的事件里将会附上发送事件的 AnimationState。\n\t\t当播放一个动画时，会自动将事件注册到对应的 AnimationState 上，停止播放时会将事件从这个 AnimationState 上取消注册。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param state state\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t@param useCapture When set to true, the capture argument prevents callback\n\t\t                             from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE.\n\t\t                             When false, callback will NOT be invoked when event's eventPhase attribute value is CAPTURING_PHASE.\n\t\t                             Either way, callback will be invoked when event's eventPhase attribute value is AT_TARGET.\n\t\t\n\t\t@example \n\t\t```js\n\t\tonPlay: function (type, state) {\n\t\t    // callback\n\t\t}\n\t\t\n\t\t// register event to all animation\n\t\tanimation.on('play', this.onPlay, this);\n\t\t``` \n\t\t*/\n\t\ton(type: string, callback: (event: Event.EventCustom) => void, target?: any, useCapture?: boolean): (event: Event.EventCustom) => void;\n\t\ton<T>(type: string, callback: (event: T) => void, target?: any, useCapture?: boolean): (event: T) => void;\t\t\n\t\t/**\n\t\t!#en\n\t\tUnregister animation event callback.\n\t\t!#zh\n\t\t取消注册动画事件回调。\n\t\t@param type A string representing the event type being removed.\n\t\t@param callback The callback to remove.\n\t\t@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed\n\t\t@param useCapture Specifies whether the callback being removed was registered as a capturing callback or not.\n\t\t                             If not specified, useCapture defaults to false. If a callback was registered twice,\n\t\t                             one with capture and one without, each must be removed separately. Removal of a capturing callback\n\t\t                             does not affect a non-capturing version of the same listener, and vice versa.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// unregister event to all animation\n\t\tanimation.off('play', this.onPlay, this);\n\t\t``` \n\t\t*/\n\t\toff(type: string, callback?: Function, target?: any, useCapture?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Checks whether the EventTarget object has any callback registered for a specific type of event.\n\t\t!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。\n\t\t@param type The type of event. \n\t\t*/\n\t\thasEventListener(type: string): boolean;\t\t\n\t\t/**\n\t\t!#en Removes all callbacks previously registered with the same target (passed as parameter).\n\t\tThis is not for removing all listeners in the current event target,\n\t\tand this is not for removing all listeners the target parameter have registered.\n\t\tIt's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.\n\t\t!#zh 在当前 EventTarget 上删除指定目标（target 参数）注册的所有事件监听器。\n\t\t这个函数无法删除当前 EventTarget 的所有事件监听器，也无法删除 target 参数所注册的所有事件监听器。\n\t\t这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。\n\t\t@param target The target to be searched for all related listeners \n\t\t*/\n\t\ttargetOff(target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget,\n\t\tthe callback will remove itself after the first time it is triggered.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调，回调会在第一时间被触发后删除自身。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.once('fire', function () {\n\t\t    cc.log(\"this is the callback and will be invoked only once\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\tonce(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tTrigger an event directly with the event name and necessary arguments.\n\t\t!#zh\n\t\t通过事件名发送自定义事件\n\t\t@param type event type\n\t\t@param arg1 First argument\n\t\t@param arg2 Second argument\n\t\t@param arg3 Third argument\n\t\t@param arg4 Fourth argument\n\t\t@param arg5 Fifth argument\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.emit('fire', event);\n\t\teventTarget.emit('fire', message, emitter);\n\t\t``` \n\t\t*/\n\t\temit(type: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSend an event with the event object.\n\t\t!#zh\n\t\t通过事件对象派发事件\n\t\t@param event event \n\t\t*/\n\t\tdispatchEvent(event: Event): void;\t\n\t}\t\n\t/** !#en Audio Source.\n\t!#zh 音频源组件，能对音频剪辑。 */\n\texport class AudioSource extends Component {\t\t\n\t\t/** !#en\n\t\tIs the audio source playing (Read Only). <br/>\n\t\tNote: isPlaying is not supported for Native platforms.\n\t\t!#zh\n\t\t该音频剪辑是否正播放（只读）。<br/>\n\t\t注意：Native 平台暂时不支持 isPlaying。 */\n\t\tisPlaying: boolean;\t\t\n\t\t/** !#en The clip of the audio source to play.\n\t\t!#zh 要播放的音频剪辑。 */\n\t\tclip: AudioClip;\t\t\n\t\t/** !#en The volume of the audio source.\n\t\t!#zh 音频源的音量（0.0 ~ 1.0）。 */\n\t\tvolume: number;\t\t\n\t\t/** !#en Is the audio source mute?\n\t\t!#zh 是否静音音频源。Mute 是设置音量为 0，取消静音是恢复原来的音量。 */\n\t\tmute: boolean;\t\t\n\t\t/** !#en Is the audio source looping?\n\t\t!#zh 音频源是否循环播放？ */\n\t\tloop: boolean;\t\t\n\t\t/** !#en If set to true, the audio source will automatically start playing on onEnable.\n\t\t!#zh 如果设置为 true，音频源将在 onEnable 时自动播放。 */\n\t\tplayOnLoad: boolean;\t\t\n\t\t/**\n\t\t!#en Plays the clip.\n\t\t!#zh 播放音频剪辑。 \n\t\t*/\n\t\tplay(): void;\t\t\n\t\t/**\n\t\t!#en Stops the clip.\n\t\t!#zh 停止当前音频剪辑。 \n\t\t*/\n\t\tstop(): void;\t\t\n\t\t/**\n\t\t!#en Pause the clip.\n\t\t!#zh 暂停当前音频剪辑。 \n\t\t*/\n\t\tpause(): void;\t\t\n\t\t/**\n\t\t!#en Resume the clip.\n\t\t!#zh 恢复播放。 \n\t\t*/\n\t\tresume(): void;\t\t\n\t\t/**\n\t\t!#en Rewind playing music.\n\t\t!#zh 从头开始播放。 \n\t\t*/\n\t\trewind(): void;\t\t\n\t\t/**\n\t\t!#en Get current time\n\t\t!#zh 获取当前的播放时间 \n\t\t*/\n\t\tgetCurrentTime(): number;\t\t\n\t\t/**\n\t\t!#en Set current time\n\t\t!#zh 设置当前的播放时间\n\t\t@param time time \n\t\t*/\n\t\tsetCurrentTime(time: number): number;\t\t\n\t\t/**\n\t\t!#en Get audio duration\n\t\t!#zh 获取当前音频的长度 \n\t\t*/\n\t\tgetDuration(): number;\t\n\t}\t\n\t/** !#en\n\tThis component will block all input events (mouse and touch) within the bounding box of the node, preventing the input from penetrating into the underlying node, typically for the background of the top UI.<br>\n\tThis component does not have any API interface and can be added directly to the scene to take effect.\n\t!#zh\n\t该组件将拦截所属节点 bounding box 内的所有输入事件（鼠标和触摸），防止输入穿透到下层节点，一般用于上层 UI 的背景。<br>\n\t该组件没有任何 API 接口，直接添加到场景即可生效。 */\n\texport class BlockInputEvents extends Component {\t\n\t}\t\n\t/** !#zh: 作为 UI 根节点，为所有子节点提供视窗四边的位置信息以供对齐，另外提供屏幕适配策略接口，方便从编辑器设置。\n\t注：由于本节点的尺寸会跟随屏幕拉伸，所以 anchorPoint 只支持 (0.5, 0.5)，否则适配不同屏幕时坐标会有偏差。 */\n\texport class Canvas extends Component {\t\t\n\t\t/** !#en Current active canvas, the scene should only have one active canvas at the same time.\n\t\t!#zh 当前激活的画布组件，场景同一时间只能有一个激活的画布。 */\n\t\tstatic instance: Canvas;\t\t\n\t\t/** !#en The desigin resolution for current scene.\n\t\t!#zh 当前场景设计分辨率。 */\n\t\tdesignResolution: Size;\t\t\n\t\t/** !#en TODO\n\t\t!#zh: 是否优先将设计分辨率高度撑满视图高度。 */\n\t\tfitHeight: boolean;\t\t\n\t\t/** !#en TODO\n\t\t!#zh: 是否优先将设计分辨率宽度撑满视图宽度。 */\n\t\tfitWidth: boolean;\t\n\t}\t\n\t/** !#en\n\tBase class for everything attached to Node(Entity).<br/>\n\t<br/>\n\tNOTE: Not allowed to use construction parameters for Component's subclasses,\n\t      because Component is created by the engine.\n\t!#zh\n\t所有附加到节点的基类。<br/>\n\t<br/>\n\t注意：不允许使用组件的子类构造参数，因为组件是由引擎创建的。 */\n\texport class Component extends Object {\t\t\n\t\t/** !#en The node this component is attached to. A component is always attached to a node.\n\t\t!#zh 该组件被附加到的节点。组件总会附加到一个节点。 */\n\t\tnode: Node;\t\t\n\t\t/** !#en The uuid for editor.\n\t\t!#zh 组件的 uuid，用于编辑器。 */\n\t\tuuid: string;\t\t\n\t\t/** !#en indicates whether this component is enabled or not.\n\t\t!#zh 表示该组件自身是否启用。 */\n\t\tenabled: boolean;\t\t\n\t\t/** !#en indicates whether this component is enabled and its node is also active in the hierarchy.\n\t\t!#zh 表示该组件是否被启用并且所在的节点也处于激活状态。 */\n\t\tenabledInHierarchy: boolean;\t\t\n\t\t/** !#en Returns a value which used to indicate the onLoad get called or not.\n\t\t!#zh 返回一个值用来判断 onLoad 是否被调用过，不等于 0 时调用过，等于 0 时未调用。 */\n\t\t_isOnLoadCalled: number;\t\t\n\t\t/**\n\t\t!#en Update is called every frame, if the Component is enabled.<br/>\n\t\tThis is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere.\n\t\t!#zh 如果该组件启用，则每帧调用 update。<br/>\n\t\t该方法为生命周期方法，父类未必会有实现。并且你只能在该方法内部调用父类的实现，不可在其它地方直接调用该方法。\n\t\t@param dt the delta time in seconds it took to complete the last frame \n\t\t*/\n\t\tprotected update(dt: number): void;\t\t\n\t\t/**\n\t\t!#en LateUpdate is called every frame, if the Component is enabled.<br/>\n\t\tThis is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere.\n\t\t!#zh 如果该组件启用，则每帧调用 LateUpdate。<br/>\n\t\t该方法为生命周期方法，父类未必会有实现。并且你只能在该方法内部调用父类的实现，不可在其它地方直接调用该方法。 \n\t\t*/\n\t\tprotected lateUpdate(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tWhen attaching to an active node or its node first activated.\n\t\tonLoad is always called before any start functions, this allows you to order initialization of scripts.<br/>\n\t\tThis is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere.\n\t\t!#zh\n\t\t当附加到一个激活的节点上或者其节点第一次激活时候调用。onLoad 总是会在任何 start 方法调用前执行，这能用于安排脚本的初始化顺序。<br/>\n\t\t该方法为生命周期方法，父类未必会有实现。并且你只能在该方法内部调用父类的实现，不可在其它地方直接调用该方法。 \n\t\t*/\n\t\tprotected onLoad(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tCalled before all scripts' update if the Component is enabled the first time.\n\t\tUsually used to initialize some logic which need to be called after all components' `onload` methods called.<br/>\n\t\tThis is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere.\n\t\t!#zh\n\t\t如果该组件第一次启用，则在所有组件的 update 之前调用。通常用于需要在所有组件的 onLoad 初始化完毕后执行的逻辑。<br/>\n\t\t该方法为生命周期方法，父类未必会有实现。并且你只能在该方法内部调用父类的实现，不可在其它地方直接调用该方法。 \n\t\t*/\n\t\tprotected start(): void;\t\t\n\t\t/**\n\t\t!#en Called when this component becomes enabled and its node is active.<br/>\n\t\tThis is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere.\n\t\t!#zh 当该组件被启用，并且它的节点也激活时。<br/>\n\t\t该方法为生命周期方法，父类未必会有实现。并且你只能在该方法内部调用父类的实现，不可在其它地方直接调用该方法。 \n\t\t*/\n\t\tprotected onEnable(): void;\t\t\n\t\t/**\n\t\t!#en Called when this component becomes disabled or its node becomes inactive.<br/>\n\t\tThis is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere.\n\t\t!#zh 当该组件被禁用或节点变为无效时调用。<br/>\n\t\t该方法为生命周期方法，父类未必会有实现。并且你只能在该方法内部调用父类的实现，不可在其它地方直接调用该方法。 \n\t\t*/\n\t\tprotected onDisable(): void;\t\t\n\t\t/**\n\t\t!#en Called when this component will be destroyed.<br/>\n\t\tThis is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere.\n\t\t!#zh 当该组件被销毁时调用<br/>\n\t\t该方法为生命周期方法，父类未必会有实现。并且你只能在该方法内部调用父类的实现，不可在其它地方直接调用该方法。 \n\t\t*/\n\t\tprotected onDestroy(): void;\t\t\n\t\tprotected onFocusInEditor(): void;\t\t\n\t\tprotected onLostFocusInEditor(): void;\t\t\n\t\t/**\n\t\t!#en Called to initialize the component or node’s properties when adding the component the first time or when the Reset command is used. This function is only called in editor.\n\t\t!#zh 用来初始化组件或节点的一些属性，当该组件被第一次添加到节点上或用户点击了它的 Reset 菜单时调用。这个回调只会在编辑器下调用。 \n\t\t*/\n\t\tprotected resetInEditor(): void;\t\t\n\t\t/**\n\t\t!#en Adds a component class to the node. You can also add component to node by passing in the name of the script.\n\t\t!#zh 向节点添加一个组件类，你还可以通过传入脚本的名称来添加组件。\n\t\t@param typeOrClassName the constructor or the class name of the component to add\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar sprite = node.addComponent(cc.Sprite);\n\t\tvar test = node.addComponent(\"Test\");\n\t\t``` \n\t\t*/\n\t\taddComponent<T extends Component>(type: {new(): T}): T;\n\t\taddComponent(className: string): any;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the component of supplied type if the node has one attached, null if it doesn't.<br/>\n\t\tYou can also get component in the node by passing in the name of the script.\n\t\t!#zh\n\t\t获取节点上指定类型的组件，如果节点有附加指定类型的组件，则返回，如果没有则为空。<br/>\n\t\t传入参数也可以是脚本的名称。\n\t\t@param typeOrClassName typeOrClassName\n\t\t\n\t\t@example \n\t\t```js\n\t\t// get sprite component.\n\t\tvar sprite = node.getComponent(cc.Sprite);\n\t\t// get custom test calss.\n\t\tvar test = node.getComponent(\"Test\");\n\t\t``` \n\t\t*/\n\t\tgetComponent<T extends Component>(type: {prototype: T}): T;\n\t\tgetComponent(className: string): any;\t\t\n\t\t/**\n\t\t!#en Returns all components of supplied Type in the node.\n\t\t!#zh 返回节点上指定类型的所有组件。\n\t\t@param typeOrClassName typeOrClassName\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar sprites = node.getComponents(cc.Sprite);\n\t\tvar tests = node.getComponents(\"Test\");\n\t\t``` \n\t\t*/\n\t\tgetComponents<T extends Component>(type: {prototype: T}): T[];\n\t\tgetComponents(className: string): any[];\t\t\n\t\t/**\n\t\t!#en Returns the component of supplied type in any of its children using depth first search.\n\t\t!#zh 递归查找所有子节点中第一个匹配指定类型的组件。\n\t\t@param typeOrClassName typeOrClassName\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar sprite = node.getComponentInChildren(cc.Sprite);\n\t\tvar Test = node.getComponentInChildren(\"Test\");\n\t\t``` \n\t\t*/\n\t\tgetComponentInChildren<T extends Component>(type: {prototype: T}): T;\n\t\tgetComponentInChildren(className: string): any;\t\t\n\t\t/**\n\t\t!#en Returns the components of supplied type in self or any of its children using depth first search.\n\t\t!#zh 递归查找自身或所有子节点中指定类型的组件\n\t\t@param typeOrClassName typeOrClassName\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar sprites = node.getComponentsInChildren(cc.Sprite);\n\t\tvar tests = node.getComponentsInChildren(\"Test\");\n\t\t``` \n\t\t*/\n\t\tgetComponentsInChildren<T extends Component>(type: {prototype: T}): T[];\n\t\tgetComponentsInChildren(className: string): any[];\t\t\n\t\t/**\n\t\t!#en\n\t\tIf the component's bounding box is different from the node's, you can implement this method to supply\n\t\ta custom axis aligned bounding box (AABB), so the editor's scene view can perform hit test properly.\n\t\t!#zh\n\t\t如果组件的包围盒与节点不同，您可以实现该方法以提供自定义的轴向对齐的包围盒（AABB），\n\t\t以便编辑器的场景视图可以正确地执行点选测试。\n\t\t@param out_rect the Rect to receive the bounding box \n\t\t*/\n\t\t_getLocalBounds(out_rect: Rect): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tonRestore is called after the user clicks the Reset item in the Inspector's context menu or performs\n\t\tan undo operation on this component.<br/>\n\t\t<br/>\n\t\tIf the component contains the \"internal state\", short for \"temporary member variables which not included<br/>\n\t\tin its CCClass properties\", then you may need to implement this function.<br/>\n\t\t<br/>\n\t\tThe editor will call the getset accessors of your component to record/restore the component's state<br/>\n\t\tfor undo/redo operation. However, in extreme cases, it may not works well. Then you should implement<br/>\n\t\tthis function to manually synchronize your component's \"internal states\" with its public properties.<br/>\n\t\tOnce you implement this function, all the getset accessors of your component will not be called when<br/>\n\t\tthe user performs an undo/redo operation. Which means that only the properties with default value<br/>\n\t\twill be recorded or restored by editor.<br/>\n\t\t<br/>\n\t\tSimilarly, the editor may failed to reset your component correctly in extreme cases. Then if you need<br/>\n\t\tto support the reset menu, you should manually synchronize your component's \"internal states\" with its<br/>\n\t\tproperties in this function. Once you implement this function, all the getset accessors of your component<br/>\n\t\twill not be called during reset operation. Which means that only the properties with default value<br/>\n\t\twill be reset by editor.\n\t\t\n\t\tThis function is only called in editor mode.\n\t\t!#zh\n\t\tonRestore 是用户在检查器菜单点击 Reset 时，对此组件执行撤消操作后调用的。<br/>\n\t\t<br/>\n\t\t如果组件包含了“内部状态”（不在 CCClass 属性中定义的临时成员变量），那么你可能需要实现该方法。<br/>\n\t\t<br/>\n\t\t编辑器执行撤销/重做操作时，将调用组件的 get set 来录制和还原组件的状态。\n\t\t然而，在极端的情况下，它可能无法良好运作。<br/>\n\t\t那么你就应该实现这个方法，手动根据组件的属性同步“内部状态”。\n\t\t一旦你实现这个方法，当用户撤销或重做时，组件的所有 get set 都不会再被调用。\n\t\t这意味着仅仅指定了默认值的属性将被编辑器记录和还原。<br/>\n\t\t<br/>\n\t\t同样的，编辑可能无法在极端情况下正确地重置您的组件。<br/>\n\t\t于是如果你需要支持组件重置菜单，你需要在该方法中手工同步组件属性到“内部状态”。<br/>\n\t\t一旦你实现这个方法，组件的所有 get set 都不会在重置操作时被调用。\n\t\t这意味着仅仅指定了默认值的属性将被编辑器重置。\n\t\t<br/>\n\t\t此方法仅在编辑器下会被调用。 \n\t\t*/\n\t\tonRestore(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSchedules a custom selector.<br/>\n\t\tIf the selector is already scheduled, then the interval parameter will be updated without scheduling it again.\n\t\t!#zh\n\t\t调度一个自定义的回调函数。<br/>\n\t\t如果回调函数已调度，那么将不会重复调度它，只会更新时间间隔参数。\n\t\t@param callback The callback function\n\t\t@param interval Tick interval in seconds. 0 means tick every frame.\n\t\t@param repeat The selector will be executed (repeat + 1) times, you can use cc.macro.REPEAT_FOREVER for tick infinitely.\n\t\t@param delay The amount of time that the first tick will wait before execution.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar timeCallback = function (dt) {\n\t\t  cc.log(\"time: \" + dt);\n\t\t}\n\t\tthis.schedule(timeCallback, 1);\n\t\t``` \n\t\t*/\n\t\tschedule(callback: Function, interval?: number, repeat?: number, delay?: number): void;\t\t\n\t\t/**\n\t\t!#en Schedules a callback function that runs only once, with a delay of 0 or larger.\n\t\t!#zh 调度一个只运行一次的回调函数，可以指定 0 让回调函数在下一帧立即执行或者在一定的延时之后执行。\n\t\t@param callback A function wrapped as a selector\n\t\t@param delay The amount of time that the first tick will wait before execution.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar timeCallback = function (dt) {\n\t\t  cc.log(\"time: \" + dt);\n\t\t}\n\t\tthis.scheduleOnce(timeCallback, 2);\n\t\t``` \n\t\t*/\n\t\tscheduleOnce(callback: Function, delay?: number): void;\t\t\n\t\t/**\n\t\t!#en Unschedules a custom callback function.\n\t\t!#zh 取消调度一个自定义的回调函数。\n\t\t@param callback_fn A function wrapped as a selector\n\t\t\n\t\t@example \n\t\t```js\n\t\tthis.unschedule(_callback);\n\t\t``` \n\t\t*/\n\t\tunschedule(callback_fn: Function): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tunschedule all scheduled callback functions: custom callback functions, and the 'update' callback function.<br/>\n\t\tActions are not affected by this method.\n\t\t!#zh 取消调度所有已调度的回调函数：定制的回调函数以及 'update' 回调函数。动作不受此方法影响。\n\t\t\n\t\t@example \n\t\t```js\n\t\tthis.unscheduleAllCallbacks();\n\t\t``` \n\t\t*/\n\t\tunscheduleAllCallbacks(): void;\t\n\t}\t\n\t/** !#en\n\tButton has 4 Transition types<br/>\n\tWhen Button state changed:<br/>\n\t If Transition type is Button.Transition.NONE, Button will do nothing<br/>\n\t If Transition type is Button.Transition.COLOR, Button will change target's color<br/>\n\t If Transition type is Button.Transition.SPRITE, Button will change target Sprite's sprite<br/>\n\t If Transition type is Button.Transition.SCALE, Button will change target node's scale<br/>\n\t\n\tButton will trigger 5 events:<br/>\n\t Button.EVENT_TOUCH_DOWN<br/>\n\t Button.EVENT_TOUCH_UP<br/>\n\t Button.EVENT_HOVER_IN<br/>\n\t Button.EVENT_HOVER_MOVE<br/>\n\t Button.EVENT_HOVER_OUT<br/>\n\t User can get the current clicked node with 'event.target' from event object which is passed as parameter in the callback function of click event.\n\t\n\t!#zh\n\t按钮组件。可以被按下，或者点击。\n\t\n\t按钮可以通过修改 Transition 来设置按钮状态过渡的方式：\n\t\n\t  - Button.Transition.NONE   // 不做任何过渡\n\t  - Button.Transition.COLOR  // 进行颜色之间过渡\n\t  - Button.Transition.SPRITE // 进行精灵之间过渡\n\t  - Button.Transition.SCALE // 进行缩放过渡\n\t\n\t按钮可以绑定事件（但是必须要在按钮的 Node 上才能绑定事件）：<br/>\n\t以下事件可以在全平台上都触发：\n\t\n\t  - cc.Node.EventType.TOUCH_START  // 按下时事件\n\t  - cc.Node.EventType.TOUCH_Move   // 按住移动后事件\n\t  - cc.Node.EventType.TOUCH_END    // 按下后松开后事件\n\t  - cc.Node.EventType.TOUCH_CANCEL // 按下取消事件\n\t\n\t以下事件只在 PC 平台上触发：\n\t\n\t  - cc.Node.EventType.MOUSE_DOWN  // 鼠标按下时事件\n\t  - cc.Node.EventType.MOUSE_MOVE  // 鼠标按住移动后事件\n\t  - cc.Node.EventType.MOUSE_ENTER // 鼠标进入目标事件\n\t  - cc.Node.EventType.MOUSE_LEAVE // 鼠标离开目标事件\n\t  - cc.Node.EventType.MOUSE_UP    // 鼠标松开事件\n\t  - cc.Node.EventType.MOUSE_WHEEL // 鼠标滚轮事件\n\t\n\t用户可以通过获取 __点击事件__ 回调函数的参数 event 的 target 属性获取当前点击对象。 */\n\texport class Button extends Component {\t\t\n\t\t/** !#en\n\t\tWhether the Button is disabled.\n\t\tIf true, the Button will trigger event and do transition.\n\t\t!#zh\n\t\t按钮事件是否被响应，如果为 false，则按钮将被禁用。 */\n\t\tinteractable: boolean;\t\t\n\t\t/** !#en When this flag is true, Button target sprite will turn gray when interactable is false.\n\t\t!#zh 如果这个标记为 true，当 button 的 interactable 属性为 false 的时候，会使用内置 shader 让 button 的 target 节点的 sprite 组件变灰 */\n\t\tenableAutoGrayEffect: boolean;\t\t\n\t\t/** !#en Transition type\n\t\t!#zh 按钮状态改变时过渡方式。 */\n\t\ttransition: Button.Transition;\t\t\n\t\t/** !#en Normal state color.\n\t\t!#zh 普通状态下按钮所显示的颜色。 */\n\t\tnormalColor: Color;\t\t\n\t\t/** !#en Pressed state color\n\t\t!#zh 按下状态时按钮所显示的颜色。 */\n\t\tpressedColor: Color;\t\t\n\t\t/** !#en Hover state color\n\t\t!#zh 悬停状态下按钮所显示的颜色。 */\n\t\thoverColor: Color;\t\t\n\t\t/** !#en Disabled state color\n\t\t!#zh 禁用状态下按钮所显示的颜色。 */\n\t\tdisabledColor: Color;\t\t\n\t\t/** !#en Color and Scale transition duration\n\t\t!#zh 颜色过渡和缩放过渡时所需时间 */\n\t\tduration: number;\t\t\n\t\t/** !#en  When user press the button, the button will zoom to a scale.\n\t\tThe final scale of the button  equals (button original scale * zoomScale)\n\t\t!#zh 当用户点击按钮后，按钮会缩放到一个值，这个值等于 Button 原始 scale * zoomScale */\n\t\tzoomScale: number;\t\t\n\t\t/** !#en Normal state sprite\n\t\t!#zh 普通状态下按钮所显示的 Sprite 。 */\n\t\tnormalSprite: SpriteFrame;\t\t\n\t\t/** !#en Pressed state sprite\n\t\t!#zh 按下状态时按钮所显示的 Sprite 。 */\n\t\tpressedSprite: SpriteFrame;\t\t\n\t\t/** !#en Hover state sprite\n\t\t!#zh 悬停状态下按钮所显示的 Sprite 。 */\n\t\thoverSprite: SpriteFrame;\t\t\n\t\t/** !#en Disabled state sprite\n\t\t!#zh 禁用状态下按钮所显示的 Sprite 。 */\n\t\tdisabledSprite: SpriteFrame;\t\t\n\t\t/** !#en\n\t\tTransition target.\n\t\tWhen Button state changed:\n\t\t If Transition type is Button.Transition.NONE, Button will do nothing\n\t\t If Transition type is Button.Transition.COLOR, Button will change target's color\n\t\t If Transition type is Button.Transition.SPRITE, Button will change target Sprite's sprite\n\t\t!#zh\n\t\t需要过渡的目标。\n\t\t当前按钮状态改变规则：\n\t\t-如果 Transition type 选择 Button.Transition.NONE，按钮不做任何过渡。\n\t\t-如果 Transition type 选择 Button.Transition.COLOR，按钮会对目标颜色进行颜色之间的过渡。\n\t\t-如果 Transition type 选择 Button.Transition.Sprite，按钮会对目标 Sprite 进行 Sprite 之间的过渡。 */\n\t\ttarget: Node;\t\t\n\t\t/** !#en If Button is clicked, it will trigger event's handler\n\t\t!#zh 按钮的点击事件列表。 */\n\t\tclickEvents: Component.EventHandler[];\t\n\t}\t\n\t/** !#en The Label Component.\n\t!#zh 文字标签组件 */\n\texport class Label extends RenderComponent {\t\t\n\t\t/** !#en Content string of label.\n\t\t!#zh 标签显示的文本内容。 */\n\t\tstring: string;\t\t\n\t\t/** !#en Horizontal Alignment of label.\n\t\t!#zh 文本内容的水平对齐方式。 */\n\t\thorizontalAlign: Label.HorizontalAlign;\t\t\n\t\t/** !#en Vertical Alignment of label.\n\t\t!#zh 文本内容的垂直对齐方式。 */\n\t\tverticalAlign: Label.VerticalAlign;\t\t\n\t\t/** !#en The actual rendering font size in shrink mode\n\t\t!#zh SHRINK 模式下面文本实际渲染的字体大小 */\n\t\tactualFontSize: number;\t\t\n\t\t/** !#en Font size of label.\n\t\t!#zh 文本字体大小。 */\n\t\tfontSize: number;\t\t\n\t\t/** !#en Font family of label, only take effect when useSystemFont property is true.\n\t\t!#zh 文本字体名称, 只在 useSystemFont 属性为 true 的时候生效。 */\n\t\tfontFamily: string;\t\t\n\t\t/** !#en Line Height of label.\n\t\t!#zh 文本行高。 */\n\t\tlineHeight: number;\t\t\n\t\t/** !#en Overflow of label.\n\t\t!#zh 文字显示超出范围时的处理方式。 */\n\t\toverflow: Label.Overflow;\t\t\n\t\t/** !#en Whether auto wrap label when string width is large than label width.\n\t\t!#zh 是否自动换行。 */\n\t\tenableWrapText: boolean;\t\t\n\t\t/** !#en The font of label.\n\t\t!#zh 文本字体。 */\n\t\tfont: Font;\t\t\n\t\t/** !#en Whether use system font name or not.\n\t\t!#zh 是否使用系统字体。 */\n\t\tuseSystemFont: boolean;\t\t\n\t\t/** !#en The spacing of the x axis between characters.\n\t\t!#zh 文字之间 x 轴的间距。 */\n\t\tspacingX: number;\t\t\n\t\t/** !#en The cache mode of label. This mode only supports system fonts.\n\t\t!#zh 文本缓存模式, 该模式只支持系统字体。 */\n\t\tcacheMode: Label.CacheMode;\t\n\t}\t\n\t/** !#en Outline effect used to change the display, only for system fonts or TTF fonts\n\t!#zh 描边效果组件,用于字体描边,只能用于系统字体 */\n\texport class LabelOutline extends Component {\t\t\n\t\t/** !#en outline color\n\t\t!#zh 改变描边的颜色 */\n\t\tcolor: Color;\t\t\n\t\t/** !#en Change the outline width\n\t\t!#zh 改变描边的宽度 */\n\t\twidth: number;\t\n\t}\t\n\t/** !#en Shadow effect for Label component, only for system fonts or TTF fonts\n\t!#zh 用于给 Label 组件添加阴影效果，只能用于系统字体或 ttf 字体 */\n\texport class LabelShadow extends Component {\t\t\n\t\t/** !#en The shadow color\n\t\t!#zh 阴影的颜色 */\n\t\tcolor: Color;\t\t\n\t\t/** !#en Offset between font and shadow\n\t\t!#zh 字体与阴影的偏移 */\n\t\toffset: Vec2;\t\t\n\t\t/** !#en A non-negative float specifying the level of shadow blur\n\t\t!#zh 阴影的模糊程度 */\n\t\tblur: number;\t\n\t}\t\n\t/** !#en\n\tThe Layout is a container component, use it to arrange child elements easily.<br>\n\tNote：<br>\n\t1.Scaling and rotation of child nodes are not considered.<br>\n\t2.After setting the Layout, the results need to be updated until the next frame,\n\tunless you manually call {{#crossLink \"Layout/updateLayout:method\"}}{{/crossLink}}。\n\t!#zh\n\tLayout 组件相当于一个容器，能自动对它的所有子节点进行统一排版。<br>\n\t注意：<br>\n\t1.不会考虑子节点的缩放和旋转。<br>\n\t2.对 Layout 设置后结果需要到下一帧才会更新，除非你设置完以后手动调用 {{#crossLink \"Layout/updateLayout:method\"}}{{/crossLink}}。 */\n\texport class Layout extends Component {\t\t\n\t\t/** !#en The layout type.\n\t\t!#zh 布局类型 */\n\t\ttype: Layout.Type;\t\t\n\t\t/** !#en\n\t\tThe are three resize modes for Layout.\n\t\tNone, resize Container and resize children.\n\t\t!#zh 缩放模式 */\n\t\tresizeMode: Layout.ResizeMode;\t\t\n\t\t/** !#en The cell size for grid layout.\n\t\t!#zh 每个格子的大小，只有布局类型为 GRID 的时候才有效。 */\n\t\tcellSize: Size;\t\t\n\t\t/** !#en\n\t\tThe start axis for grid layout. If you choose horizontal, then children will layout horizontally at first,\n\t\tand then break line on demand. Choose vertical if you want to layout vertically at first .\n\t\t!#zh 起始轴方向类型，可进行水平和垂直布局排列，只有布局类型为 GRID 的时候才有效。 */\n\t\tstartAxis: Layout.AxisDirection;\t\t\n\t\t/** !#en The left padding of layout, it only effect the layout in one direction.\n\t\t!#zh 容器内左边距，只会在一个布局方向上生效。 */\n\t\tpaddingLeft: number;\t\t\n\t\t/** !#en The right padding of layout, it only effect the layout in one direction.\n\t\t!#zh 容器内右边距，只会在一个布局方向上生效。 */\n\t\tpaddingRight: number;\t\t\n\t\t/** !#en The top padding of layout, it only effect the layout in one direction.\n\t\t!#zh 容器内上边距，只会在一个布局方向上生效。 */\n\t\tpaddingTop: number;\t\t\n\t\t/** !#en The bottom padding of layout, it only effect the layout in one direction.\n\t\t!#zh 容器内下边距，只会在一个布局方向上生效。 */\n\t\tpaddingBottom: number;\t\t\n\t\t/** !#en The distance in x-axis between each element in layout.\n\t\t!#zh 子节点之间的水平间距。 */\n\t\tspacingX: number;\t\t\n\t\t/** !#en The distance in y-axis between each element in layout.\n\t\t!#zh 子节点之间的垂直间距。 */\n\t\tspacingY: number;\t\t\n\t\t/** !#en\n\t\tOnly take effect in Vertical layout mode.\n\t\tThis option changes the start element's positioning.\n\t\t!#zh 垂直排列子节点的方向。 */\n\t\tverticalDirection: Layout.VerticalDirection;\t\t\n\t\t/** !#en\n\t\tOnly take effect in Horizontal layout mode.\n\t\tThis option changes the start element's positioning.\n\t\t!#zh 水平排列子节点的方向。 */\n\t\thorizontalDirection: Layout.HorizontalDirection;\t\t\n\t\t/** !#en Adjust the layout if the children scaled.\n\t\t!#zh 子节点缩放比例是否影响布局。 */\n\t\taffectedByScale: boolean;\t\t\n\t\t/**\n\t\t!#en Perform the layout update\n\t\t!#zh 立即执行更新布局\n\t\t\n\t\t@example \n\t\t```js\n\t\tlayout.type = cc.Layout.HORIZONTAL;\n\t\tlayout.node.addChild(childNode);\n\t\tcc.log(childNode.x); // not yet changed\n\t\tlayout.updateLayout();\n\t\tcc.log(childNode.x); // changed\n\t\t``` \n\t\t*/\n\t\tupdateLayout(): void;\t\t\n\t\t/** !#en The padding of layout, it effects the layout in four direction.\n\t\t!#zh 容器内边距，该属性会在四个布局方向上生效。 */\n\t\tpadding: number;\t\n\t}\t\n\t/** !#en The Mask Component\n\t!#zh 遮罩组件 */\n\texport class Mask extends RenderComponent {\t\t\n\t\t/** !#en The mask type.\n\t\t!#zh 遮罩类型 */\n\t\ttype: Mask.Type;\t\t\n\t\t/** !#en The mask image\n\t\t!#zh 遮罩所需要的贴图 */\n\t\tspriteFrame: SpriteFrame;\t\t\n\t\t/** !#en\n\t\tThe alpha threshold.(Not supported Canvas Mode) <br/>\n\t\tThe content is drawn only where the stencil have pixel with alpha greater than the alphaThreshold. <br/>\n\t\tShould be a float between 0 and 1. <br/>\n\t\tThis default to 0 (so alpha test is disabled).\n\t\tWhen it's set to 1, the stencil will discard all pixels, nothing will be shown,\n\t\tIn previous version, it act as if the alpha test is disabled, which is incorrect.\n\t\t!#zh\n\t\tAlpha 阈值（不支持 Canvas 模式）<br/>\n\t\t只有当模板的像素的 alpha 大于 alphaThreshold 时，才会绘制内容。<br/>\n\t\t该数值 0 ~ 1 之间的浮点数，默认值为 0（因此禁用 alpha 测试）\n\t\t当被设置为 1 时，会丢弃所有蒙版像素，所以不会显示任何内容，在之前的版本中，设置为 1 等同于 0，这种效果其实是不正确的 */\n\t\talphaThreshold: number;\t\t\n\t\t/** !#en Reverse mask (Not supported Canvas Mode)\n\t\t!#zh 反向遮罩（不支持 Canvas 模式） */\n\t\tinverted: boolean;\t\t\n\t\t/** TODO: remove segments, not supported by graphics\n\t\t!#en The segements for ellipse mask.\n\t\t!#zh 椭圆遮罩的曲线细分数 */\n\t\tsegements: number;\t\n\t}\t\n\t/** !#en\n\tcc.MotionStreak manages a Ribbon based on it's motion in absolute space.                 <br/>\n\tYou construct it with a fadeTime, minimum segment size, texture path, texture            <br/>\n\tlength and color. The fadeTime controls how long it takes each vertex in                 <br/>\n\tthe streak to fade out, the minimum segment size it how many pixels the                  <br/>\n\tstreak will move before adding a new ribbon segment, and the texture                     <br/>\n\tlength is the how many pixels the texture is stretched across. The texture               <br/>\n\tis vertically aligned along the streak segment.\n\t!#zh 运动轨迹，用于游戏对象的运动轨迹上实现拖尾渐隐效果。 */\n\texport class MotionStreak extends Component {\t\t\n\t\t/** !#en\n\t\t!#zh 在编辑器模式下预览拖尾效果。 */\n\t\tpreview: boolean;\t\t\n\t\t/** !#en The fade time to fade.\n\t\t!#zh 拖尾的渐隐时间，以秒为单位。 */\n\t\tfadeTime: number;\t\t\n\t\t/** !#en The minimum segment size.\n\t\t!#zh 拖尾之间最小距离。 */\n\t\tminSeg: number;\t\t\n\t\t/** !#en The stroke's width.\n\t\t!#zh 拖尾的宽度。 */\n\t\tstroke: number;\t\t\n\t\t/** !#en The texture of the MotionStreak.\n\t\t!#zh 拖尾的贴图。 */\n\t\ttexture: Texture2D;\t\t\n\t\t/** !#en The color of the MotionStreak.\n\t\t!#zh 拖尾的颜色 */\n\t\tcolor: Color;\t\t\n\t\t/** !#en The fast Mode.\n\t\t!#zh 是否启用了快速模式。当启用快速模式，新的点会被更快地添加，但精度较低。 */\n\t\tfastMode: boolean;\t\t\n\t\t/**\n\t\t!#en Remove all living segments of the ribbon.\n\t\t!#zh 删除当前所有的拖尾片段。\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Remove all living segments of the ribbon.\n\t\tmyMotionStreak.reset();\n\t\t``` \n\t\t*/\n\t\treset(): void;\t\n\t}\t\n\t/** !#en The PageView control\n\t!#zh 页面视图组件 */\n\texport class PageView extends ScrollView {\t\t\n\t\t/** !#en Specify the size type of each page in PageView.\n\t\t!#zh 页面视图中每个页面大小类型 */\n\t\tsizeMode: PageView.SizeMode;\t\t\n\t\t/** !#en The page view direction\n\t\t!#zh 页面视图滚动类型 */\n\t\tdirection: PageView.Direction;\t\t\n\t\t/** !#en\n\t\tThe scroll threshold value, when drag exceeds this value,\n\t\trelease the next page will automatically scroll, less than the restore\n\t\t!#zh 滚动临界值，默认单位百分比，当拖拽超出该数值时，松开会自动滚动下一页，小于时则还原。 */\n\t\tscrollThreshold: number;\t\t\n\t\t/** !#en\n\t\tAuto page turning velocity threshold. When users swipe the PageView quickly,\n\t\tit will calculate a velocity based on the scroll distance and time,\n\t\tif the calculated velocity is larger than the threshold, then it will trigger page turning.\n\t\t!#zh\n\t\t快速滑动翻页临界值。\n\t\t当用户快速滑动时，会根据滑动开始和结束的距离与时间计算出一个速度值，\n\t\t该值与此临界值相比较，如果大于临界值，则进行自动翻页。 */\n\t\tautoPageTurningThreshold: number;\t\t\n\t\t/** !#en Change the PageTurning event timing of PageView.\n\t\t!#zh 设置 PageView PageTurning 事件的发送时机。 */\n\t\tpageTurningEventTiming: number;\t\t\n\t\t/** !#en The Page View Indicator\n\t\t!#zh 页面视图指示器组件 */\n\t\tindicator: PageViewIndicator;\t\t\n\t\t/** !#en The time required to turn over a page. unit: second\n\t\t!#zh 每个页面翻页时所需时间。单位：秒 */\n\t\tpageTurningSpeed: number;\t\t\n\t\t/** !#en PageView events callback\n\t\t!#zh 滚动视图的事件回调函数 */\n\t\tpageEvents: Component.EventHandler[];\t\t\n\t\t/**\n\t\t!#en Returns current page index\n\t\t!#zh 返回当前页面索引 \n\t\t*/\n\t\tgetCurrentPageIndex(): number;\t\t\n\t\t/**\n\t\t!#en Set current page index\n\t\t!#zh 设置当前页面索引\n\t\t@param index index \n\t\t*/\n\t\tsetCurrentPageIndex(index: number): void;\t\t\n\t\t/**\n\t\t!#en Returns all pages of pageview\n\t\t!#zh 返回视图中的所有页面 \n\t\t*/\n\t\tgetPages(): Node[];\t\t\n\t\t/**\n\t\t!#en At the end of the current page view to insert a new view\n\t\t!#zh 在当前页面视图的尾部插入一个新视图\n\t\t@param page page \n\t\t*/\n\t\taddPage(page: Node): void;\t\t\n\t\t/**\n\t\t!#en Inserts a page in the specified location\n\t\t!#zh 将页面插入指定位置中\n\t\t@param page page\n\t\t@param index index \n\t\t*/\n\t\tinsertPage(page: Node, index: number): void;\t\t\n\t\t/**\n\t\t!#en Removes a page from PageView.\n\t\t!#zh 移除指定页面\n\t\t@param page page \n\t\t*/\n\t\tremovePage(page: Node): void;\t\t\n\t\t/**\n\t\t!#en Removes a page at index of PageView.\n\t\t!#zh 移除指定下标的页面\n\t\t@param index index \n\t\t*/\n\t\tremovePageAtIndex(index: number): void;\t\t\n\t\t/**\n\t\t!#en Removes all pages from PageView\n\t\t!#zh 移除所有页面 \n\t\t*/\n\t\tremoveAllPages(): void;\t\t\n\t\t/**\n\t\t!#en Scroll PageView to index.\n\t\t!#zh 滚动到指定页面\n\t\t@param idx index of page.\n\t\t@param timeInSecond scrolling time \n\t\t*/\n\t\tscrollToPage(idx: number, timeInSecond: number): void;\t\n\t}\t\n\t/** !#en The Page View Indicator Component\n\t!#zh 页面视图每页标记组件 */\n\texport class PageViewIndicator extends Component {\t\t\n\t\t/** !#en The spriteFrame for each element.\n\t\t!#zh 每个页面标记显示的图片 */\n\t\tspriteFrame: SpriteFrame;\t\t\n\t\t/** !#en The location direction of PageViewIndicator.\n\t\t!#zh 页面标记摆放方向 */\n\t\tdirection: PageViewIndicator.Direction;\t\t\n\t\t/** !#en The cellSize for each element.\n\t\t!#zh 每个页面标记的大小 */\n\t\tcellSize: Size;\t\t\n\t\t/** !#en The distance between each element.\n\t\t!#zh 每个页面标记之间的边距 */\n\t\tspacing: number;\t\t\n\t\t/**\n\t\t!#en Set Page View\n\t\t!#zh 设置页面视图\n\t\t@param target target \n\t\t*/\n\t\tsetPageView(target: PageView): void;\t\n\t}\t\n\t/** !#en\n\tVisual indicator of progress in some operation.\n\tDisplays a bar to the user representing how far the operation has progressed.\n\t!#zh\n\t进度条组件，可用于显示加载资源时的进度。 */\n\texport class ProgressBar extends Component {\t\t\n\t\t/** !#en The targeted Sprite which will be changed progressively.\n\t\t!#zh 用来显示进度条比例的 Sprite 对象。 */\n\t\tbarSprite: Sprite;\t\t\n\t\t/** !#en The progress mode, there are two modes supported now: horizontal and vertical.\n\t\t!#zh 进度条的模式 */\n\t\tmode: ProgressBar.Mode;\t\t\n\t\t/** !#en The total width or height of the bar sprite.\n\t\t!#zh 进度条实际的总长度 */\n\t\ttotalLength: number;\t\t\n\t\t/** !#en The current progress of the bar sprite. The valid value is between 0-1.\n\t\t!#zh 当前进度值，该数值的区间是 0-1 之间。 */\n\t\tprogress: number;\t\t\n\t\t/** !#en Whether reverse the progress direction of the bar sprite.\n\t\t!#zh 进度条是否进行反方向变化。 */\n\t\treverse: boolean;\t\n\t}\t\n\t/** !#en\n\tBase class for components which supports rendering features.\n\t!#zh\n\t所有支持渲染的组件的基类 */\n\texport class RenderComponent extends Component {\t\t\n\t\t/** !#en The materials used by this render component.\n\t\t!#zh 渲染组件使用的材质。 */\n\t\tsharedMaterials: Material[];\t\t\n\t\t/**\n\t\t!#en Get the material by index.\n\t\t!#zh 根据指定索引获取材质\n\t\t@param index index \n\t\t*/\n\t\tgetMaterial(index: number): Material;\t\t\n\t\t/**\n\t\t!#en Set the material by index.\n\t\t!#zh 根据指定索引设置材质\n\t\t@param index index\n\t\t@param material material \n\t\t*/\n\t\tsetMaterial(index: number, material: Material): void;\t\n\t}\t\n\t/** !#en The RichText Component.\n\t!#zh 富文本组件 */\n\texport class RichText extends Component {\t\t\n\t\t/** !#en Content string of RichText.\n\t\t!#zh 富文本显示的文本内容。 */\n\t\tstring: string;\t\t\n\t\t/** !#en Horizontal Alignment of each line in RichText.\n\t\t!#zh 文本内容的水平对齐方式。 */\n\t\thorizontalAlign: macro.TextAlignment;\t\t\n\t\t/** !#en Font size of RichText.\n\t\t!#zh 富文本字体大小。 */\n\t\tfontSize: number;\t\t\n\t\t/** !#en Custom System font of RichText\n\t\t!#zh 富文本定制系统字体 */\n\t\tfontFamily: string;\t\t\n\t\t/** !#en Custom TTF font of RichText\n\t\t!#zh  富文本定制字体 */\n\t\tfont: TTFFont;\t\t\n\t\t/** !#en Whether use system font name or not.\n\t\t!#zh 是否使用系统字体。 */\n\t\tuseSystemFont: boolean;\t\t\n\t\t/** !#en The maximize width of the RichText\n\t\t!#zh 富文本的最大宽度 */\n\t\tmaxWidth: number;\t\t\n\t\t/** !#en Line Height of RichText.\n\t\t!#zh 富文本行高。 */\n\t\tlineHeight: number;\t\t\n\t\t/** !#en The image atlas for the img tag. For each src value in the img tag, there should be a valid spriteFrame in the image atlas.\n\t\t!#zh 对于 img 标签里面的 src 属性名称，都需要在 imageAtlas 里面找到一个有效的 spriteFrame，否则 img tag 会判定为无效。 */\n\t\timageAtlas: SpriteAtlas;\t\t\n\t\t/** !#en\n\t\tOnce checked, the RichText will block all input events (mouse and touch) within\n\t\tthe bounding box of the node, preventing the input from penetrating into the underlying node.\n\t\t!#zh\n\t\t选中此选项后，RichText 将阻止节点边界框中的所有输入事件（鼠标和触摸），从而防止输入事件穿透到底层节点。 */\n\t\thandleTouchEvent: boolean;\t\n\t}\t\n\t/** !#en\n\tThe Scrollbar control allows the user to scroll an image or other view that is too large to see completely\n\t!#zh 滚动条组件 */\n\texport class Scrollbar extends Component {\t\t\n\t\t/** !#en The \"handle\" part of the scrollbar.\n\t\t!#zh 作为当前滚动区域位置显示的滑块 Sprite。 */\n\t\thandle: Sprite;\t\t\n\t\t/** !#en The direction of scrollbar.\n\t\t!#zh ScrollBar 的滚动方向。 */\n\t\tdirection: Scrollbar.Direction;\t\t\n\t\t/** !#en Whether enable auto hide or not.\n\t\t!#zh 是否在没有滚动动作时自动隐藏 ScrollBar。 */\n\t\tenableAutoHide: boolean;\t\t\n\t\t/** !#en\n\t\tThe time to hide scrollbar when scroll finished.\n\t\tNote: This value is only useful when enableAutoHide is true.\n\t\t!#zh\n\t\t没有滚动动作后经过多久会自动隐藏。\n\t\t注意：只要当 “enableAutoHide” 为 true 时，才有效。 */\n\t\tautoHideTime: number;\t\n\t}\t\n\t/** !#en\n\tLayout container for a view hierarchy that can be scrolled by the user,\n\tallowing it to be larger than the physical display.\n\t\n\t!#zh\n\t滚动视图组件 */\n\texport class ScrollView extends Component {\t\t\n\t\t/** !#en This is a reference to the UI element to be scrolled.\n\t\t!#zh 可滚动展示内容的节点。 */\n\t\tcontent: Node;\t\t\n\t\t/** !#en Enable horizontal scroll.\n\t\t!#zh 是否开启水平滚动。 */\n\t\thorizontal: boolean;\t\t\n\t\t/** !#en Enable vertical scroll.\n\t\t!#zh 是否开启垂直滚动。 */\n\t\tvertical: boolean;\t\t\n\t\t/** !#en When inertia is set, the content will continue to move when touch ended.\n\t\t!#zh 是否开启滚动惯性。 */\n\t\tinertia: boolean;\t\t\n\t\t/** !#en\n\t\tIt determines how quickly the content stop moving. A value of 1 will stop the movement immediately.\n\t\tA value of 0 will never stop the movement until it reaches to the boundary of scrollview.\n\t\t!#zh\n\t\t开启惯性后，在用户停止触摸后滚动多快停止，0表示永不停止，1表示立刻停止。 */\n\t\tbrake: number;\t\t\n\t\t/** !#en When elastic is set, the content will be bounce back when move out of boundary.\n\t\t!#zh 是否允许滚动内容超过边界，并在停止触摸后回弹。 */\n\t\telastic: boolean;\t\t\n\t\t/** !#en The elapse time of bouncing back. A value of 0 will bounce back immediately.\n\t\t!#zh 回弹持续的时间，0 表示将立即反弹。 */\n\t\tbounceDuration: number;\t\t\n\t\t/** !#en The horizontal scrollbar reference.\n\t\t!#zh 水平滚动的 ScrollBar。 */\n\t\thorizontalScrollBar: Scrollbar;\t\t\n\t\t/** !#en The vertical scrollbar reference.\n\t\t!#zh 垂直滚动的 ScrollBar。 */\n\t\tverticalScrollBar: Scrollbar;\t\t\n\t\t/** !#en Scrollview events callback\n\t\t!#zh 滚动视图的事件回调函数 */\n\t\tscrollEvents: Component.EventHandler[];\t\t\n\t\t/** !#en If cancelInnerEvents is set to true, the scroll behavior will cancel touch events on inner content nodes\n\t\tIt's set to true by default.\n\t\t!#zh 如果这个属性被设置为 true，那么滚动行为会取消子节点上注册的触摸事件，默认被设置为 true。\n\t\t注意，子节点上的 touchstart 事件仍然会触发，触点移动距离非常短的情况下 touchmove 和 touchend 也不会受影响。 */\n\t\tcancelInnerEvents: boolean;\t\t\n\t\t/**\n\t\t!#en Scroll the content to the bottom boundary of ScrollView.\n\t\t!#zh 视图内容将在规定时间内滚动到视图底部。\n\t\t@param timeInSecond Scroll time in second, if you don't pass timeInSecond,\n\t\tthe content will jump to the bottom boundary immediately.\n\t\t@param attenuated Whether the scroll acceleration attenuated, default is true.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Scroll to the bottom of the view.\n\t\tscrollView.scrollToBottom(0.1);\n\t\t``` \n\t\t*/\n\t\tscrollToBottom(timeInSecond?: number, attenuated?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Scroll the content to the top boundary of ScrollView.\n\t\t!#zh 视图内容将在规定时间内滚动到视图顶部。\n\t\t@param timeInSecond Scroll time in second, if you don't pass timeInSecond,\n\t\tthe content will jump to the top boundary immediately.\n\t\t@param attenuated Whether the scroll acceleration attenuated, default is true.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Scroll to the top of the view.\n\t\tscrollView.scrollToTop(0.1);\n\t\t``` \n\t\t*/\n\t\tscrollToTop(timeInSecond?: number, attenuated?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Scroll the content to the left boundary of ScrollView.\n\t\t!#zh 视图内容将在规定时间内滚动到视图左边。\n\t\t@param timeInSecond Scroll time in second, if you don't pass timeInSecond,\n\t\tthe content will jump to the left boundary immediately.\n\t\t@param attenuated Whether the scroll acceleration attenuated, default is true.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Scroll to the left of the view.\n\t\tscrollView.scrollToLeft(0.1);\n\t\t``` \n\t\t*/\n\t\tscrollToLeft(timeInSecond?: number, attenuated?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Scroll the content to the right boundary of ScrollView.\n\t\t!#zh 视图内容将在规定时间内滚动到视图右边。\n\t\t@param timeInSecond Scroll time in second, if you don't pass timeInSecond,\n\t\tthe content will jump to the right boundary immediately.\n\t\t@param attenuated Whether the scroll acceleration attenuated, default is true.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Scroll to the right of the view.\n\t\tscrollView.scrollToRight(0.1);\n\t\t``` \n\t\t*/\n\t\tscrollToRight(timeInSecond?: number, attenuated?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Scroll the content to the top left boundary of ScrollView.\n\t\t!#zh 视图内容将在规定时间内滚动到视图左上角。\n\t\t@param timeInSecond Scroll time in second, if you don't pass timeInSecond,\n\t\tthe content will jump to the top left boundary immediately.\n\t\t@param attenuated Whether the scroll acceleration attenuated, default is true.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Scroll to the upper left corner of the view.\n\t\tscrollView.scrollToTopLeft(0.1);\n\t\t``` \n\t\t*/\n\t\tscrollToTopLeft(timeInSecond?: number, attenuated?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Scroll the content to the top right boundary of ScrollView.\n\t\t!#zh 视图内容将在规定时间内滚动到视图右上角。\n\t\t@param timeInSecond Scroll time in second, if you don't pass timeInSecond,\n\t\tthe content will jump to the top right boundary immediately.\n\t\t@param attenuated Whether the scroll acceleration attenuated, default is true.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Scroll to the top right corner of the view.\n\t\tscrollView.scrollToTopRight(0.1);\n\t\t``` \n\t\t*/\n\t\tscrollToTopRight(timeInSecond?: number, attenuated?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Scroll the content to the bottom left boundary of ScrollView.\n\t\t!#zh 视图内容将在规定时间内滚动到视图左下角。\n\t\t@param timeInSecond Scroll time in second, if you don't pass timeInSecond,\n\t\tthe content will jump to the bottom left boundary immediately.\n\t\t@param attenuated Whether the scroll acceleration attenuated, default is true.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Scroll to the lower left corner of the view.\n\t\tscrollView.scrollToBottomLeft(0.1);\n\t\t``` \n\t\t*/\n\t\tscrollToBottomLeft(timeInSecond?: number, attenuated?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Scroll the content to the bottom right boundary of ScrollView.\n\t\t!#zh 视图内容将在规定时间内滚动到视图右下角。\n\t\t@param timeInSecond Scroll time in second, if you don't pass timeInSecond,\n\t\tthe content will jump to the bottom right boundary immediately.\n\t\t@param attenuated Whether the scroll acceleration attenuated, default is true.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Scroll to the lower right corner of the view.\n\t\tscrollView.scrollToBottomRight(0.1);\n\t\t``` \n\t\t*/\n\t\tscrollToBottomRight(timeInSecond?: number, attenuated?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Scroll with an offset related to the ScrollView's top left origin, if timeInSecond is omitted, then it will jump to the\n\t\t      specific offset immediately.\n\t\t!#zh 视图内容在规定时间内将滚动到 ScrollView 相对左上角原点的偏移位置, 如果 timeInSecond参数不传，则立即滚动到指定偏移位置。\n\t\t@param offset A Vec2, the value of which each axis between 0 and maxScrollOffset\n\t\t@param timeInSecond Scroll time in second, if you don't pass timeInSecond,\n\t\tthe content will jump to the specific offset of ScrollView immediately.\n\t\t@param attenuated Whether the scroll acceleration attenuated, default is true.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Scroll to middle position in 0.1 second in x-axis\n\t\tlet maxScrollOffset = this.getMaxScrollOffset();\n\t\tscrollView.scrollToOffset(cc.v2(maxScrollOffset.x / 2, 0), 0.1);\n\t\t``` \n\t\t*/\n\t\tscrollToOffset(offset: Vec2, timeInSecond?: number, attenuated?: boolean): void;\t\t\n\t\t/**\n\t\t!#en  Get the positive offset value corresponds to the content's top left boundary.\n\t\t!#zh  获取滚动视图相对于左上角原点的当前滚动偏移 \n\t\t*/\n\t\tgetScrollOffset(): Vec2;\t\t\n\t\t/**\n\t\t!#en Get the maximize available  scroll offset\n\t\t!#zh 获取滚动视图最大可以滚动的偏移量 \n\t\t*/\n\t\tgetMaxScrollOffset(): Vec2;\t\t\n\t\t/**\n\t\t!#en Scroll the content to the horizontal percent position of ScrollView.\n\t\t!#zh 视图内容在规定时间内将滚动到 ScrollView 水平方向的百分比位置上。\n\t\t@param percent A value between 0 and 1.\n\t\t@param timeInSecond Scroll time in second, if you don't pass timeInSecond,\n\t\tthe content will jump to the horizontal percent position of ScrollView immediately.\n\t\t@param attenuated Whether the scroll acceleration attenuated, default is true.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Scroll to middle position.\n\t\tscrollView.scrollToBottomRight(0.5, 0.1);\n\t\t``` \n\t\t*/\n\t\tscrollToPercentHorizontal(percent: number, timeInSecond?: number, attenuated?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Scroll the content to the percent position of ScrollView in any direction.\n\t\t!#zh 视图内容在规定时间内进行垂直方向和水平方向的滚动，并且滚动到指定百分比位置上。\n\t\t@param anchor A point which will be clamp between cc.v2(0,0) and cc.v2(1,1).\n\t\t@param timeInSecond Scroll time in second, if you don't pass timeInSecond,\n\t\tthe content will jump to the percent position of ScrollView immediately.\n\t\t@param attenuated Whether the scroll acceleration attenuated, default is true.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Vertical scroll to the bottom of the view.\n\t\tscrollView.scrollTo(cc.v2(0, 1), 0.1);\n\t\t\n\t\t// Horizontal scroll to view right.\n\t\tscrollView.scrollTo(cc.v2(1, 0), 0.1);\n\t\t``` \n\t\t*/\n\t\tscrollTo(anchor: Vec2, timeInSecond?: number, attenuated?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Scroll the content to the vertical percent position of ScrollView.\n\t\t!#zh 视图内容在规定时间内滚动到 ScrollView 垂直方向的百分比位置上。\n\t\t@param percent A value between 0 and 1.\n\t\t@param timeInSecond Scroll time in second, if you don't pass timeInSecond,\n\t\tthe content will jump to the vertical percent position of ScrollView immediately.\n\t\t@param attenuated Whether the scroll acceleration attenuated, default is true.\n\t\t// Scroll to middle position.\n\t\tscrollView.scrollToPercentVertical(0.5, 0.1); \n\t\t*/\n\t\tscrollToPercentVertical(percent: number, timeInSecond?: number, attenuated?: boolean): void;\t\t\n\t\t/**\n\t\t!#en  Stop auto scroll immediately\n\t\t!#zh  停止自动滚动, 调用此 API 可以让 Scrollview 立即停止滚动 \n\t\t*/\n\t\tstopAutoScroll(): void;\t\t\n\t\t/**\n\t\t!#en Modify the content position.\n\t\t!#zh 设置当前视图内容的坐标点。\n\t\t@param position The position in content's parent space. \n\t\t*/\n\t\tsetContentPosition(position: Vec2): void;\t\t\n\t\t/**\n\t\t!#en Query the content's position in its parent space.\n\t\t!#zh 获取当前视图内容的坐标点。 \n\t\t*/\n\t\tgetContentPosition(): Vec2;\t\t\n\t\t/**\n\t\t!#en Query whether the user is currently dragging the ScrollView to scroll it\n\t\t!#zh 用户是否在拖拽当前滚动视图 \n\t\t*/\n\t\tisScrolling(): boolean;\t\t\n\t\t/**\n\t\t!#en Query whether the ScrollView is currently scrolling because of a bounceback or inertia slowdown.\n\t\t!#zh 当前滚动视图是否在惯性滚动 \n\t\t*/\n\t\tisAutoScrolling(): boolean;\t\n\t}\t\n\t/** !#en The Slider Control\n\t!#zh 滑动器组件 */\n\texport class Slider extends Component {\t\t\n\t\t/** !#en The \"handle\" part of the slider\n\t\t!#zh 滑动器滑块按钮部件 */\n\t\thandle: Button;\t\t\n\t\t/** !#en The slider direction\n\t\t!#zh 滑动器方向 */\n\t\tdirection: Slider.Direction;\t\t\n\t\t/** !#en The current progress of the slider. The valid value is between 0-1\n\t\t!#zh 当前进度值，该数值的区间是 0-1 之间 */\n\t\tprogress: number;\t\t\n\t\t/** !#en The slider slide events' callback array\n\t\t!#zh 滑动器组件滑动事件回调函数数组 */\n\t\tslideEvents: Component.EventHandler[];\t\n\t}\t\n\t/** !#en Renders a sprite in the scene.\n\t!#zh 该组件用于在场景中渲染精灵。 */\n\texport class Sprite extends RenderComponent {\t\t\n\t\t/** !#en The sprite frame of the sprite.\n\t\t!#zh 精灵的精灵帧 */\n\t\tspriteFrame: SpriteFrame;\t\t\n\t\t/** !#en The sprite render type.\n\t\t!#zh 精灵渲染类型 */\n\t\ttype: Sprite.Type;\t\t\n\t\t/** !#en\n\t\tThe fill type, This will only have any effect if the \"type\" is set to “cc.Sprite.Type.FILLED”.\n\t\t!#zh\n\t\t精灵填充类型，仅渲染类型设置为 cc.Sprite.Type.FILLED 时有效。 */\n\t\tfillType: Sprite.FillType;\t\t\n\t\t/** !#en\n\t\tThe fill Center, This will only have any effect if the \"type\" is set to “cc.Sprite.Type.FILLED”.\n\t\t!#zh\n\t\t填充中心点，仅渲染类型设置为 cc.Sprite.Type.FILLED 时有效。 */\n\t\tfillCenter: Vec2;\t\t\n\t\t/** !#en\n\t\tThe fill Start, This will only have any effect if the \"type\" is set to “cc.Sprite.Type.FILLED”.\n\t\t!#zh\n\t\t填充起始点，仅渲染类型设置为 cc.Sprite.Type.FILLED 时有效。 */\n\t\tfillStart: number;\t\t\n\t\t/** !#en\n\t\tThe fill Range, This will only have any effect if the \"type\" is set to “cc.Sprite.Type.FILLED”.\n\t\t!#zh\n\t\t填充范围，仅渲染类型设置为 cc.Sprite.Type.FILLED 时有效。 */\n\t\tfillRange: number;\t\t\n\t\t/** !#en specify the frame is trimmed or not.\n\t\t!#zh 是否使用裁剪模式 */\n\t\ttrim: boolean;\t\t\n\t\t/** !#en specify the size tracing mode.\n\t\t!#zh 精灵尺寸调整模式 */\n\t\tsizeMode: Sprite.SizeMode;\t\t\n\t\t/**\n\t\tChange the state of sprite.\n\t\t@param state NORMAL or GRAY State. \n\t\t*/\n\t\tsetState(state: Sprite.State): void;\t\t\n\t\t/**\n\t\tGets the current state. \n\t\t*/\n\t\tgetState(): Sprite.State;\t\n\t}\t\n\t/** !#en The toggle component is a CheckBox, when it used together with a ToggleGroup, it\n\tcould be treated as a RadioButton.\n\t!#zh Toggle 是一个 CheckBox，当它和 ToggleGroup 一起使用的时候，可以变成 RadioButton。 */\n\texport class Toggle extends Button {\t\t\n\t\t/** !#en When this value is true, the check mark component will be enabled, otherwise\n\t\tthe check mark component will be disabled.\n\t\t!#zh 如果这个设置为 true，则 check mark 组件会处于 enabled 状态，否则处于 disabled 状态。 */\n\t\tisChecked: boolean;\t\t\n\t\t/** !#en The toggle group which the toggle belongs to, when it is null, the toggle is a CheckBox.\n\t\tOtherwise, the toggle is a RadioButton.\n\t\t!#zh Toggle 所属的 ToggleGroup，这个属性是可选的。如果这个属性为 null，则 Toggle 是一个 CheckBox，\n\t\t否则，Toggle 是一个 RadioButton。 */\n\t\ttoggleGroup: ToggleGroup;\t\t\n\t\t/** !#en The image used for the checkmark.\n\t\t!#zh Toggle 处于选中状态时显示的图片 */\n\t\tcheckMark: Sprite;\t\t\n\t\t/** !#en If Toggle is clicked, it will trigger event's handler\n\t\t!#zh Toggle 按钮的点击事件列表。 */\n\t\tcheckEvents: Component.EventHandler[];\t\t\n\t\t/**\n\t\t!#en Make the toggle button checked.\n\t\t!#zh 使 toggle 按钮处于选中状态 \n\t\t*/\n\t\tcheck(): void;\t\t\n\t\t/**\n\t\t!#en Make the toggle button unchecked.\n\t\t!#zh 使 toggle 按钮处于未选中状态 \n\t\t*/\n\t\tuncheck(): void;\t\n\t}\t\n\t/** !#en ToggleContainer is not a visiable UI component but a way to modify the behavior of a set of Toggles. <br/>\n\tToggles that belong to the same group could only have one of them to be switched on at a time.<br/>\n\tNote: All the first layer child node containing the toggle component will auto be added to the container\n\t!#zh ToggleContainer 不是一个可见的 UI 组件，它可以用来修改一组 Toggle 组件的行为。<br/>\n\t当一组 Toggle 属于同一个 ToggleContainer 的时候，任何时候只能有一个 Toggle 处于选中状态。<br/>\n\t注意：所有包含 Toggle 组件的一级子节点都会自动被添加到该容器中 */\n\texport class ToggleContainer extends Component {\t\t\n\t\t/** !#en If this setting is true, a toggle could be switched off and on when pressed.\n\t\tIf it is false, it will make sure there is always only one toggle could be switched on\n\t\tand the already switched on toggle can't be switched off.\n\t\t!#zh 如果这个设置为 true， 那么 toggle 按钮在被点击的时候可以反复地被选中和未选中。 */\n\t\tallowSwitchOff: boolean;\t\t\n\t\t/** !#en If Toggle is clicked, it will trigger event's handler\n\t\t!#zh Toggle 按钮的点击事件列表。 */\n\t\tcheckEvents: Component.EventHandler[];\t\t\n\t\t/** !#en Read only property, return the toggle items array reference managed by ToggleContainer.\n\t\t!#zh 只读属性，返回 ToggleContainer 管理的 toggle 数组引用 */\n\t\ttoggleItems: Toggle[];\t\n\t}\t\n\t/** !#en ToggleGroup is not a visiable UI component but a way to modify the behavior of a set of Toggles.\n\tToggles that belong to the same group could only have one of them to be switched on at a time.\n\t!#zh ToggleGroup 不是一个可见的 UI 组件，它可以用来修改一组 Toggle  组件的行为。当一组 Toggle 属于同一个 ToggleGroup 的时候，\n\t任何时候只能有一个 Toggle 处于选中状态。 */\n\texport class ToggleGroup extends Component {\t\t\n\t\t/** !#en If this setting is true, a toggle could be switched off and on when pressed.\n\t\tIf it is false, it will make sure there is always only one toggle could be switched on\n\t\tand the already switched on toggle can't be switched off.\n\t\t!#zh 如果这个设置为 true， 那么 toggle 按钮在被点击的时候可以反复地被选中和未选中。 */\n\t\tallowSwitchOff: boolean;\t\t\n\t\t/** !#en Read only property, return the toggle items array reference managed by toggleGroup.\n\t\t!#zh 只读属性，返回 toggleGroup 管理的 toggle 数组引用 */\n\t\ttoggleItems: any[];\t\n\t}\t\n\t/** !#en\n\tHandling touch events in a ViewGroup takes special care,\n\tbecause it's common for a ViewGroup to have children that are targets for different touch events than the ViewGroup itself.\n\tTo make sure that each view correctly receives the touch events intended for it,\n\tViewGroup should register capture phase event and handle the event propagation properly.\n\tPlease refer to Scrollview for more  information.\n\t\n\t!#zh\n\tViewGroup的事件处理比较特殊，因为 ViewGroup 里面的子节点关心的事件跟 ViewGroup 本身可能不一样。\n\t为了让子节点能够正确地处理事件，ViewGroup 需要注册 capture 阶段的事件，并且合理地处理 ViewGroup 之间的事件传递。\n\t请参考 ScrollView 的实现来获取更多信息。 */\n\texport class ViewGroup extends Component {\t\n\t}\t\n\t/** !#en\n\tStores and manipulate the anchoring based on its parent.\n\tWidget are used for GUI but can also be used for other things.\n\tWidget will adjust current node's position and size automatically, but the results after adjustment can not be obtained until the next frame unless you call {{#crossLink \"Widget/updateAlignment:method\"}}{{/crossLink}} manually.\n\t!#zh\n\tWidget 组件，用于设置和适配其相对于父节点的边距，Widget 通常被用于 UI 界面，也可以用于其他地方。\n\tWidget 会自动调整当前节点的坐标和宽高，不过目前调整后的结果要到下一帧才能在脚本里获取到，除非你先手动调用 {{#crossLink \"Widget/updateAlignment:method\"}}{{/crossLink}}。 */\n\texport class Widget extends Component {\t\t\n\t\t/** !#en Specifies an alignment target that can only be one of the parent nodes of the current node.\n\t\tThe default value is null, and when null, indicates the current parent.\n\t\t!#zh 指定一个对齐目标，只能是当前节点的其中一个父节点，默认为空，为空时表示当前父节点。 */\n\t\ttarget: Node;\t\t\n\t\t/** !#en Whether to align the top.\n\t\t!#zh 是否对齐上边。 */\n\t\tisAlignTop: boolean;\t\t\n\t\t/** !#en\n\t\tVertically aligns the midpoint, This will open the other vertical alignment options cancel.\n\t\t!#zh\n\t\t是否垂直方向对齐中点，开启此项会将垂直方向其他对齐选项取消。 */\n\t\tisAlignVerticalCenter: boolean;\t\t\n\t\t/** !#en Whether to align the bottom.\n\t\t!#zh 是否对齐下边。 */\n\t\tisAlignBottom: boolean;\t\t\n\t\t/** !#en Whether to align the left.\n\t\t!#zh 是否对齐左边 */\n\t\tisAlignLeft: boolean;\t\t\n\t\t/** !#en\n\t\tHorizontal aligns the midpoint. This will open the other horizontal alignment options canceled.\n\t\t!#zh\n\t\t是否水平方向对齐中点，开启此选项会将水平方向其他对齐选项取消。 */\n\t\tisAlignHorizontalCenter: boolean;\t\t\n\t\t/** !#en Whether to align the right.\n\t\t!#zh 是否对齐右边。 */\n\t\tisAlignRight: boolean;\t\t\n\t\t/** !#en\n\t\tWhether the stretched horizontally, when enable the left and right alignment will be stretched horizontally,\n\t\tthe width setting is invalid (read only).\n\t\t!#zh\n\t\t当前是否水平拉伸。当同时启用左右对齐时，节点将会被水平拉伸，此时节点的宽度只读。 */\n\t\tisStretchWidth: boolean;\t\t\n\t\t/** !#en\n\t\tWhether the stretched vertically, when enable the left and right alignment will be stretched vertically,\n\t\tthen height setting is invalid (read only)\n\t\t!#zh\n\t\t当前是否垂直拉伸。当同时启用上下对齐时，节点将会被垂直拉伸，此时节点的高度只读。 */\n\t\tisStretchHeight: boolean;\t\t\n\t\t/** !#en\n\t\tThe margins between the top of this node and the top of parent node,\n\t\tthe value can be negative, Only available in 'isAlignTop' open.\n\t\t!#zh\n\t\t本节点顶边和父节点顶边的距离，可填写负值，只有在 isAlignTop 开启时才有作用。 */\n\t\ttop: number;\t\t\n\t\t/** !#en\n\t\tThe margins between the bottom of this node and the bottom of parent node,\n\t\tthe value can be negative, Only available in 'isAlignBottom' open.\n\t\t!#zh\n\t\t本节点底边和父节点底边的距离，可填写负值，只有在 isAlignBottom 开启时才有作用。 */\n\t\tbottom: number;\t\t\n\t\t/** !#en\n\t\tThe margins between the left of this node and the left of parent node,\n\t\tthe value can be negative, Only available in 'isAlignLeft' open.\n\t\t!#zh\n\t\t本节点左边和父节点左边的距离，可填写负值，只有在 isAlignLeft 开启时才有作用。 */\n\t\tleft: number;\t\t\n\t\t/** !#en\n\t\tThe margins between the right of this node and the right of parent node,\n\t\tthe value can be negative, Only available in 'isAlignRight' open.\n\t\t!#zh\n\t\t本节点右边和父节点右边的距离，可填写负值，只有在 isAlignRight 开启时才有作用。 */\n\t\tright: number;\t\t\n\t\t/** !#en\n\t\tHorizontal aligns the midpoint offset value,\n\t\tthe value can be negative, Only available in 'isAlignHorizontalCenter' open.\n\t\t!#zh 水平居中的偏移值，可填写负值，只有在 isAlignHorizontalCenter 开启时才有作用。 */\n\t\thorizontalCenter: number;\t\t\n\t\t/** !#en\n\t\tVertical aligns the midpoint offset value,\n\t\tthe value can be negative, Only available in 'isAlignVerticalCenter' open.\n\t\t!#zh 垂直居中的偏移值，可填写负值，只有在 isAlignVerticalCenter 开启时才有作用。 */\n\t\tverticalCenter: number;\t\t\n\t\t/** !#en If true, horizontalCenter is pixel margin, otherwise is percentage (0 - 1) margin.\n\t\t!#zh 如果为 true，\"horizontalCenter\" 将会以像素作为偏移值，反之为百分比（0 到 1）。 */\n\t\tisAbsoluteHorizontalCenter: boolean;\t\t\n\t\t/** !#en If true, verticalCenter is pixel margin, otherwise is percentage (0 - 1) margin.\n\t\t!#zh 如果为 true，\"verticalCenter\" 将会以像素作为偏移值，反之为百分比（0 到 1）。 */\n\t\tisAbsoluteVerticalCenter: boolean;\t\t\n\t\t/** !#en\n\t\tIf true, top is pixel margin, otherwise is percentage (0 - 1) margin relative to the parent's height.\n\t\t!#zh\n\t\t如果为 true，\"top\" 将会以像素作为边距，否则将会以相对父物体高度的百分比（0 到 1）作为边距。 */\n\t\tisAbsoluteTop: boolean;\t\t\n\t\t/** !#en\n\t\tIf true, bottom is pixel margin, otherwise is percentage (0 - 1) margin relative to the parent's height.\n\t\t!#zh\n\t\t如果为 true，\"bottom\" 将会以像素作为边距，否则将会以相对父物体高度的百分比（0 到 1）作为边距。 */\n\t\tisAbsoluteBottom: boolean;\t\t\n\t\t/** !#en\n\t\tIf true, left is pixel margin, otherwise is percentage (0 - 1) margin relative to the parent's width.\n\t\t!#zh\n\t\t如果为 true，\"left\" 将会以像素作为边距，否则将会以相对父物体宽度的百分比（0 到 1）作为边距。 */\n\t\tisAbsoluteLeft: boolean;\t\t\n\t\t/** !#en\n\t\tIf true, right is pixel margin, otherwise is percentage (0 - 1) margin relative to the parent's width.\n\t\t!#zh\n\t\t如果为 true，\"right\" 将会以像素作为边距，否则将会以相对父物体宽度的百分比（0 到 1）作为边距。 */\n\t\tisAbsoluteRight: boolean;\t\t\n\t\t/** !#en Specifies the alignment mode of the Widget, which determines when the widget should refresh.\n\t\t!#zh 指定 Widget 的对齐模式，用于决定 Widget 应该何时刷新。 */\n\t\talignMode: Widget.AlignMode;\t\t\n\t\t/**\n\t\t!#en\n\t\tImmediately perform the widget alignment. You need to manually call this method only if\n\t\tyou need to get the latest results after the alignment before the end of current frame.\n\t\t!#zh\n\t\t立刻执行 widget 对齐操作。这个接口一般不需要手工调用。\n\t\t只有当你需要在当前帧结束前获得 widget 对齐后的最新结果时才需要手动调用这个方法。\n\t\t\n\t\t@example \n\t\t```js\n\t\twidget.top = 10;       // change top margin\n\t\tcc.log(widget.node.y); // not yet changed\n\t\twidget.updateAlignment();\n\t\tcc.log(widget.node.y); // changed\n\t\t``` \n\t\t*/\n\t\tupdateAlignment(): void;\t\t\n\t\t/** !#en\n\t\tWhen turned on, it will only be aligned once at the end of the onEnable frame,\n\t\tthen immediately disables the current component.\n\t\tThis will allow the script or animation to continue controlling the current node.\n\t\tNote: It will still be aligned at the frame when onEnable is called.\n\t\t!#zh\n\t\t开启后仅会在 onEnable 的当帧结束时对齐一次，然后立刻禁用当前组件。\n\t\t这样便于脚本或动画继续控制当前节点。\n\t\t注意：onEnable 时所在的那一帧仍然会进行对齐。 */\n\t\tisAlignOnce: boolean;\t\n\t}\t\n\t/** !#en SwanSubContextView is a view component which controls open data context viewport in WeChat game platform.<br/>\n\tThe component's node size decide the viewport of the sub context content in main context,\n\tthe entire sub context texture will be scaled to the node's bounding box area.<br/>\n\tThis component provides multiple important features:<br/>\n\t1. Sub context could use its own resolution size and policy.<br/>\n\t2. Sub context could be minized to smallest size it needed.<br/>\n\t3. Resolution of sub context content could be increased.<br/>\n\t4. User touch input is transformed to the correct viewport.<br/>\n\t5. Texture update is handled by this component. User don't need to worry.<br/>\n\tOne important thing to be noted, whenever the node's bounding box change,\n\tyou need to manually reset the viewport of sub context using updateSubContextViewport.\n\t!#zh SwanSubContextView 可以用来控制百度小游戏平台开放数据域在主域中的视窗的位置。<br/>\n\t这个组件的节点尺寸决定了开放数据域内容在主域中的尺寸，整个开放数据域会被缩放到节点的包围盒范围内。<br/>\n\t在这个组件的控制下，用户可以更自由得控制开放数据域：<br/>\n\t1. 子域中可以使用独立的设计分辨率和适配模式<br/>\n\t2. 子域区域尺寸可以缩小到只容纳内容即可<br/>\n\t3. 子域的分辨率也可以被放大，以便获得更清晰的显示效果<br/>\n\t4. 用户输入坐标会被自动转换到正确的子域视窗中<br/>\n\t5. 子域内容贴图的更新由组件负责，用户不需要处理<br/>\n\t唯一需要注意的是，当子域节点的包围盒发生改变时，开发者需要使用 `updateSubContextViewport` 来手动更新子域视窗。 */\n\texport class SwanSubContextView extends Component {\t\t\n\t\t/**\n\t\t!#en Update the sub context viewport manually, it should be called whenever the node's bounding box changes.\n\t\t!#zh 更新开放数据域相对于主域的 viewport，这个函数应该在节点包围盒改变时手动调用。 \n\t\t*/\n\t\tupdateSubContextViewport(): void;\t\n\t}\t\n\t/** !#en WXSubContextView is a view component which controls open data context viewport in WeChat game platform.<br/>\n\tThe component's node size decide the viewport of the sub context content in main context,\n\tthe entire sub context texture will be scaled to the node's bounding box area.<br/>\n\tThis component provides multiple important features:<br/>\n\t1. Sub context could use its own resolution size and policy.<br/>\n\t2. Sub context could be minized to smallest size it needed.<br/>\n\t3. Resolution of sub context content could be increased.<br/>\n\t4. User touch input is transformed to the correct viewport.<br/>\n\t5. Texture update is handled by this component. User don't need to worry.<br/>\n\tOne important thing to be noted, whenever the node's bounding box change,\n\tyou need to manually reset the viewport of sub context using updateSubContextViewport.\n\t!#zh WXSubContextView 可以用来控制微信小游戏平台开放数据域在主域中的视窗的位置。<br/>\n\t这个组件的节点尺寸决定了开放数据域内容在主域中的尺寸，整个开放数据域会被缩放到节点的包围盒范围内。<br/>\n\t在这个组件的控制下，用户可以更自由得控制开放数据域：<br/>\n\t1. 子域中可以使用独立的设计分辨率和适配模式<br/>\n\t2. 子域区域尺寸可以缩小到只容纳内容即可<br/>\n\t3. 子域的分辨率也可以被放大，以便获得更清晰的显示效果<br/>\n\t4. 用户输入坐标会被自动转换到正确的子域视窗中<br/>\n\t5. 子域内容贴图的更新由组件负责，用户不需要处理<br/>\n\t唯一需要注意的是，当子域节点的包围盒发生改变时，开发者需要使用 `updateSubContextViewport` 来手动更新子域视窗。 */\n\texport class WXSubContextView extends Component {\t\t\n\t\t/**\n\t\t!#en Reset open data context size and viewport\n\t\t!#zh 重置开放数据域的尺寸和视窗 \n\t\t*/\n\t\treset(): void;\t\t\n\t\t/**\n\t\t!#en Update the sub context viewport manually, it should be called whenever the node's bounding box changes.\n\t\t!#zh 更新开放数据域相对于主域的 viewport，这个函数应该在节点包围盒改变时手动调用。 \n\t\t*/\n\t\tupdateSubContextViewport(): void;\t\n\t}\t\n\t/** !#en\n\tEventTarget is an object to which an event is dispatched when something has occurred.\n\tEntity are the most common event targets, but other objects can be event targets too.\n\t\n\tEvent targets are an important part of the Fireball event model.\n\tThe event target serves as the focal point for how events flow through the scene graph.\n\tWhen an event such as a mouse click or a keypress occurs, Fireball dispatches an event object\n\tinto the event flow from the root of the hierarchy. The event object then makes its way through\n\tthe scene graph until it reaches the event target, at which point it begins its return trip through\n\tthe scene graph. This round-trip journey to the event target is conceptually divided into three phases:\n\t- The capture phase comprises the journey from the root to the last node before the event target's node\n\t- The target phase comprises only the event target node\n\t- The bubbling phase comprises any subsequent nodes encountered on the return trip to the root of the tree\n\tSee also: http://www.w3.org/TR/DOM-Level-3-Events/#event-flow\n\t\n\tEvent targets can implement the following methods:\n\t - _getCapturingTargets\n\t - _getBubblingTargets\n\t\n\t!#zh\n\t事件目标是事件触发时，分派的事件对象，Node 是最常见的事件目标，\n\t但是其他对象也可以是事件目标。<br/> */\n\texport class EventTarget {\t\t\n\t\t/**\n\t\t!#en Checks whether the EventTarget object has any callback registered for a specific type of event.\n\t\t!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。\n\t\t@param type The type of event. \n\t\t*/\n\t\thasEventListener(type: string): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget.\n\t\tThis type of event should be triggered via `emit`.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.on('fire', function () {\n\t\t    cc.log(\"fire in the hole\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\ton<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemoves the listeners previously registered with the same type, callback, target and or useCapture,\n\t\tif only type is passed as parameter, all listeners registered with that type will be removed.\n\t\t!#zh\n\t\t删除之前用同类型，回调，目标或 useCapture 注册的事件监听器，如果只传递 type，将会删除 type 类型的所有事件监听器。\n\t\t@param type A string representing the event type being removed.\n\t\t@param callback The callback to remove.\n\t\t@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed\n\t\t\n\t\t@example \n\t\t```js\n\t\t// register fire eventListener\n\t\tvar callback = eventTarget.on('fire', function () {\n\t\t    cc.log(\"fire in the hole\");\n\t\t}, target);\n\t\t// remove fire event listener\n\t\teventTarget.off('fire', callback, target);\n\t\t// remove all fire event listeners\n\t\teventTarget.off('fire');\n\t\t``` \n\t\t*/\n\t\toff(type: string, callback?: Function, target?: any): void;\t\t\n\t\t/**\n\t\t!#en Removes all callbacks previously registered with the same target (passed as parameter).\n\t\tThis is not for removing all listeners in the current event target,\n\t\tand this is not for removing all listeners the target parameter have registered.\n\t\tIt's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.\n\t\t!#zh 在当前 EventTarget 上删除指定目标（target 参数）注册的所有事件监听器。\n\t\t这个函数无法删除当前 EventTarget 的所有事件监听器，也无法删除 target 参数所注册的所有事件监听器。\n\t\t这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。\n\t\t@param target The target to be searched for all related listeners \n\t\t*/\n\t\ttargetOff(target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget,\n\t\tthe callback will remove itself after the first time it is triggered.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调，回调会在第一时间被触发后删除自身。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.once('fire', function () {\n\t\t    cc.log(\"this is the callback and will be invoked only once\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\tonce(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tTrigger an event directly with the event name and necessary arguments.\n\t\t!#zh\n\t\t通过事件名发送自定义事件\n\t\t@param type event type\n\t\t@param arg1 First argument\n\t\t@param arg2 Second argument\n\t\t@param arg3 Third argument\n\t\t@param arg4 Fourth argument\n\t\t@param arg5 Fifth argument\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.emit('fire', event);\n\t\teventTarget.emit('fire', message, emitter);\n\t\t``` \n\t\t*/\n\t\temit(type: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSend an event with the event object.\n\t\t!#zh\n\t\t通过事件对象派发事件\n\t\t@param event event \n\t\t*/\n\t\tdispatchEvent(event: Event): void;\t\n\t}\t\n\t/** !#en Base class of all kinds of events.\n\t!#zh 包含事件相关信息的对象。 */\n\texport class Event {\t\t\n\t\t/**\n\t\t\n\t\t@param type The name of the event (case-sensitive), e.g. \"click\", \"fire\", or \"submit\"\n\t\t@param bubbles A boolean indicating whether the event bubbles up through the tree or not \n\t\t*/\n\t\tconstructor(type: string, bubbles: boolean);\t\t\n\t\t/** !#en The name of the event (case-sensitive), e.g. \"click\", \"fire\", or \"submit\".\n\t\t!#zh 事件类型。 */\n\t\ttype: string;\t\t\n\t\t/** !#en Indicate whether the event bubbles up through the tree or not.\n\t\t!#zh 表示该事件是否进行冒泡。 */\n\t\tbubbles: boolean;\t\t\n\t\t/** !#en A reference to the target to which the event was originally dispatched.\n\t\t!#zh 最初事件触发的目标 */\n\t\ttarget: any;\t\t\n\t\t/** !#en A reference to the currently registered target for the event.\n\t\t!#zh 当前目标 */\n\t\tcurrentTarget: any;\t\t\n\t\t/** !#en\n\t\tIndicates which phase of the event flow is currently being evaluated.\n\t\tReturns an integer value represented by 4 constants:\n\t\t - Event.NONE = 0\n\t\t - Event.CAPTURING_PHASE = 1\n\t\t - Event.AT_TARGET = 2\n\t\t - Event.BUBBLING_PHASE = 3\n\t\tThe phases are explained in the [section 3.1, Event dispatch and DOM event flow]\n\t\t(http://www.w3.org/TR/DOM-Level-3-Events/#event-flow), of the DOM Level 3 Events specification.\n\t\t!#zh 事件阶段 */\n\t\teventPhase: number;\t\t\n\t\t/**\n\t\t!#en Reset the event for being stored in the object pool.\n\t\t!#zh 重置对象池中存储的事件。 \n\t\t*/\n\t\tunuse(): string;\t\t\n\t\t/**\n\t\t!#en Reuse the event for being used again by the object pool.\n\t\t!#zh 用于对象池再次使用的事件。 \n\t\t*/\n\t\treuse(): string;\t\t\n\t\t/**\n\t\t!#en Stops propagation for current event.\n\t\t!#zh 停止传递当前事件。 \n\t\t*/\n\t\tstopPropagation(): void;\t\t\n\t\t/**\n\t\t!#en Stops propagation for current event immediately,\n\t\tthe event won't even be dispatched to the listeners attached in the current target.\n\t\t!#zh 立即停止当前事件的传递，事件甚至不会被分派到所连接的当前目标。 \n\t\t*/\n\t\tstopPropagationImmediate(): void;\t\t\n\t\t/**\n\t\t!#en Checks whether the event has been stopped.\n\t\t!#zh 检查该事件是否已经停止传递. \n\t\t*/\n\t\tisStopped(): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\t<p>\n\t\t    Gets current target of the event                                                            <br/>\n\t\t    note: It only be available when the event listener is associated with node.                <br/>\n\t\t         It returns 0 when the listener is associated with fixed priority.\n\t\t</p>\n\t\t!#zh 获取当前目标节点 \n\t\t*/\n\t\tgetCurrentTarget(): Node;\t\t\n\t\t/**\n\t\t!#en Gets the event type.\n\t\t!#zh 获取事件类型 \n\t\t*/\n\t\tgetType(): string;\t\t\n\t\t/** !#en Code for event without type.\n\t\t!#zh 没有类型的事件 */\n\t\tstatic NO_TYPE: string;\t\t\n\t\t/** !#en The type code of Touch event.\n\t\t!#zh 触摸事件类型 */\n\t\tstatic TOUCH: string;\t\t\n\t\t/** !#en The type code of Mouse event.\n\t\t!#zh 鼠标事件类型 */\n\t\tstatic MOUSE: string;\t\t\n\t\t/** !#en The type code of Keyboard event.\n\t\t!#zh 键盘事件类型 */\n\t\tstatic KEYBOARD: string;\t\t\n\t\t/** !#en The type code of Acceleration event.\n\t\t!#zh 加速器事件类型 */\n\t\tstatic ACCELERATION: string;\t\t\n\t\t/** !#en Events not currently dispatched are in this phase\n\t\t!#zh 尚未派发事件阶段 */\n\t\tstatic NONE: number;\t\t\n\t\t/** !#en\n\t\tThe capturing phase comprises the journey from the root to the last node before the event target's node\n\t\tsee http://www.w3.org/TR/DOM-Level-3-Events/#event-flow\n\t\t!#zh 捕获阶段，包括事件目标节点之前从根节点到最后一个节点的过程。 */\n\t\tstatic CAPTURING_PHASE: number;\t\t\n\t\t/** !#en\n\t\tThe target phase comprises only the event target node\n\t\tsee http://www.w3.org/TR/DOM-Level-3-Events/#event-flow\n\t\t!#zh 目标阶段仅包括事件目标节点。 */\n\t\tstatic AT_TARGET: number;\t\t\n\t\t/** !#en\n\t\tThe bubbling phase comprises any subsequent nodes encountered on the return trip to the root of the hierarchy\n\t\tsee http://www.w3.org/TR/DOM-Level-3-Events/#event-flow\n\t\t!#zh 冒泡阶段， 包括回程遇到到层次根节点的任何后续节点。 */\n\t\tstatic BUBBLING_PHASE: number;\t\n\t}\t\n\t/** !#en\n\tThe System event, it currently supports keyboard events and accelerometer events.<br>\n\tYou can get the SystemEvent instance with cc.systemEvent.<br>\n\t!#zh\n\t系统事件，它目前支持按键事件和重力感应事件。<br>\n\t你可以通过 cc.systemEvent 获取到 SystemEvent 的实例。<br> */\n\texport class SystemEvent extends EventTarget {\t\t\n\t\t/**\n\t\t!#en whether enable accelerometer event\n\t\t!#zh 是否启用加速度计事件\n\t\t@param isEnable isEnable \n\t\t*/\n\t\tsetAccelerometerEnabled(isEnable: boolean): void;\t\t\n\t\t/**\n\t\t!#en set accelerometer interval value\n\t\t!#zh 设置加速度计间隔值\n\t\t@param interval interval \n\t\t*/\n\t\tsetAccelerometerInterval(interval: number): void;\t\n\t}\t\n\t/** undefined */\n\texport class Graphics extends RenderComponent {\t\t\n\t\t/** !#en\n\t\tCurrent line width.\n\t\t!#zh\n\t\t当前线条宽度 */\n\t\tlineWidth: number;\t\t\n\t\t/** !#en\n\t\tlineJoin determines how two connecting segments (of lines, arcs or curves) with non-zero lengths in a shape are joined together.\n\t\t!#zh\n\t\tlineJoin 用来设置2个长度不为0的相连部分（线段，圆弧，曲线）如何连接在一起的属性。 */\n\t\tlineJoin: Graphics.LineJoin;\t\t\n\t\t/** !#en\n\t\tlineCap determines how the end points of every line are drawn.\n\t\t!#zh\n\t\tlineCap 指定如何绘制每一条线段末端。 */\n\t\tlineCap: Graphics.LineCap;\t\t\n\t\t/** !#en\n\t\tstroke color\n\t\t!#zh\n\t\t线段颜色 */\n\t\tstrokeColor: Color;\t\t\n\t\t/** !#en\n\t\tfill color\n\t\t!#zh\n\t\t填充颜色 */\n\t\tfillColor: Color;\t\t\n\t\t/** !#en\n\t\tSets the miter limit ratio\n\t\t!#zh\n\t\t设置斜接面限制比例 */\n\t\tmiterLimit: number;\t\t\n\t\t/**\n\t\t!#en Move path start point to (x,y).\n\t\t!#zh 移动路径起点到坐标(x, y)\n\t\t@param x The x axis of the coordinate for the end point.\n\t\t@param y The y axis of the coordinate for the end point. \n\t\t*/\n\t\tmoveTo(x?: number, y?: number): void;\t\t\n\t\t/**\n\t\t!#en Adds a straight line to the path\n\t\t!#zh 绘制直线路径\n\t\t@param x The x axis of the coordinate for the end point.\n\t\t@param y The y axis of the coordinate for the end point. \n\t\t*/\n\t\tlineTo(x?: number, y?: number): void;\t\t\n\t\t/**\n\t\t!#en Adds a cubic Bézier curve to the path\n\t\t!#zh 绘制三次贝赛尔曲线路径\n\t\t@param c1x The x axis of the coordinate for the first control point.\n\t\t@param c1y The y axis of the coordinate for first control point.\n\t\t@param c2x The x axis of the coordinate for the second control point.\n\t\t@param c2y The y axis of the coordinate for the second control point.\n\t\t@param x The x axis of the coordinate for the end point.\n\t\t@param y The y axis of the coordinate for the end point. \n\t\t*/\n\t\tbezierCurveTo(c1x?: number, c1y?: number, c2x?: number, c2y?: number, x?: number, y?: number): void;\t\t\n\t\t/**\n\t\t!#en Adds a quadratic Bézier curve to the path\n\t\t!#zh 绘制二次贝赛尔曲线路径\n\t\t@param cx The x axis of the coordinate for the control point.\n\t\t@param cy The y axis of the coordinate for the control point.\n\t\t@param x The x axis of the coordinate for the end point.\n\t\t@param y The y axis of the coordinate for the end point. \n\t\t*/\n\t\tquadraticCurveTo(cx?: number, cy?: number, x?: number, y?: number): void;\t\t\n\t\t/**\n\t\t!#en Adds an arc to the path which is centered at (cx, cy) position with radius r starting at startAngle and ending at endAngle going in the given direction by counterclockwise (defaulting to false).\n\t\t!#zh 绘制圆弧路径。圆弧路径的圆心在 (cx, cy) 位置，半径为 r ，根据 counterclockwise （默认为false）指定的方向从 startAngle 开始绘制，到 endAngle 结束。\n\t\t@param cx The x axis of the coordinate for the center point.\n\t\t@param cy The y axis of the coordinate for the center point.\n\t\t@param r The arc's radius.\n\t\t@param startAngle The angle at which the arc starts, measured clockwise from the positive x axis and expressed in radians.\n\t\t@param endAngle The angle at which the arc ends, measured clockwise from the positive x axis and expressed in radians.\n\t\t@param counterclockwise An optional Boolean which, if true, causes the arc to be drawn counter-clockwise between the two angles. By default it is drawn clockwise. \n\t\t*/\n\t\tarc(cx?: number, cy?: number, r?: number, startAngle?: number, endAngle?: number, counterclockwise?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Adds an ellipse to the path.\n\t\t!#zh 绘制椭圆路径。\n\t\t@param cx The x axis of the coordinate for the center point.\n\t\t@param cy The y axis of the coordinate for the center point.\n\t\t@param rx The ellipse's x-axis radius.\n\t\t@param ry The ellipse's y-axis radius. \n\t\t*/\n\t\tellipse(cx?: number, cy?: number, rx?: number, ry?: number): void;\t\t\n\t\t/**\n\t\t!#en Adds an circle to the path.\n\t\t!#zh 绘制圆形路径。\n\t\t@param cx The x axis of the coordinate for the center point.\n\t\t@param cy The y axis of the coordinate for the center point.\n\t\t@param r The circle's radius. \n\t\t*/\n\t\tcircle(cx?: number, cy?: number, r?: number): void;\t\t\n\t\t/**\n\t\t!#en Adds an rectangle to the path.\n\t\t!#zh 绘制矩形路径。\n\t\t@param x The x axis of the coordinate for the rectangle starting point.\n\t\t@param y The y axis of the coordinate for the rectangle starting point.\n\t\t@param w The rectangle's width.\n\t\t@param h The rectangle's height. \n\t\t*/\n\t\trect(x?: number, y?: number, w?: number, h?: number): void;\t\t\n\t\t/**\n\t\t!#en Adds an round corner rectangle to the path.\n\t\t!#zh 绘制圆角矩形路径。\n\t\t@param x The x axis of the coordinate for the rectangle starting point.\n\t\t@param y The y axis of the coordinate for the rectangle starting point.\n\t\t@param w The rectangles width.\n\t\t@param h The rectangle's height.\n\t\t@param r The radius of the rectangle. \n\t\t*/\n\t\troundRect(x?: number, y?: number, w?: number, h?: number, r?: number): void;\t\t\n\t\t/**\n\t\t!#en Draws a filled rectangle.\n\t\t!#zh 绘制填充矩形。\n\t\t@param x The x axis of the coordinate for the rectangle starting point.\n\t\t@param y The y axis of the coordinate for the rectangle starting point.\n\t\t@param w The rectangle's width.\n\t\t@param h The rectangle's height. \n\t\t*/\n\t\tfillRect(x?: number, y?: number, w?: number, h?: number): void;\t\t\n\t\t/**\n\t\t!#en Erasing any previously drawn content.\n\t\t!#zh 擦除之前绘制的所有内容的方法。\n\t\t@param clean Whether to clean the graphics inner cache. \n\t\t*/\n\t\tclear(clean?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Causes the point of the pen to move back to the start of the current path. It tries to add a straight line from the current point to the start.\n\t\t!#zh 将笔点返回到当前路径起始点的。它尝试从当前点到起始点绘制一条直线。 \n\t\t*/\n\t\tclose(): void;\t\t\n\t\t/**\n\t\t!#en Strokes the current or given path with the current stroke style.\n\t\t!#zh 根据当前的画线样式，绘制当前或已经存在的路径。 \n\t\t*/\n\t\tstroke(): void;\t\t\n\t\t/**\n\t\t!#en Fills the current or given path with the current fill style.\n\t\t!#zh 根据当前的画线样式，填充当前或已经存在的路径。 \n\t\t*/\n\t\tfill(): void;\t\n\t}\t\n\t/** undefined */\n\texport class WorldManifold {\t\t\n\t\t/** !#en\n\t\tworld contact point (point of intersection)\n\t\t!#zh\n\t\t碰撞点集合 */\n\t\tpoints: Vec2[];\t\t\n\t\t/** !#en\n\t\tworld vector pointing from A to B\n\t\t!#zh\n\t\t世界坐标系下由 A 指向 B 的向量 */\n\t\tnormal: Vec2;\t\n\t}\t\n\t/** !#en\n\tA manifold point is a contact point belonging to a contact manifold.\n\tIt holds details related to the geometry and dynamics of the contact points.\n\tNote: the impulses are used for internal caching and may not\n\tprovide reliable contact forces, especially for high speed collisions.\n\t!#zh\n\tManifoldPoint 是接触信息中的接触点信息。它拥有关于几何和接触点的详细信息。\n\t注意：信息中的冲量用于系统内部缓存，提供的接触力可能不是很准确，特别是高速移动中的碰撞信息。 */\n\texport class ManifoldPoint {\t\t\n\t\t/** !#en\n\t\tThe local point usage depends on the manifold type:\n\t\t-e_circles: the local center of circleB\n\t\t-e_faceA: the local center of circleB or the clip point of polygonB\n\t\t-e_faceB: the clip point of polygonA\n\t\t!#zh\n\t\t本地坐标点的用途取决于 manifold 的类型\n\t\t- e_circles: circleB 的本地中心点\n\t\t- e_faceA: circleB 的本地中心点 或者是 polygonB 的截取点\n\t\t- e_faceB: polygonB 的截取点 */\n\t\tlocalPoint: Vec2;\t\t\n\t\t/** !#en\n\t\tNormal impulse.\n\t\t!#zh\n\t\t法线冲量。 */\n\t\tnormalImpulse: number;\t\t\n\t\t/** !#en\n\t\tTangent impulse.\n\t\t!#zh\n\t\t切线冲量。 */\n\t\ttangentImpulse: number;\t\n\t}\t\n\t/** undefined */\n\texport class Manifold {\t\t\n\t\t/** !#en\n\t\tManifold type :  0: e_circles, 1: e_faceA, 2: e_faceB\n\t\t!#zh\n\t\tManifold 类型 :  0: e_circles, 1: e_faceA, 2: e_faceB */\n\t\ttype: number;\t\t\n\t\t/** !#en\n\t\tThe local point usage depends on the manifold type:\n\t\t-e_circles: the local center of circleA\n\t\t-e_faceA: the center of faceA\n\t\t-e_faceB: the center of faceB\n\t\t!#zh\n\t\t用途取决于 manifold 类型\n\t\t-e_circles: circleA 的本地中心点\n\t\t-e_faceA: faceA 的本地中心点\n\t\t-e_faceB: faceB 的本地中心点 */\n\t\tlocalPoint: Vec2;\t\t\n\t\t/** !#en\n\t\t-e_circles: not used\n\t\t-e_faceA: the normal on polygonA\n\t\t-e_faceB: the normal on polygonB\n\t\t!#zh\n\t\t-e_circles: 没被使用到\n\t\t-e_faceA: polygonA 的法向量\n\t\t-e_faceB: polygonB 的法向量 */\n\t\tlocalNormal: Vec2;\t\t\n\t\t/** !#en\n\t\tthe points of contact.\n\t\t!#zh\n\t\t接触点信息。 */\n\t\tpoints: ManifoldPoint[];\t\n\t}\t\n\t/** !#en\n\tContact impulses for reporting.\n\t!#zh\n\t用于返回给回调的接触冲量。 */\n\texport class PhysicsImpulse {\t\t\n\t\t/** !#en\n\t\tNormal impulses.\n\t\t!#zh\n\t\t法线方向的冲量 */\n\t\tnormalImpulses: any;\t\t\n\t\t/** !#en\n\t\tTangent impulses\n\t\t!#zh\n\t\t切线方向的冲量 */\n\t\ttangentImpulses: any;\t\n\t}\t\n\t/** !#en\n\tPhysicsContact will be generated during begin and end collision as a parameter of the collision callback.\n\tNote that contacts will be reused for speed up cpu time, so do not cache anything in the contact.\n\t!#zh\n\t物理接触会在开始和结束碰撞之间生成，并作为参数传入到碰撞回调函数中。\n\t注意：传入的物理接触会被系统进行重用，所以不要在使用中缓存里面的任何信息。 */\n\texport class PhysicsContact {\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the world manifold.\n\t\t!#zh\n\t\t获取世界坐标系下的碰撞信息。 \n\t\t*/\n\t\tgetWorldManifold(): WorldManifold;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the manifold.\n\t\t!#zh\n\t\t获取本地（局部）坐标系下的碰撞信息。 \n\t\t*/\n\t\tgetManifold(): Manifold;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the impulses.\n\t\tNote: PhysicsImpulse can only used in onPostSolve callback.\n\t\t!#zh\n\t\t获取冲量信息\n\t\t注意：这个信息只有在 onPostSolve 回调中才能获取到 \n\t\t*/\n\t\tgetImpulse(): PhysicsImpulse;\t\t\n\t\tcolliderA: Collider;\t\t\n\t\tcolliderB: Collider;\t\t\n\t\t/** !#en\n\t\tIf set disabled to true, the contact will be ignored until contact end.\n\t\tIf you just want to disabled contact for current time step or sub-step, please use disabledOnce.\n\t\t!#zh\n\t\t如果 disabled 被设置为 true，那么直到接触结束此接触都将被忽略。\n\t\t如果只是希望在当前时间步或子步中忽略此接触，请使用 disabledOnce 。 */\n\t\tdisabled: boolean;\t\t\n\t\t/** !#en\n\t\tDisabled contact for current time step or sub-step.\n\t\t!#zh\n\t\t在当前时间步或子步中忽略此接触。 */\n\t\tdisabledOnce: boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tIs this contact touching?\n\t\t!#zh\n\t\t返回碰撞体是否已经接触到。 \n\t\t*/\n\t\tisTouching(): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tSet the desired tangent speed for a conveyor belt behavior.\n\t\t!#zh\n\t\t为传送带设置期望的切线速度\n\t\t@param tangentSpeed tangentSpeed \n\t\t*/\n\t\tsetTangentSpeed(tangentSpeed: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the desired tangent speed.\n\t\t!#zh\n\t\t获取切线速度 \n\t\t*/\n\t\tgetTangentSpeed(): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tOverride the default friction mixture. You can call this in onPreSolve callback.\n\t\t!#zh\n\t\t覆盖默认的摩擦力系数。你可以在 onPreSolve 回调中调用此函数。\n\t\t@param friction friction \n\t\t*/\n\t\tsetFriction(friction: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the friction.\n\t\t!#zh\n\t\t获取当前摩擦力系数 \n\t\t*/\n\t\tgetFriction(): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tReset the friction mixture to the default value.\n\t\t!#zh\n\t\t重置摩擦力系数到默认值 \n\t\t*/\n\t\tresetFriction(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tOverride the default restitution mixture. You can call this in onPreSolve callback.\n\t\t!#zh\n\t\t覆盖默认的恢复系数。你可以在 onPreSolve 回调中调用此函数。\n\t\t@param restitution restitution \n\t\t*/\n\t\tsetRestitution(restitution: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the restitution.\n\t\t!#zh\n\t\t获取当前恢复系数 \n\t\t*/\n\t\tgetRestitution(): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tReset the restitution mixture to the default value.\n\t\t!#zh\n\t\t重置恢复系数到默认值 \n\t\t*/\n\t\tresetRestitution(): void;\t\n\t}\t\n\t/** !#en\n\tPhysics manager uses box2d as the inner physics system, and hide most box2d implement details(creating rigidbody, synchronize rigidbody info to node).\n\tYou can visit some common box2d function through physics manager(hit testing, raycast, debug info).\n\tPhysics manager distributes the collision information to each collision callback when collision is produced.\n\tNote: You need first enable the collision listener in the rigidbody.\n\t!#zh\n\t物理系统将 box2d 作为内部物理系统，并且隐藏了大部分 box2d 实现细节（比如创建刚体，同步刚体信息到节点中等）。\n\t你可以通过物理系统访问一些 box2d 常用的功能，比如点击测试，射线测试，设置测试信息等。\n\t物理系统还管理碰撞信息的分发，她会在产生碰撞时，将碰撞信息分发到各个碰撞回调中。\n\t注意：你需要先在刚体中开启碰撞接听才会产生相应的碰撞回调。<br>\n\t支持的物理系统指定绘制信息事件，请参阅 {{#crossLink \"PhysicsManager.DrawBits\"}}{{/crossLink}} */\n\texport class PhysicsManager implements EventTarget {\t\t\n\t\t/** !#en\n\t\tThe ratio transform between physics unit and pixel unit, generally is 32.\n\t\t!#zh\n\t\t物理单位与像素单位互相转换的比率，一般是 32。 */\n\t\tstatic PTM_RATIO: number;\t\t\n\t\t/** !#en\n\t\tThe velocity iterations for the velocity constraint solver.\n\t\t!#zh\n\t\t速度更新迭代数 */\n\t\tstatic VELOCITY_ITERATIONS: number;\t\t\n\t\t/** !#en\n\t\tThe position Iterations for the position constraint solver.\n\t\t!#zh\n\t\t位置迭代更新数 */\n\t\tstatic POSITION_ITERATIONS: number;\t\t\n\t\t/** !#en\n\t\tSpecify the fixed time step.\n\t\tNeed enabledAccumulator to make it work.\n\t\t!#zh\n\t\t指定固定的物理更新间隔时间，需要开启 enabledAccumulator 才有效。 */\n\t\tstatic FIXED_TIME_STEP: number;\t\t\n\t\t/** !#en\n\t\tSpecify the max accumulator time.\n\t\tNeed enabledAccumulator to make it work.\n\t\t!#zh\n\t\t每次可用于更新物理系统的最大时间，需要开启 enabledAccumulator 才有效。 */\n\t\tstatic MAX_ACCUMULATOR: number;\t\t\n\t\t/** !#en\n\t\tIf enabled accumulator, then will call step function with the fixed time step FIXED_TIME_STEP.\n\t\tAnd if the update dt is bigger than the time step, then will call step function several times.\n\t\tIf disabled accumulator, then will call step function with a time step calculated with the frame rate.\n\t\t!#zh\n\t\t如果开启此选项，那么将会以固定的间隔时间 FIXED_TIME_STEP 来更新物理引擎，如果一个 update 的间隔时间大于 FIXED_TIME_STEP，则会对物理引擎进行多次更新。\n\t\t如果关闭此选项，那么将会根据设定的 frame rate 计算出一个间隔时间来更新物理引擎。 */\n\t\tenabledAccumulator: boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tTest which collider contains the given world point\n\t\t!#zh\n\t\t获取包含给定世界坐标系点的碰撞体\n\t\t@param point the world point \n\t\t*/\n\t\ttestPoint(point: Vec2): PhysicsCollider;\t\t\n\t\t/**\n\t\t!#en\n\t\tTest which colliders intersect the given world rect\n\t\t!#zh\n\t\t获取与给定世界坐标系矩形相交的碰撞体\n\t\t@param rect the world rect \n\t\t*/\n\t\ttestAABB(rect: Rect): PhysicsCollider[];\t\t\n\t\t/**\n\t\t!#en\n\t\tRaycast the world for all colliders in the path of the ray.\n\t\tThe raycast ignores colliders that contain the starting point.\n\t\t!#zh\n\t\t检测哪些碰撞体在给定射线的路径上，射线检测将忽略包含起始点的碰撞体。\n\t\t@param p1 start point of the raycast\n\t\t@param p2 end point of the raycast\n\t\t@param type optional, default is RayCastType.Closest \n\t\t*/\n\t\trayCast(p1: Vec2, p2: Vec2, type: RayCastType): PhysicsRayCastResult[];\t\t\n\t\t/** !#en\n\t\tEnabled the physics manager?\n\t\t!#zh\n\t\t指定是否启用物理系统？ */\n\t\tenabled: boolean;\t\t\n\t\t/** !#en\n\t\tDebug draw flags.\n\t\t!#zh\n\t\t设置调试绘制标志 */\n\t\tdebugDrawFlags: number;\t\t\n\t\t/** !#en\n\t\tThe physics world gravity.\n\t\t!#zh\n\t\t物理世界重力值 */\n\t\tgravity: Vec2;\t\t\n\t\t/**\n\t\t!#en Checks whether the EventTarget object has any callback registered for a specific type of event.\n\t\t!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。\n\t\t@param type The type of event. \n\t\t*/\n\t\thasEventListener(type: string): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget.\n\t\tThis type of event should be triggered via `emit`.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.on('fire', function () {\n\t\t    cc.log(\"fire in the hole\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\ton<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemoves the listeners previously registered with the same type, callback, target and or useCapture,\n\t\tif only type is passed as parameter, all listeners registered with that type will be removed.\n\t\t!#zh\n\t\t删除之前用同类型，回调，目标或 useCapture 注册的事件监听器，如果只传递 type，将会删除 type 类型的所有事件监听器。\n\t\t@param type A string representing the event type being removed.\n\t\t@param callback The callback to remove.\n\t\t@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed\n\t\t\n\t\t@example \n\t\t```js\n\t\t// register fire eventListener\n\t\tvar callback = eventTarget.on('fire', function () {\n\t\t    cc.log(\"fire in the hole\");\n\t\t}, target);\n\t\t// remove fire event listener\n\t\teventTarget.off('fire', callback, target);\n\t\t// remove all fire event listeners\n\t\teventTarget.off('fire');\n\t\t``` \n\t\t*/\n\t\toff(type: string, callback?: Function, target?: any): void;\t\t\n\t\t/**\n\t\t!#en Removes all callbacks previously registered with the same target (passed as parameter).\n\t\tThis is not for removing all listeners in the current event target,\n\t\tand this is not for removing all listeners the target parameter have registered.\n\t\tIt's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.\n\t\t!#zh 在当前 EventTarget 上删除指定目标（target 参数）注册的所有事件监听器。\n\t\t这个函数无法删除当前 EventTarget 的所有事件监听器，也无法删除 target 参数所注册的所有事件监听器。\n\t\t这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。\n\t\t@param target The target to be searched for all related listeners \n\t\t*/\n\t\ttargetOff(target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget,\n\t\tthe callback will remove itself after the first time it is triggered.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调，回调会在第一时间被触发后删除自身。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.once('fire', function () {\n\t\t    cc.log(\"this is the callback and will be invoked only once\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\tonce(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tTrigger an event directly with the event name and necessary arguments.\n\t\t!#zh\n\t\t通过事件名发送自定义事件\n\t\t@param type event type\n\t\t@param arg1 First argument\n\t\t@param arg2 Second argument\n\t\t@param arg3 Third argument\n\t\t@param arg4 Fourth argument\n\t\t@param arg5 Fifth argument\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.emit('fire', event);\n\t\teventTarget.emit('fire', message, emitter);\n\t\t``` \n\t\t*/\n\t\temit(type: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSend an event with the event object.\n\t\t!#zh\n\t\t通过事件对象派发事件\n\t\t@param event event \n\t\t*/\n\t\tdispatchEvent(event: Event): void;\t\n\t}\t\n\t/** undefined */\n\texport class PhysicsRayCastResult {\t\t\n\t\t/** !#en\n\t\tThe PhysicsCollider which intersects with the raycast\n\t\t!#zh\n\t\t与射线相交的碰撞体 */\n\t\tcollider: PhysicsCollider;\t\t\n\t\t/** !#en\n\t\tThe intersection point\n\t\t!#zh\n\t\t射线与碰撞体相交的点 */\n\t\tpoint: Vec2;\t\t\n\t\t/** !#en\n\t\tThe normal vector at the point of intersection\n\t\t!#zh\n\t\t射线与碰撞体相交的点的法向量 */\n\t\tnormal: Vec2;\t\t\n\t\t/** !#en\n\t\tThe fraction of the raycast path at the point of intersection\n\t\t!#zh\n\t\t射线与碰撞体相交的点占射线长度的分数 */\n\t\tfraction: number;\t\n\t}\t\n\t/** !#en Enum for RigidBodyType.\n\t!#zh 刚体类型 */\n\texport enum RigidBodyType {\t\t\n\t\tStatic = 0,\n\t\tKinematic = 0,\n\t\tDynamic = 0,\n\t\tAnimated = 0,\t\n\t}\t\n\t/** !#en Enum for RayCastType.\n\t!#zh 射线检测类型 */\n\texport enum RayCastType {\t\t\n\t\tClosest = 0,\n\t\tAny = 0,\n\t\tAllClosest = 0,\n\t\tAll = 0,\t\n\t}\t\n\t/** undefined */\n\texport class RigidBody extends Component {\t\t\n\t\t/** !#en\n\t\tShould enabled contact listener?\n\t\tWhen a collision is trigger, the collision callback will only be called when enabled contact listener.\n\t\t!#zh\n\t\t是否启用接触接听器。\n\t\t当 collider 产生碰撞时，只有开启了接触接听器才会调用相应的回调函数 */\n\t\tenabledContactListener: boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tCollision callback.\n\t\tCalled when two collider begin to touch.\n\t\t!#zh\n\t\t碰撞回调。\n\t\t如果你的脚本中实现了这个函数，那么它将会在两个碰撞体开始接触时被调用。\n\t\t@param contact contact information\n\t\t@param selfCollider the collider belong to this rigidbody\n\t\t@param otherCollider the collider belong to another rigidbody \n\t\t*/\n\t\tonBeginContact(contact: PhysicsContact, selfCollider: PhysicsCollider, otherCollider: PhysicsCollider): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tCollision callback.\n\t\tCalled when two collider cease to touch.\n\t\t!#zh\n\t\t碰撞回调。\n\t\t如果你的脚本中实现了这个函数，那么它将会在两个碰撞体停止接触时被调用。\n\t\t@param contact contact information\n\t\t@param selfCollider the collider belong to this rigidbody\n\t\t@param otherCollider the collider belong to another rigidbody \n\t\t*/\n\t\tonEndContact(contact: PhysicsContact, selfCollider: PhysicsCollider, otherCollider: PhysicsCollider): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tCollision callback.\n\t\tThis is called when a contact is updated.\n\t\tThis allows you to inspect a contact before it goes to the solver(e.g. disable contact).\n\t\tNote: this is called only for awake bodies.\n\t\tNote: this is called even when the number of contact points is zero.\n\t\tNote: this is not called for sensors.\n\t\t!#zh\n\t\t碰撞回调。\n\t\t如果你的脚本中实现了这个函数，那么它将会在接触更新时被调用。\n\t\t你可以在接触被处理前根据他包含的信息作出相应的处理，比如将这个接触禁用掉。\n\t\t注意：回调只会为醒着的刚体调用。\n\t\t注意：接触点为零的时候也有可能被调用。\n\t\t注意：感知体(sensor)的回调不会被调用。\n\t\t@param contact contact information\n\t\t@param selfCollider the collider belong to this rigidbody\n\t\t@param otherCollider the collider belong to another rigidbody \n\t\t*/\n\t\tonPreSolve(contact: PhysicsContact, selfCollider: PhysicsCollider, otherCollider: PhysicsCollider): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tCollision callback.\n\t\tThis is called after a contact is updated.\n\t\tYou can get the impulses from the contact in this callback.\n\t\t!#zh\n\t\t碰撞回调。\n\t\t如果你的脚本中实现了这个函数，那么它将会在接触更新完后被调用。\n\t\t你可以在这个回调中从接触信息中获取到冲量信息。\n\t\t@param contact contact information\n\t\t@param selfCollider the collider belong to this rigidbody\n\t\t@param otherCollider the collider belong to another rigidbody \n\t\t*/\n\t\tonPostSolve(contact: PhysicsContact, selfCollider: PhysicsCollider, otherCollider: PhysicsCollider): void;\t\t\n\t\t/** !#en\n\t\tIs this a fast moving body that should be prevented from tunneling through\n\t\tother moving bodies?\n\t\tNote :\n\t\t- All bodies are prevented from tunneling through kinematic and static bodies. This setting is only considered on dynamic bodies.\n\t\t- You should use this flag sparingly since it increases processing time.\n\t\t!#zh\n\t\t这个刚体是否是一个快速移动的刚体，并且需要禁止穿过其他快速移动的刚体？\n\t\t需要注意的是 :\n\t\t - 所有刚体都被禁止从 运动刚体 和 静态刚体 中穿过。此选项只关注于 动态刚体。\n\t\t - 应该尽量少的使用此选项，因为它会增加程序处理时间。 */\n\t\tbullet: boolean;\t\t\n\t\t/** !#en\n\t\tRigidbody type : Static, Kinematic, Dynamic or Animated.\n\t\t!#zh\n\t\t刚体类型： Static, Kinematic, Dynamic or Animated. */\n\t\ttype: RigidBodyType;\t\t\n\t\t/** !#en\n\t\tSet this flag to false if this body should never fall asleep.\n\t\tNote that this increases CPU usage.\n\t\t!#zh\n\t\t如果此刚体永远都不应该进入睡眠，那么设置这个属性为 false。\n\t\t需要注意这将使 CPU 占用率提高。 */\n\t\tallowSleep: boolean;\t\t\n\t\t/** !#en\n\t\tScale the gravity applied to this body.\n\t\t!#zh\n\t\t缩放应用在此刚体上的重力值 */\n\t\tgravityScale: number;\t\t\n\t\t/** !#en\n\t\tLinear damping is use to reduce the linear velocity.\n\t\tThe damping parameter can be larger than 1, but the damping effect becomes sensitive to the\n\t\ttime step when the damping parameter is large.\n\t\t!#zh\n\t\tLinear damping 用于衰减刚体的线性速度。衰减系数可以大于 1，但是当衰减系数比较大的时候，衰减的效果会变得比较敏感。 */\n\t\tlinearDamping: number;\t\t\n\t\t/** !#en\n\t\tAngular damping is use to reduce the angular velocity. The damping parameter\n\t\tcan be larger than 1 but the damping effect becomes sensitive to the\n\t\ttime step when the damping parameter is large.\n\t\t!#zh\n\t\tAngular damping 用于衰减刚体的角速度。衰减系数可以大于 1，但是当衰减系数比较大的时候，衰减的效果会变得比较敏感。 */\n\t\tangularDamping: number;\t\t\n\t\t/** !#en\n\t\tThe linear velocity of the body's origin in world co-ordinates.\n\t\t!#zh\n\t\t刚体在世界坐标下的线性速度 */\n\t\tlinearVelocity: Vec2;\t\t\n\t\t/** !#en\n\t\tThe angular velocity of the body.\n\t\t!#zh\n\t\t刚体的角速度 */\n\t\tangularVelocity: number;\t\t\n\t\t/** !#en\n\t\tShould this body be prevented from rotating?\n\t\t!#zh\n\t\t是否禁止此刚体进行旋转 */\n\t\tfixedRotation: boolean;\t\t\n\t\t/** !#en\n\t\tSet the sleep state of the body. A sleeping body has very low CPU cost.(When the rigid body is hit, if the rigid body is in sleep state, it will be immediately awakened.)\n\t\t!#zh\n\t\t设置刚体的睡眠状态。 睡眠的刚体具有非常低的 CPU 成本。（当刚体被碰撞到时，如果刚体处于睡眠状态，它会立即被唤醒） */\n\t\tawake: boolean;\t\t\n\t\t/** !#en\n\t\tWhether to wake up this rigid body during initialization\n\t\t!#zh\n\t\t是否在初始化时唤醒此刚体 */\n\t\tawakeOnLoad: boolean;\t\t\n\t\t/** !#en\n\t\tSet the active state of the body. An inactive body is not\n\t\tsimulated and cannot be collided with or woken up.\n\t\tIf body is active, all fixtures will be added to the\n\t\tbroad-phase.\n\t\tIf body is inactive, all fixtures will be removed from\n\t\tthe broad-phase and all contacts will be destroyed.\n\t\tFixtures on an inactive body are implicitly inactive and will\n\t\tnot participate in collisions, ray-casts, or queries.\n\t\tJoints connected to an inactive body are implicitly inactive.\n\t\t!#zh\n\t\t设置刚体的激活状态。一个非激活状态下的刚体是不会被模拟和碰撞的，不管它是否处于睡眠状态下。\n\t\t如果刚体处于激活状态下，所有夹具会被添加到 粗测阶段（broad-phase）。\n\t\t如果刚体处于非激活状态下，所有夹具会被从 粗测阶段（broad-phase）中移除。\n\t\t在非激活状态下的夹具不会参与到碰撞，射线，或者查找中\n\t\t链接到非激活状态下刚体的关节也是非激活的。 */\n\t\tactive: boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tGets a local point relative to the body's origin given a world point.\n\t\t!#zh\n\t\t将一个给定的世界坐标系下的点转换为刚体本地坐标系下的点\n\t\t@param worldPoint a point in world coordinates.\n\t\t@param out optional, the receiving point \n\t\t*/\n\t\tgetLocalPoint(worldPoint: Vec2, out: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the world coordinates of a point given the local coordinates.\n\t\t!#zh\n\t\t将一个给定的刚体本地坐标系下的点转换为世界坐标系下的点\n\t\t@param localPoint a point in local coordinates.\n\t\t@param out optional, the receiving point \n\t\t*/\n\t\tgetWorldPoint(localPoint: Vec2, out: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the world coordinates of a vector given the local coordinates.\n\t\t!#zh\n\t\t将一个给定的世界坐标系下的向量转换为刚体本地坐标系下的向量\n\t\t@param localVector a vector in world coordinates.\n\t\t@param out optional, the receiving vector \n\t\t*/\n\t\tgetWorldVector(localVector: Vec2, out: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tGets a local vector relative to the body's origin given a world vector.\n\t\t!#zh\n\t\t将一个给定的世界坐标系下的点转换为刚体本地坐标系下的点\n\t\t@param worldVector a vector in world coordinates.\n\t\t@param out optional, the receiving vector \n\t\t*/\n\t\tgetLocalVector(worldVector: Vec2, out: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the world body origin position.\n\t\t!#zh\n\t\t获取刚体世界坐标系下的原点值\n\t\t@param out optional, the receiving point \n\t\t*/\n\t\tgetWorldPosition(out: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the world body rotation angle.\n\t\t!#zh\n\t\t获取刚体世界坐标系下的旋转值。 \n\t\t*/\n\t\tgetWorldRotation(): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the local position of the center of mass.\n\t\t!#zh\n\t\t获取刚体本地坐标系下的质心 \n\t\t*/\n\t\tgetLocalCenter(): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the world position of the center of mass.\n\t\t!#zh\n\t\t获取刚体世界坐标系下的质心 \n\t\t*/\n\t\tgetWorldCenter(): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the world linear velocity of a world point attached to this body.\n\t\t!#zh\n\t\t获取刚体上指定点的线性速度\n\t\t@param worldPoint a point in world coordinates.\n\t\t@param out optional, the receiving point \n\t\t*/\n\t\tgetLinearVelocityFromWorldPoint(worldPoint: Vec2, out: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet total mass of the body.\n\t\t!#zh\n\t\t获取刚体的质量。 \n\t\t*/\n\t\tgetMass(): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the rotational inertia of the body about the local origin.\n\t\t!#zh\n\t\t获取刚体本地坐标系下原点的旋转惯性 \n\t\t*/\n\t\tgetInertia(): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet all the joints connect to the rigidbody.\n\t\t!#zh\n\t\t获取链接到此刚体的所有关节 \n\t\t*/\n\t\tgetJointList(): Joint[];\t\t\n\t\t/**\n\t\t!#en\n\t\tApply a force at a world point. If the force is not\n\t\tapplied at the center of mass, it will generate a torque and\n\t\taffect the angular velocity.\n\t\t!#zh\n\t\t施加一个力到刚体上的一个点。如果力没有施加到刚体的质心上，还会产生一个扭矩并且影响到角速度。\n\t\t@param force the world force vector.\n\t\t@param point the world position.\n\t\t@param wake also wake up the body. \n\t\t*/\n\t\tapplyForce(force: Vec2, point: Vec2, wake: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tApply a force to the center of mass.\n\t\t!#zh\n\t\t施加一个力到刚体上的质心上。\n\t\t@param force the world force vector.\n\t\t@param wake also wake up the body. \n\t\t*/\n\t\tapplyForceToCenter(force: Vec2, wake: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tApply a torque. This affects the angular velocity.\n\t\t!#zh\n\t\t施加一个扭矩力，将影响刚体的角速度\n\t\t@param torque about the z-axis (out of the screen), usually in N-m.\n\t\t@param wake also wake up the body \n\t\t*/\n\t\tapplyTorque(torque: number, wake: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tApply a impulse at a world point, This immediately modifies the velocity.\n\t\tIf the impulse is not applied at the center of mass, it will generate a torque and\n\t\taffect the angular velocity.\n\t\t!#zh\n\t\t施加冲量到刚体上的一个点，将立即改变刚体的线性速度。\n\t\t如果冲量施加到的点不是刚体的质心，那么将产生一个扭矩并影响刚体的角速度。\n\t\t@param impulse the world impulse vector, usually in N-seconds or kg-m/s.\n\t\t@param point the world position\n\t\t@param wake alse wake up the body \n\t\t*/\n\t\tapplyLinearImpulse(impulse: Vec2, point: Vec2, wake: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tApply an angular impulse.\n\t\t!#zh\n\t\t施加一个角速度冲量。\n\t\t@param impulse the angular impulse in units of kg*m*m/s\n\t\t@param wake also wake up the body \n\t\t*/\n\t\tapplyAngularImpulse(impulse: number, wake: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSynchronize node's world position to box2d rigidbody's position.\n\t\tIf enableAnimated is true and rigidbody's type is Animated type,\n\t\twill set linear velocity instead of directly set rigidbody's position.\n\t\t!#zh\n\t\t同步节点的世界坐标到 box2d 刚体的坐标上。\n\t\t如果 enableAnimated 是 true，并且刚体的类型是 Animated ，那么将设置刚体的线性速度来代替直接设置刚体的位置。\n\t\t@param enableAnimated enableAnimated \n\t\t*/\n\t\tsyncPosition(enableAnimated: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSynchronize node's world angle to box2d rigidbody's angle.\n\t\tIf enableAnimated is true and rigidbody's type is Animated type,\n\t\twill set angular velocity instead of directly set rigidbody's angle.\n\t\t!#zh\n\t\t同步节点的世界旋转角度值到 box2d 刚体的旋转值上。\n\t\t如果 enableAnimated 是 true，并且刚体的类型是 Animated ，那么将设置刚体的角速度来代替直接设置刚体的角度。\n\t\t@param enableAnimated enableAnimated \n\t\t*/\n\t\tsyncRotation(enableAnimated: boolean): void;\t\n\t}\t\n\t/** !#en Mesh Asset.\n\t!#zh 网格资源。 */\n\texport class Mesh extends Asset {\t\t\n\t\t/** !#en Get ir set the sub meshes.\n\t\t!#zh 设置或者获取子网格。 */\n\t\tsubMeshes: InputAssembler[];\t\t\n\t\t/**\n\t\t!#en\n\t\tInit vertex buffer according to the vertex format.\n\t\t!#zh\n\t\t根据顶点格式初始化顶点内存。\n\t\t@param vertexFormat vertex format\n\t\t@param vertexCount how much vertex should be create in this buffer.\n\t\t@param dynamic whether or not to use dynamic buffer. \n\t\t*/\n\t\tinit(vertexFormat: gfx.VertexFormat, vertexCount: number, dynamic?: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSet the vertex values.\n\t\t!#zh\n\t\t设置顶点数据\n\t\t@param name the attribute name, e.g. gfx.ATTR_POSITION\n\t\t@param values the vertex values\n\t\t@param index index \n\t\t*/\n\t\tsetVertices(name: string, values: Vec2[]|Vec3[]|Color[]|number[]|Uint8Array|Float32Array, index?: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSet the sub mesh indices.\n\t\t!#zh\n\t\t设置子网格索引。\n\t\t@param indices the sub mesh indices.\n\t\t@param index sub mesh index.\n\t\t@param dynamic whether or not to use dynamic buffer. \n\t\t*/\n\t\tsetIndices(indices: number[]|Uint16Array, index?: number, dynamic?: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSet the sub mesh primitive type.\n\t\t!#zh\n\t\t设置子网格绘制线条的方式。\n\t\t@param type type\n\t\t@param index index \n\t\t*/\n\t\tsetPrimitiveType(type: number, index: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tClear the buffer data.\n\t\t!#zh\n\t\t清除网格创建的内存数据。 \n\t\t*/\n\t\tclear(): void;\t\t\n\t\t/**\n\t\t!#en Set mesh bounding box\n\t\t!#zh 设置网格的包围盒\n\t\t@param min min\n\t\t@param max max \n\t\t*/\n\t\tsetBoundingBox(min: Vec3, max: Vec3): void;\t\n\t}\t\n\t/** !#en\n\tMesh Renderer Component\n\t!#zh\n\t网格渲染组件 */\n\texport class MeshRenderer extends RenderComponent {\t\t\n\t\t/** !#en\n\t\tThe mesh which the renderer uses.\n\t\t!#zh\n\t\t设置使用的网格 */\n\t\tmesh: Mesh;\t\t\n\t\t/** !#en\n\t\tWhether the mesh should receive shadows.\n\t\t!#zh\n\t\t网格是否接受光源投射的阴影 */\n\t\treceiveShadows: boolean;\t\t\n\t\t/** !#en\n\t\tShadow Casting Mode\n\t\t!#zh\n\t\t网格投射阴影的模式 */\n\t\tshadowCastingMode: MeshRenderer.ShadowCastingMode;\t\n\t}\t\n\t/** Loader for resource loading process. It's a singleton object. */\n\texport class loader extends Pipeline {\t\t\n\t\t/** The asset loader in cc.loader's pipeline, it's by default the first pipe.\n\t\tIt's used to identify an asset's type, and determine how to download it. */\n\t\tstatic assetLoader: any;\t\t\n\t\t/** The md5 pipe in cc.loader's pipeline, it could be absent if the project isn't build with md5 option.\n\t\tIt's used to modify the url to the real downloadable url with md5 suffix. */\n\t\tstatic md5Pipe: any;\t\t\n\t\t/** The downloader in cc.loader's pipeline, it's by default the second pipe.\n\t\tIt's used to download files with several handlers: pure text, image, script, audio, font, uuid.\n\t\tYou can add your own download function with addDownloadHandlers */\n\t\tstatic downloader: any;\t\t\n\t\t/** The loader in cc.loader's pipeline, it's by default the third pipe.\n\t\tIt's used to parse downloaded content with several handlers: JSON, image, plist, fnt, uuid.\n\t\tYou can add your own download function with addLoadHandlers */\n\t\tstatic loader: any;\t\t\n\t\t/**\n\t\tGets a new XMLHttpRequest instance. \n\t\t*/\n\t\tstatic getXMLHttpRequest(): XMLHttpRequest;\t\t\n\t\t/**\n\t\tAdd custom supported types handler or modify existing type handler for download process.\n\t\t@param extMap Custom supported types with corresponded handler\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.loader.addDownloadHandlers({\n\t\t     // This will match all url with `.scene` extension or all url with `scene` type\n\t\t     'scene' : function (url, callback) {}\n\t\t });\n\t\t``` \n\t\t*/\n\t\tstatic addDownloadHandlers(extMap: any): void;\t\t\n\t\t/**\n\t\tAdd custom supported types handler or modify existing type handler for load process.\n\t\t@param extMap Custom supported types with corresponded handler\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.loader.addLoadHandlers({\n\t\t     // This will match all url with `.scene` extension or all url with `scene` type\n\t\t     'scene' : function (url, callback) {}\n\t\t });\n\t\t``` \n\t\t*/\n\t\tstatic addLoadHandlers(extMap: any): void;\t\t\n\t\t/**\n\t\tLoad resources with a progression callback and a complete callback.\n\t\tThe progression callback is the same as Pipeline's {{#crossLink \"LoadingItems/onProgress:method\"}}onProgress{{/crossLink}}\n\t\tThe complete callback is almost the same as Pipeline's {{#crossLink \"LoadingItems/onComplete:method\"}}onComplete{{/crossLink}}\n\t\tThe only difference is when user pass a single url as resources, the complete callback will set its result directly as the second parameter.\n\t\t@param resources Url list in an array\n\t\t@param progressCallback Callback invoked when progression change\n\t\t@param completeCallback Callback invoked when all resources loaded\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.loader.load('a.png', function (err, tex) {\n\t\t    cc.log('Result should be a texture: ' + (tex instanceof cc.Texture2D));\n\t\t});\n\t\t\n\t\tcc.loader.load('http://example.com/a.png', function (err, tex) {\n\t\t    cc.log('Should load a texture from external url: ' + (tex instanceof cc.Texture2D));\n\t\t});\n\t\t\n\t\tcc.loader.load({url: 'http://example.com/getImageREST?file=a.png', type: 'png'}, function (err, tex) {\n\t\t    cc.log('Should load a texture from RESTful API by specify the type: ' + (tex instanceof cc.Texture2D));\n\t\t});\n\t\t\n\t\tcc.loader.load(['a.png', 'b.json'], function (errors, results) {\n\t\t    if (errors) {\n\t\t        for (var i = 0; i < errors.length; i++) {\n\t\t            cc.log('Error url [' + errors[i] + ']: ' + results.getError(errors[i]));\n\t\t        }\n\t\t    }\n\t\t    var aTex = results.getContent('a.png');\n\t\t    var bJsonObj = results.getContent('b.json');\n\t\t});\n\t\t``` \n\t\t*/\n\t\tstatic load(resources: string|string[]|{uuid?: string, url?: string, type?: string}, completeCallback?: Function): void;\n\t\tstatic load(resources: string|string[]|{uuid?: string, url?: string, type?: string}, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: Function|null): void;\t\t\n\t\t/**\n\t\tLoad resources from the \"resources\" folder inside the \"assets\" folder of your project.<br>\n\t\t<br>\n\t\tNote: All asset URLs in Creator use forward slashes, URLs using backslashes will not work.\n\t\t@param url Url of the target resource.\n\t\t                      The url is relative to the \"resources\" folder, extensions must be omitted.\n\t\t@param type Only asset of type will be loaded if this argument is supplied.\n\t\t@param progressCallback Callback invoked when progression change.\n\t\t@param completeCallback Callback invoked when the resource loaded.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// load the prefab (project/assets/resources/misc/character/cocos) from resources folder\n\t\tcc.loader.loadRes('misc/character/cocos', function (err, prefab) {\n\t\t    if (err) {\n\t\t        cc.error(err.message || err);\n\t\t        return;\n\t\t    }\n\t\t    cc.log('Result should be a prefab: ' + (prefab instanceof cc.Prefab));\n\t\t});\n\t\t\n\t\t// load the sprite frame of (project/assets/resources/imgs/cocos.png) from resources folder\n\t\tcc.loader.loadRes('imgs/cocos', cc.SpriteFrame, function (err, spriteFrame) {\n\t\t    if (err) {\n\t\t        cc.error(err.message || err);\n\t\t        return;\n\t\t    }\n\t\t    cc.log('Result should be a sprite frame: ' + (spriteFrame instanceof cc.SpriteFrame));\n\t\t});\n\t\t``` \n\t\t*/\n\t\tstatic loadRes(url: string, type: typeof cc.Asset, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any) => void)|null): void;\n\t\tstatic loadRes(url: string, type: typeof cc.Asset, completeCallback: (error: Error, resource: any) => void): void;\n\t\tstatic loadRes(url: string, type: typeof cc.Asset): void;\n\t\tstatic loadRes(url: string, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any) => void)|null): void;\n\t\tstatic loadRes(url: string, completeCallback: (error: Error, resource: any) => void): void;\n\t\tstatic loadRes(url: string): void;\t\t\n\t\t/**\n\t\tThis method is like {{#crossLink \"loader/loadRes:method\"}}{{/crossLink}} except that it accepts array of url.\n\t\t@param urls Array of URLs of the target resource.\n\t\t                         The url is relative to the \"resources\" folder, extensions must be omitted.\n\t\t@param type Only asset of type will be loaded if this argument is supplied.\n\t\t@param progressCallback Callback invoked when progression change.\n\t\t@param completeCallback A callback which is called when all assets have been loaded, or an error occurs.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// load the SpriteFrames from resources folder\n\t\tvar spriteFrames;\n\t\tvar urls = ['misc/characters/character_01', 'misc/weapons/weapons_01'];\n\t\tcc.loader.loadResArray(urls, cc.SpriteFrame, function (err, assets) {\n\t\t    if (err) {\n\t\t        cc.error(err);\n\t\t        return;\n\t\t    }\n\t\t    spriteFrames = assets;\n\t\t    // ...\n\t\t});\n\t\t``` \n\t\t*/\n\t\tstatic loadResArray(url: string[], type: typeof cc.Asset, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[]) => void)|null): void;\n\t\tstatic loadResArray(url: string[], type: typeof cc.Asset, completeCallback: (error: Error, resource: any[]) => void): void;\n\t\tstatic loadResArray(url: string[], type: typeof cc.Asset): void;\n\t\tstatic loadResArray(url: string[], progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[]) => void)|null): void;\n\t\tstatic loadResArray(url: string[], completeCallback: (error: Error, resource: any[]) => void): void;\n\t\tstatic loadResArray(url: string[]): void;\n\t\tstatic loadResArray(url: string[], type: typeof cc.Asset[]): void;\t\t\n\t\t/**\n\t\tLoad all assets in a folder inside the \"assets/resources\" folder of your project.<br>\n\t\t<br>\n\t\tNote: All asset URLs in Creator use forward slashes, URLs using backslashes will not work.\n\t\t@param url Url of the target folder.\n\t\t                      The url is relative to the \"resources\" folder, extensions must be omitted.\n\t\t@param type Only asset of type will be loaded if this argument is supplied.\n\t\t@param progressCallback Callback invoked when progression change.\n\t\t@param completeCallback A callback which is called when all assets have been loaded, or an error occurs.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// load the texture (resources/imgs/cocos.png) and the corresponding sprite frame\n\t\tcc.loader.loadResDir('imgs/cocos', function (err, assets) {\n\t\t    if (err) {\n\t\t        cc.error(err);\n\t\t        return;\n\t\t    }\n\t\t    var texture = assets[0];\n\t\t    var spriteFrame = assets[1];\n\t\t});\n\t\t\n\t\t// load all textures in \"resources/imgs/\"\n\t\tcc.loader.loadResDir('imgs', cc.Texture2D, function (err, textures) {\n\t\t    var texture1 = textures[0];\n\t\t    var texture2 = textures[1];\n\t\t});\n\t\t\n\t\t// load all JSONs in \"resources/data/\"\n\t\tcc.loader.loadResDir('data', function (err, objects, urls) {\n\t\t    var data = objects[0];\n\t\t    var url = urls[0];\n\t\t});\n\t\t``` \n\t\t*/\n\t\tstatic loadResDir(url: string, type: typeof cc.Asset, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[], urls: string[]) => void)|null): void;\n\t\tstatic loadResDir(url: string, type: typeof cc.Asset, completeCallback: (error: Error, resource: any[], urls: string[]) => void): void;\n\t\tstatic loadResDir(url: string, type: typeof cc.Asset): void;\n\t\tstatic loadResDir(url: string, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[], urls: string[]) => void)|null): void;\n\t\tstatic loadResDir(url: string, completeCallback: (error: Error, resource: any[], urls: string[]) => void): void;\n\t\tstatic loadResDir(url: string): void;\t\t\n\t\t/**\n\t\tGet resource data by id. <br>\n\t\tWhen you load resources with {{#crossLink \"loader/load:method\"}}{{/crossLink}} or {{#crossLink \"loader/loadRes:method\"}}{{/crossLink}},\n\t\tthe url will be the unique identity of the resource.\n\t\tAfter loaded, you can acquire them by passing the url to this API.\n\t\t@param url url\n\t\t@param type Only asset of type will be returned if this argument is supplied. \n\t\t*/\n\t\tstatic getRes(url: string, type?: Function): any;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet all resource dependencies of the loaded asset in an array, including itself.\n\t\tThe owner parameter accept the following types: 1. The asset itself; 2. The resource url; 3. The asset's uuid.<br>\n\t\tThe returned array stores the dependencies with their uuids, after retrieve dependencies,\n\t\tyou can release them, access dependent assets by passing the uuid to {{#crossLink \"loader/getRes:method\"}}{{/crossLink}}, or other stuffs you want.<br>\n\t\tFor release all dependencies of an asset, please refer to {{#crossLink \"loader/release:method\"}}{{/crossLink}}\n\t\tHere is some examples:\n\t\t!#zh\n\t\t获取某个已经加载好的资源的所有依赖资源，包含它自身，并保存在数组中返回。owner 参数接收以下几种类型：1. 资源 asset 对象；2. 资源目录下的 url；3. 资源的 uuid。<br>\n\t\t返回的数组将仅保存依赖资源的 uuid，获取这些 uuid 后，你可以从 loader 释放这些资源；通过 {{#crossLink \"loader/getRes:method\"}}{{/crossLink}} 获取某个资源或者进行其他你需要的操作。<br>\n\t\t想要释放一个资源及其依赖资源，可以参考 {{#crossLink \"loader/release:method\"}}{{/crossLink}}。下面是一些示例代码：\n\t\t@param owner The owner asset or the resource url or the asset's uuid\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Release all dependencies of a loaded prefab\n\t\tvar deps = cc.loader.getDependsRecursively(prefab);\n\t\tcc.loader.release(deps);\n\t\t// Retrieve all dependent textures\n\t\tvar deps = cc.loader.getDependsRecursively('prefabs/sample');\n\t\tvar textures = [];\n\t\tfor (var i = 0; i < deps.length; ++i) {\n\t\t    var item = cc.loader.getRes(deps[i]);\n\t\t    if (item instanceof cc.Texture2D) {\n\t\t        textures.push(item);\n\t\t    }\n\t\t}\n\t\t``` \n\t\t*/\n\t\tstatic getDependsRecursively(owner: Asset|RawAsset|string): any[];\t\t\n\t\t/**\n\t\t!#en\n\t\tRelease the content of an asset or an array of assets by uuid.\n\t\tStart from v1.3, this method will not only remove the cache of the asset in loader, but also clean up its content.\n\t\tFor example, if you release a texture, the texture asset and its gl texture data will be freed up.\n\t\tIn complexe project, you can use this function with {{#crossLink \"loader/getDependsRecursively:method\"}}{{/crossLink}} to free up memory in critical circumstances.\n\t\tNotice, this method may cause the texture to be unusable, if there are still other nodes use the same texture, they may turn to black and report gl errors.\n\t\tIf you only want to remove the cache of an asset, please use {{#crossLink \"pipeline/removeItem:method\"}}{{/crossLink}}\n\t\t!#zh\n\t\t通过 id（通常是资源 url）来释放一个资源或者一个资源数组。\n\t\t从 v1.3 开始，这个方法不仅会从 loader 中删除资源的缓存引用，还会清理它的资源内容。\n\t\t比如说，当你释放一个 texture 资源，这个 texture 和它的 gl 贴图数据都会被释放。\n\t\t在复杂项目中，我们建议你结合 {{#crossLink \"loader/getDependsRecursively:method\"}}{{/crossLink}} 来使用，便于在设备内存告急的情况下更快地释放不再需要的资源的内存。\n\t\t注意，这个函数可能会导致资源贴图或资源所依赖的贴图不可用，如果场景中存在节点仍然依赖同样的贴图，它们可能会变黑并报 GL 错误。\n\t\t如果你只想删除一个资源的缓存引用，请使用 {{#crossLink \"pipeline/removeItem:method\"}}{{/crossLink}}\n\t\t@param asset asset\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Release a texture which is no longer need\n\t\tcc.loader.release(texture);\n\t\t// Release all dependencies of a loaded prefab\n\t\tvar deps = cc.loader.getDependsRecursively('prefabs/sample');\n\t\tcc.loader.release(deps);\n\t\t// If there is no instance of this prefab in the scene, the prefab and its dependencies like textures, sprite frames, etc, will be freed up.\n\t\t// If you have some other nodes share a texture in this prefab, you can skip it in two ways:\n\t\t// 1. Forbid auto release a texture before release\n\t\tcc.loader.setAutoRelease(texture2d, false);\n\t\t// 2. Remove it from the dependencies array\n\t\tvar deps = cc.loader.getDependsRecursively('prefabs/sample');\n\t\tvar index = deps.indexOf(texture2d._uuid);\n\t\tif (index !== -1)\n\t\t    deps.splice(index, 1);\n\t\tcc.loader.release(deps);\n\t\t``` \n\t\t*/\n\t\tstatic release(asset: Asset|RawAsset|string|any[]): void;\t\t\n\t\t/**\n\t\t!#en Release the asset by its object. Refer to {{#crossLink \"loader/release:method\"}}{{/crossLink}} for detailed informations.\n\t\t!#zh 通过资源对象自身来释放资源。详细信息请参考 {{#crossLink \"loader/release:method\"}}{{/crossLink}}\n\t\t@param asset asset \n\t\t*/\n\t\tstatic releaseAsset(asset: Asset): void;\t\t\n\t\t/**\n\t\t!#en Release the asset loaded by {{#crossLink \"loader/loadRes:method\"}}{{/crossLink}}. Refer to {{#crossLink \"loader/release:method\"}}{{/crossLink}} for detailed informations.\n\t\t!#zh 释放通过 {{#crossLink \"loader/loadRes:method\"}}{{/crossLink}} 加载的资源。详细信息请参考 {{#crossLink \"loader/release:method\"}}{{/crossLink}}\n\t\t@param url url\n\t\t@param type Only asset of type will be released if this argument is supplied. \n\t\t*/\n\t\tstatic releaseRes(url: string, type?: Function): void;\t\t\n\t\t/**\n\t\t!#en Release the all assets loaded by {{#crossLink \"loader/loadResDir:method\"}}{{/crossLink}}. Refer to {{#crossLink \"loader/release:method\"}}{{/crossLink}} for detailed informations.\n\t\t!#zh 释放通过 {{#crossLink \"loader/loadResDir:method\"}}{{/crossLink}} 加载的资源。详细信息请参考 {{#crossLink \"loader/release:method\"}}{{/crossLink}}\n\t\t@param url url\n\t\t@param type Only asset of type will be released if this argument is supplied. \n\t\t*/\n\t\tstatic releaseResDir(url: string, type?: Function): void;\t\t\n\t\t/**\n\t\t!#en Resource all assets. Refer to {{#crossLink \"loader/release:method\"}}{{/crossLink}} for detailed informations.\n\t\t!#zh 释放所有资源。详细信息请参考 {{#crossLink \"loader/release:method\"}}{{/crossLink}} \n\t\t*/\n\t\tstatic releaseAll(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tIndicates whether to release the asset when loading a new scene.<br>\n\t\tBy default, when loading a new scene, all assets in the previous scene will be released or preserved\n\t\taccording to whether the previous scene checked the \"Auto Release Assets\" option.\n\t\tOn the other hand, assets dynamically loaded by using `cc.loader.loadRes` or `cc.loader.loadResDir`\n\t\twill not be affected by that option, remain not released by default.<br>\n\t\tUse this API to change the default behavior on a single asset, to force preserve or release specified asset when scene switching.<br>\n\t\t<br>\n\t\tSee: {{#crossLink \"loader/setAutoReleaseRecursively:method\"}}cc.loader.setAutoReleaseRecursively{{/crossLink}}, {{#crossLink \"loader/isAutoRelease:method\"}}cc.loader.isAutoRelease{{/crossLink}}\n\t\t!#zh\n\t\t设置当场景切换时是否自动释放资源。<br>\n\t\t默认情况下，当加载新场景时，旧场景的资源根据旧场景是否勾选“Auto Release Assets”，将会被释放或者保留。\n\t\t而使用 `cc.loader.loadRes` 或 `cc.loader.loadResDir` 动态加载的资源，则不受场景设置的影响，默认不自动释放。<br>\n\t\t使用这个 API 可以在单个资源上改变这个默认行为，强制在切换场景时保留或者释放指定资源。<br>\n\t\t<br>\n\t\t参考：{{#crossLink \"loader/setAutoReleaseRecursively:method\"}}cc.loader.setAutoReleaseRecursively{{/crossLink}}，{{#crossLink \"loader/isAutoRelease:method\"}}cc.loader.isAutoRelease{{/crossLink}}\n\t\t@param assetOrUrlOrUuid asset object or the raw asset's url or uuid\n\t\t@param autoRelease indicates whether should release automatically\n\t\t\n\t\t@example \n\t\t```js\n\t\t// auto release the texture event if \"Auto Release Assets\" disabled in current scene\n\t\tcc.loader.setAutoRelease(texture2d, true);\n\t\t// don't release the texture even if \"Auto Release Assets\" enabled in current scene\n\t\tcc.loader.setAutoRelease(texture2d, false);\n\t\t// first parameter can be url\n\t\tcc.loader.setAutoRelease(audioUrl, false);\n\t\t``` \n\t\t*/\n\t\tstatic setAutoRelease(assetOrUrlOrUuid: Asset|string, autoRelease: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tIndicates whether to release the asset and its referenced other assets when loading a new scene.<br>\n\t\tBy default, when loading a new scene, all assets in the previous scene will be released or preserved\n\t\taccording to whether the previous scene checked the \"Auto Release Assets\" option.\n\t\tOn the other hand, assets dynamically loaded by using `cc.loader.loadRes` or `cc.loader.loadResDir`\n\t\twill not be affected by that option, remain not released by default.<br>\n\t\tUse this API to change the default behavior on the specified asset and its recursively referenced assets, to force preserve or release specified asset when scene switching.<br>\n\t\t<br>\n\t\tSee: {{#crossLink \"loader/setAutoRelease:method\"}}cc.loader.setAutoRelease{{/crossLink}}, {{#crossLink \"loader/isAutoRelease:method\"}}cc.loader.isAutoRelease{{/crossLink}}\n\t\t!#zh\n\t\t设置当场景切换时是否自动释放资源及资源引用的其它资源。<br>\n\t\t默认情况下，当加载新场景时，旧场景的资源根据旧场景是否勾选“Auto Release Assets”，将会被释放或者保留。\n\t\t而使用 `cc.loader.loadRes` 或 `cc.loader.loadResDir` 动态加载的资源，则不受场景设置的影响，默认不自动释放。<br>\n\t\t使用这个 API 可以在指定资源及资源递归引用到的所有资源上改变这个默认行为，强制在切换场景时保留或者释放指定资源。<br>\n\t\t<br>\n\t\t参考：{{#crossLink \"loader/setAutoRelease:method\"}}cc.loader.setAutoRelease{{/crossLink}}，{{#crossLink \"loader/isAutoRelease:method\"}}cc.loader.isAutoRelease{{/crossLink}}\n\t\t@param assetOrUrlOrUuid asset object or the raw asset's url or uuid\n\t\t@param autoRelease indicates whether should release automatically\n\t\t\n\t\t@example \n\t\t```js\n\t\t// auto release the SpriteFrame and its Texture event if \"Auto Release Assets\" disabled in current scene\n\t\tcc.loader.setAutoReleaseRecursively(spriteFrame, true);\n\t\t// don't release the SpriteFrame and its Texture even if \"Auto Release Assets\" enabled in current scene\n\t\tcc.loader.setAutoReleaseRecursively(spriteFrame, false);\n\t\t// don't release the Prefab and all the referenced assets\n\t\tcc.loader.setAutoReleaseRecursively(prefab, false);\n\t\t``` \n\t\t*/\n\t\tstatic setAutoReleaseRecursively(assetOrUrlOrUuid: Asset|string, autoRelease: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns whether the asset is configured as auto released, despite how \"Auto Release Assets\" property is set on scene asset.<br>\n\t\t<br>\n\t\tSee: {{#crossLink \"loader/setAutoRelease:method\"}}cc.loader.setAutoRelease{{/crossLink}}, {{#crossLink \"loader/setAutoReleaseRecursively:method\"}}cc.loader.setAutoReleaseRecursively{{/crossLink}}\n\t\t\n\t\t!#zh\n\t\t返回指定的资源是否有被设置为自动释放，不论场景的“Auto Release Assets”如何设置。<br>\n\t\t<br>\n\t\t参考：{{#crossLink \"loader/setAutoRelease:method\"}}cc.loader.setAutoRelease{{/crossLink}}，{{#crossLink \"loader/setAutoReleaseRecursively:method\"}}cc.loader.setAutoReleaseRecursively{{/crossLink}}\n\t\t@param assetOrUrl asset object or the raw asset's url \n\t\t*/\n\t\tstatic isAutoRelease(assetOrUrl: Asset|string): boolean;\t\n\t}\t\n\t/** !#en\n\tLoadingItems is the queue of items which can flow them into the loading pipeline.<br/>\n\tPlease don't construct it directly, use {{#crossLink \"LoadingItems.create\"}}cc.LoadingItems.create{{/crossLink}} instead, because we use an internal pool to recycle the queues.<br/>\n\tIt hold a map of items, each entry in the map is a url to object key value pair.<br/>\n\tEach item always contains the following property:<br/>\n\t- id: The identification of the item, usually it's identical to url<br/>\n\t- url: The url <br/>\n\t- type: The type, it's the extension name of the url by default, could be specified manually too.<br/>\n\t- error: The error happened in pipeline will be stored in this property.<br/>\n\t- content: The content processed by the pipeline, the final result will also be stored in this property.<br/>\n\t- complete: The flag indicate whether the item is completed by the pipeline.<br/>\n\t- states: An object stores the states of each pipe the item go through, the state can be: Pipeline.ItemState.WORKING | Pipeline.ItemState.ERROR | Pipeline.ItemState.COMPLETE<br/>\n\t<br/>\n\tItem can hold other custom properties.<br/>\n\tEach LoadingItems object will be destroyed for recycle after onComplete callback<br/>\n\tSo please don't hold its reference for later usage, you can copy properties in it though.\n\t!#zh\n\tLoadingItems 是一个加载对象队列，可以用来输送加载对象到加载管线中。<br/>\n\t请不要直接使用 new 构造这个类的对象，你可以使用 {{#crossLink \"LoadingItems.create\"}}cc.LoadingItems.create{{/crossLink}} 来创建一个新的加载队列，这样可以允许我们的内部对象池回收并重利用加载队列。\n\t它有一个 map 属性用来存放加载项，在 map 对象中已 url 为 key 值。<br/>\n\t每个对象都会包含下列属性：<br/>\n\t- id：该对象的标识，通常与 url 相同。<br/>\n\t- url：路径 <br/>\n\t- type: 类型，它这是默认的 URL 的扩展名，可以手动指定赋值。<br/>\n\t- error：pipeline 中发生的错误将被保存在这个属性中。<br/>\n\t- content: pipeline 中处理的临时结果，最终的结果也将被存储在这个属性中。<br/>\n\t- complete：该标志表明该对象是否通过 pipeline 完成。<br/>\n\t- states：该对象存储每个管道中对象经历的状态，状态可以是 Pipeline.ItemState.WORKING | Pipeline.ItemState.ERROR | Pipeline.ItemState.COMPLETE<br/>\n\t<br/>\n\t对象可容纳其他自定义属性。<br/>\n\t每个 LoadingItems 对象都会在 onComplete 回调之后被销毁，所以请不要持有它的引用并在结束回调之后依赖它的内容执行任何逻辑，有这种需求的话你可以提前复制它的内容。 */\n\texport class LoadingItems extends CallbacksInvoker {\t\t\n\t\t/**\n\t\t!#en This is a callback which will be invoked while an item flow out the pipeline.\n\t\tYou can pass the callback function in LoadingItems.create or set it later.\n\t\t!#zh 这个回调函数将在 item 加载结束后被调用。你可以在构造时传递这个回调函数或者是在构造之后直接设置。\n\t\t@param completedCount The number of the items that are already completed.\n\t\t@param totalCount The total number of the items.\n\t\t@param item The latest item which flow out the pipeline.\n\t\t\n\t\t@example \n\t\t```js\n\t\tloadingItems.onProgress = function (completedCount, totalCount, item) {\n\t\t     var progress = (100 * completedCount / totalCount).toFixed(2);\n\t\t     cc.log(progress + '%');\n\t\t }\n\t\t``` \n\t\t*/\n\t\tonProgress(completedCount: number, totalCount: number, item: any): void;\t\t\n\t\t/**\n\t\t!#en This is a callback which will be invoked while all items is completed,\n\t\tYou can pass the callback function in LoadingItems.create or set it later.\n\t\t!#zh 该函数将在加载队列全部完成时被调用。你可以在构造时传递这个回调函数或者是在构造之后直接设置。\n\t\t@param errors All errored urls will be stored in this array, if no error happened, then it will be null\n\t\t@param items All items.\n\t\t\n\t\t@example \n\t\t```js\n\t\tloadingItems.onComplete = function (errors, items) {\n\t\t     if (error)\n\t\t         cc.log('Completed with ' + errors.length + ' errors');\n\t\t     else\n\t\t         cc.log('Completed ' + items.totalCount + ' items');\n\t\t }\n\t\t``` \n\t\t*/\n\t\tonComplete(errors: any[], items: LoadingItems): void;\t\t\n\t\t/** !#en The map of all items.\n\t\t!#zh 存储所有加载项的对象。 */\n\t\tmap: any;\t\t\n\t\t/** !#en The map of completed items.\n\t\t!#zh 存储已经完成的加载项。 */\n\t\tcompleted: any;\t\t\n\t\t/** !#en Total count of all items.\n\t\t!#zh 所有加载项的总数。 */\n\t\ttotalCount: number;\t\t\n\t\t/** !#en Total count of completed items.\n\t\t!#zh 所有完成加载项的总数。 */\n\t\tcompletedCount: number;\t\t\n\t\t/** !#en Activated or not.\n\t\t!#zh 是否启用。 */\n\t\tactive: boolean;\t\t\n\t\t/**\n\t\t!#en The constructor function of LoadingItems, this will use recycled LoadingItems in the internal pool if possible.\n\t\tYou can pass onProgress and onComplete callbacks to visualize the loading process.\n\t\t!#zh LoadingItems 的构造函数，这种构造方式会重用内部对象缓冲池中的 LoadingItems 队列，以尽量避免对象创建。\n\t\t你可以传递 onProgress 和 onComplete 回调函数来获知加载进度信息。\n\t\t@param pipeline The pipeline to process the queue.\n\t\t@param urlList The items array.\n\t\t@param onProgress The progression callback, refer to {{#crossLink \"LoadingItems.onProgress\"}}{{/crossLink}}\n\t\t@param onComplete The completion callback, refer to {{#crossLink \"LoadingItems.onComplete\"}}{{/crossLink}}\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.LoadingItems.create(cc.loader, ['a.png', 'b.plist'], function (completedCount, totalCount, item) {\n\t\t     var progress = (100 * completedCount / totalCount).toFixed(2);\n\t\t     cc.log(progress + '%');\n\t\t }, function (errors, items) {\n\t\t     if (errors) {\n\t\t         for (var i = 0; i < errors.length; ++i) {\n\t\t             cc.log('Error url: ' + errors[i] + ', error: ' + items.getError(errors[i]));\n\t\t         }\n\t\t     }\n\t\t     else {\n\t\t         var result_a = items.getContent('a.png');\n\t\t         // ...\n\t\t     }\n\t\t })\n\t\t``` \n\t\t*/\n\t\tstatic create(pipeline: Pipeline, urlList: any[], onProgress: Function, onComplete: Function): LoadingItems;\t\t\n\t\t/**\n\t\t!#en Retrieve the LoadingItems queue object for an item.\n\t\t!#zh 通过 item 对象获取它的 LoadingItems 队列。\n\t\t@param item The item to query \n\t\t*/\n\t\tstatic getQueue(item: any): LoadingItems;\t\t\n\t\t/**\n\t\t!#en Complete an item in the LoadingItems queue, please do not call this method unless you know what's happening.\n\t\t!#zh 通知 LoadingItems 队列一个 item 对象已完成，请不要调用这个函数，除非你知道自己在做什么。\n\t\t@param item The item which has completed \n\t\t*/\n\t\tstatic itemComplete(item: any): void;\t\t\n\t\t/**\n\t\t!#en Add urls to the LoadingItems queue.\n\t\t!#zh 向一个 LoadingItems 队列添加加载项。\n\t\t@param urlList The url list to be appended, the url can be object or string \n\t\t*/\n\t\tappend(urlList: any[]): any[];\t\t\n\t\t/**\n\t\t!#en Complete a LoadingItems queue, please do not call this method unless you know what's happening.\n\t\t!#zh 完成一个 LoadingItems 队列，请不要调用这个函数，除非你知道自己在做什么。 \n\t\t*/\n\t\tallComplete(): void;\t\t\n\t\t/**\n\t\t!#en Check whether all items are completed.\n\t\t!#zh 检查是否所有加载项都已经完成。 \n\t\t*/\n\t\tisCompleted(): boolean;\t\t\n\t\t/**\n\t\t!#en Check whether an item is completed.\n\t\t!#zh 通过 id 检查指定加载项是否已经加载完成。\n\t\t@param id The item's id. \n\t\t*/\n\t\tisItemCompleted(id: string): boolean;\t\t\n\t\t/**\n\t\t!#en Check whether an item exists.\n\t\t!#zh 通过 id 检查加载项是否存在。\n\t\t@param id The item's id. \n\t\t*/\n\t\texists(id: string): boolean;\t\t\n\t\t/**\n\t\t!#en Returns the content of an internal item.\n\t\t!#zh 通过 id 获取指定对象的内容。\n\t\t@param id The item's id. \n\t\t*/\n\t\tgetContent(id: string): any;\t\t\n\t\t/**\n\t\t!#en Returns the error of an internal item.\n\t\t!#zh 通过 id 获取指定对象的错误信息。\n\t\t@param id The item's id. \n\t\t*/\n\t\tgetError(id: string): any;\t\t\n\t\t/**\n\t\t!#en Add a listener for an item, the callback will be invoked when the item is completed.\n\t\t!#zh 监听加载项（通过 key 指定）的完成事件。\n\t\t@param key key\n\t\t@param callback can be null\n\t\t@param target can be null \n\t\t*/\n\t\taddListener(key: string, callback: Function, target: any): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tCheck if the specified key has any registered callback.\n\t\tIf a callback is also specified, it will only return true if the callback is registered.\n\t\t!#zh\n\t\t检查指定的加载项是否有完成事件监听器。\n\t\t如果同时还指定了一个回调方法，并且回调有注册，它只会返回 true。\n\t\t@param key key\n\t\t@param callback callback\n\t\t@param target target \n\t\t*/\n\t\thasListener(key: string, callback?: Function, target?: any): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemoves a listener.\n\t\tIt will only remove when key, callback, target all match correctly.\n\t\t!#zh\n\t\t移除指定加载项已经注册的完成事件监听器。\n\t\t只会删除 key, callback, target 均匹配的监听器。\n\t\t@param key key\n\t\t@param callback callback\n\t\t@param target target \n\t\t*/\n\t\tremove(key: string, callback: Function, target: any): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemoves all callbacks registered in a certain event\n\t\ttype or all callbacks registered with a certain target.\n\t\t!#zh 删除指定目标的所有完成事件监听器。\n\t\t@param key The event key to be removed or the target to be removed \n\t\t*/\n\t\tremoveAllListeners(key: string|any): void;\t\t\n\t\t/**\n\t\t!#en Complete an item in the LoadingItems queue, please do not call this method unless you know what's happening.\n\t\t!#zh 通知 LoadingItems 队列一个 item 对象已完成，请不要调用这个函数，除非你知道自己在做什么。\n\t\t@param id The item url \n\t\t*/\n\t\titemComplete(id: string): void;\t\t\n\t\t/**\n\t\t!#en Destroy the LoadingItems queue, the queue object won't be garbage collected, it will be recycled, so every after destroy is not reliable.\n\t\t!#zh 销毁一个 LoadingItems 队列，这个队列对象会被内部缓冲池回收，所以销毁后的所有内部信息都是不可依赖的。 \n\t\t*/\n\t\tdestroy(): void;\t\n\t}\t\n\t/** !#en\n\tA pipeline describes a sequence of manipulations, each manipulation is called a pipe.<br/>\n\tIt's designed for loading process. so items should be urls, and the url will be the identity of each item during the process.<br/>\n\tA list of items can flow in the pipeline and it will output the results of all pipes.<br/>\n\tThey flow in the pipeline like water in tubes, they go through pipe by pipe separately.<br/>\n\tFinally all items will flow out the pipeline and the process is finished.\n\t\n\t!#zh\n\tpipeline 描述了一系列的操作，每个操作都被称为 pipe。<br/>\n\t它被设计来做加载过程的流程管理。所以 item 应该是 url，并且该 url 将是在处理中的每个 item 的身份标识。<br/>\n\t一个 item 列表可以在 pipeline 中流动，它将输出加载项经过所有 pipe 之后的结果。<br/>\n\t它们穿过 pipeline 就像水在管子里流动，将会按顺序流过每个 pipe。<br/>\n\t最后当所有加载项都流出 pipeline 时，整个加载流程就结束了。 */\n\texport class Pipeline {\t\t\n\t\t/**\n\t\t!#en\n\t\tConstructor, pass an array of pipes to construct a new Pipeline,\n\t\tthe pipes will be chained in the given order.<br/>\n\t\tA pipe is an object which must contain an `id` in string and a `handle` function,\n\t\tthe id must be unique in the pipeline.<br/>\n\t\tIt can also include `async` property to identify whether it's an asynchronous process.\n\t\t!#zh\n\t\t构造函数，通过一系列的 pipe 来构造一个新的 pipeline，pipes 将会在给定的顺序中被锁定。<br/>\n\t\t一个 pipe 就是一个对象，它包含了字符串类型的 ‘id’ 和 ‘handle’ 函数，在 pipeline 中 id 必须是唯一的。<br/>\n\t\t它还可以包括 ‘async’ 属性以确定它是否是一个异步过程。\n\t\t@param pipes pipes\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar pipeline = new Pipeline([\n\t\t     {\n\t\t         id: 'Downloader',\n\t\t         handle: function (item, callback) {},\n\t\t         async: true\n\t\t     },\n\t\t     {id: 'Parser', handle: function (item) {}, async: false}\n\t\t ]);\n\t\t``` \n\t\t*/\n\t\tconstructor(pipes: any[]);\t\t\n\t\t/**\n\t\t!#en\n\t\tInsert a new pipe at the given index of the pipeline. <br/>\n\t\tA pipe must contain an `id` in string and a `handle` function, the id must be unique in the pipeline.\n\t\t!#zh\n\t\t在给定的索引位置插入一个新的 pipe。<br/>\n\t\t一个 pipe 必须包含一个字符串类型的 ‘id’ 和 ‘handle’ 函数，该 id 在 pipeline 必须是唯一标识。\n\t\t@param pipe The pipe to be inserted\n\t\t@param index The index to insert \n\t\t*/\n\t\tinsertPipe(pipe: any, index: number): void;\t\t\n\t\t/**\n\t\t!en\n\t\tInsert a pipe to the end of an existing pipe. The existing pipe must be a valid pipe in the pipeline.\n\t\t!zh\n\t\t在当前 pipeline 的一个已知 pipe 后面插入一个新的 pipe。\n\t\t@param refPipe An existing pipe in the pipeline.\n\t\t@param newPipe The pipe to be inserted. \n\t\t*/\n\t\tinsertPipeAfter(refPipe: any, newPipe: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd a new pipe at the end of the pipeline. <br/>\n\t\tA pipe must contain an `id` in string and a `handle` function, the id must be unique in the pipeline.\n\t\t!#zh\n\t\t添加一个新的 pipe 到 pipeline 尾部。 <br/>\n\t\t该 pipe 必须包含一个字符串类型 ‘id’ 和 ‘handle’ 函数，该 id 在 pipeline 必须是唯一标识。\n\t\t@param pipe The pipe to be appended \n\t\t*/\n\t\tappendPipe(pipe: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tLet new items flow into the pipeline. <br/>\n\t\tEach item can be a simple url string or an object,\n\t\tif it's an object, it must contain `id` property. <br/>\n\t\tYou can specify its type by `type` property, by default, the type is the extension name in url. <br/>\n\t\tBy adding a `skips` property including pipe ids, you can skip these pipe. <br/>\n\t\tThe object can contain any supplementary property as you want. <br/>\n\t\t!#zh\n\t\t让新的 item 流入 pipeline 中。<br/>\n\t\t这里的每个 item 可以是一个简单字符串类型的 url 或者是一个对象,\n\t\t如果它是一个对象的话，他必须要包含 ‘id’ 属性。<br/>\n\t\t你也可以指定它的 ‘type’ 属性类型，默认情况下，该类型是 ‘url’ 的后缀名。<br/>\n\t\t也通过添加一个 包含 ‘skips’ 属性的 item 对象，你就可以跳过 skips 中包含的 pipe。<br/>\n\t\t该对象可以包含任何附加属性。\n\t\t@param items items\n\t\t\n\t\t@example \n\t\t```js\n\t\tpipeline.flowIn([\n\t\t     'res/Background.png',\n\t\t     {\n\t\t         id: 'res/scene.json',\n\t\t         type: 'scene',\n\t\t         name: 'scene',\n\t\t         skips: ['Downloader']\n\t\t     }\n\t\t ]);\n\t\t``` \n\t\t*/\n\t\tflowIn(items: any[]): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tCopy the item states from one source item to all destination items. <br/>\n\t\tIt's quite useful when a pipe generate new items from one source item,<br/>\n\t\tthen you should flowIn these generated items into pipeline, <br/>\n\t\tbut you probably want them to skip all pipes the source item already go through,<br/>\n\t\tyou can achieve it with this API. <br/>\n\t\t<br/>\n\t\tFor example, an unzip pipe will generate more items, but you won't want them to pass unzip or download pipe again.\n\t\t!#zh\n\t\t从一个源 item 向所有目标 item 复制它的 pipe 状态，用于避免重复通过部分 pipe。<br/>\n\t\t当一个源 item 生成了一系列新的 items 时很有用，<br/>\n\t\t你希望让这些新的依赖项进入 pipeline，但是又不希望它们通过源 item 已经经过的 pipe，<br/>\n\t\t但是你可能希望他们源 item 已经通过并跳过所有 pipes，<br/>\n\t\t这个时候就可以使用这个 API。\n\t\t@param srcItem The source item\n\t\t@param dstItems A single destination item or an array of destination items \n\t\t*/\n\t\tcopyItemStates(srcItem: any, dstItems: any[]|any): void;\t\t\n\t\t/**\n\t\t!#en Returns an item in pipeline.\n\t\t!#zh 根据 id 获取一个 item\n\t\t@param id The id of the item \n\t\t*/\n\t\tgetItem(id: any): any;\t\t\n\t\t/**\n\t\t!#en Removes an completed item in pipeline.\n\t\tIt will only remove the cache in the pipeline or loader, its dependencies won't be released.\n\t\tcc.loader provided another method to completely cleanup the resource and its dependencies,\n\t\tplease refer to {{#crossLink \"loader/release:method\"}}cc.loader.release{{/crossLink}}\n\t\t!#zh 移除指定的已完成 item。\n\t\t这将仅仅从 pipeline 或者 loader 中删除其缓存，并不会释放它所依赖的资源。\n\t\tcc.loader 中提供了另一种删除资源及其依赖的清理方法，请参考 {{#crossLink \"loader/release:method\"}}cc.loader.release{{/crossLink}}\n\t\t@param id The id of the item \n\t\t*/\n\t\tremoveItem(id: any): boolean;\t\t\n\t\t/**\n\t\t!#en Clear the current pipeline, this function will clean up the items.\n\t\t!#zh 清空当前 pipeline，该函数将清理 items。 \n\t\t*/\n\t\tclear(): void;\t\n\t}\t\n\t/** !#en The renderer object which provide access to render system APIs,\n\tdetailed APIs will be available progressively.\n\t!#zh 提供基础渲染接口的渲染器对象，渲染层的基础接口将逐步开放给用户 */\n\texport class renderer {\t\t\n\t\t/** !#en The render engine is available only after cc.game.EVENT_ENGINE_INITED event.<br/>\n\t\tNormally it will be inited as the webgl render engine, but in wechat open context domain,\n\t\tit will be inited as the canvas render engine. Canvas render engine is no longer available for other use case since v2.0.\n\t\t!#zh 基础渲染引擎对象只在 cc.game.EVENT_ENGINE_INITED 事件触发后才可获取。<br/>\n\t\t大多数情况下，它都会是 WebGL 渲染引擎实例，但是在微信开放数据域当中，它会是 Canvas 渲染引擎实例。请注意，从 2.0 开始，我们在其他平台和环境下都废弃了 Canvas 渲染器。 */\n\t\tstatic renderEngine: any;\t\t\n\t\t/** !#en The total draw call count in last rendered frame.\n\t\t!#zh 上一次渲染帧所提交的渲染批次总数。 */\n\t\tstatic drawCalls: number;\t\n\t}\t\n\t/** Predefined constants */\n\texport class macro {\t\t\n\t\t/** PI / 180 */\n\t\tstatic RAD: number;\t\t\n\t\t/** One degree */\n\t\tstatic DEG: number;\t\t\n\t\tstatic REPEAT_FOREVER: number;\t\t\n\t\tstatic FLT_EPSILON: number;\t\t\n\t\t/** Minimum z index value for node */\n\t\tstatic MIN_ZINDEX: number;\t\t\n\t\t/** Maximum z index value for node */\n\t\tstatic MAX_ZINDEX: number;\t\t\n\t\tstatic ONE: number;\t\t\n\t\tstatic ZERO: number;\t\t\n\t\tstatic SRC_ALPHA: number;\t\t\n\t\tstatic SRC_ALPHA_SATURATE: number;\t\t\n\t\tstatic SRC_COLOR: number;\t\t\n\t\tstatic DST_ALPHA: number;\t\t\n\t\tstatic DST_COLOR: number;\t\t\n\t\tstatic ONE_MINUS_SRC_ALPHA: number;\t\t\n\t\tstatic ONE_MINUS_SRC_COLOR: number;\t\t\n\t\tstatic ONE_MINUS_DST_ALPHA: number;\t\t\n\t\tstatic ONE_MINUS_DST_COLOR: number;\t\t\n\t\tstatic ONE_MINUS_CONSTANT_ALPHA: number;\t\t\n\t\tstatic ONE_MINUS_CONSTANT_COLOR: number;\t\t\n\t\t/** Oriented vertically */\n\t\tstatic ORIENTATION_PORTRAIT: number;\t\t\n\t\t/** Oriented horizontally */\n\t\tstatic ORIENTATION_LANDSCAPE: number;\t\t\n\t\t/** Oriented automatically */\n\t\tstatic ORIENTATION_AUTO: number;\t\t\n\t\t/** <p>\n\t\t  If enabled, the texture coordinates will be calculated by using this formula: <br/>\n\t\t     - texCoord.left = (rect.x*2+1) / (texture.wide*2);                  <br/>\n\t\t     - texCoord.right = texCoord.left + (rect.width*2-2)/(texture.wide*2); <br/>\n\t\t                                                                                <br/>\n\t\t The same for bottom and top.                                                   <br/>\n\t\t                                                                                <br/>\n\t\t This formula prevents artifacts by using 99% of the texture.                   <br/>\n\t\t The \"correct\" way to prevent artifacts is by expand the texture's border with the same color by 1 pixel<br/>\n\t\t                                                                                 <br/>\n\t\t Affected component:                                                                 <br/>\n\t\t     - cc.TMXLayer                                                       <br/>\n\t\t                                                                                 <br/>\n\t\t Enabled by default. To disabled set it to 0. <br/>\n\t\t To modify it, in Web engine please refer to CCMacro.js, in JSB please refer to CCConfig.h\n\t\t</p> */\n\t\tstatic FIX_ARTIFACTS_BY_STRECHING_TEXEL_TMX: number;\t\t\n\t\t/** Position of the FPS (Default: 0,0 (bottom-left corner))<br/>\n\t\tTo modify it, in Web engine please refer to CCMacro.js, in JSB please refer to CCConfig.h */\n\t\tstatic DIRECTOR_STATS_POSITION: Vec2;\t\t\n\t\t/** <p>\n\t\t   If enabled, actions that alter the position property (eg: CCMoveBy, CCJumpBy, CCBezierBy, etc..) will be stacked.                  <br/>\n\t\t   If you run 2 or more 'position' actions at the same time on a node, then end position will be the sum of all the positions.        <br/>\n\t\t   If disabled, only the last run action will take effect.\n\t\t</p> */\n\t\tstatic ENABLE_STACKABLE_ACTIONS: number;\t\t\n\t\t/** !#en\n\t\tThe timeout to determine whether a touch is no longer active and should be removed.\n\t\tThe reason to add this timeout is due to an issue in X5 browser core,\n\t\twhen X5 is presented in wechat on Android, if a touch is glissed from the bottom up, and leave the page area,\n\t\tno touch cancel event is triggered, and the touch will be considered active forever.\n\t\tAfter multiple times of this action, our maximum touches number will be reached and all new touches will be ignored.\n\t\tSo this new mechanism can remove the touch that should be inactive if it's not updated during the last 5000 milliseconds.\n\t\tThough it might remove a real touch if it's just not moving for the last 5 seconds which is not easy with the sensibility of mobile touch screen.\n\t\tYou can modify this value to have a better behavior if you find it's not enough.\n\t\t!#zh\n\t\t用于甄别一个触点对象是否已经失效并且可以被移除的延时时长\n\t\t添加这个时长的原因是 X5 内核在微信浏览器中出现的一个 bug。\n\t\t在这个环境下，如果用户将一个触点从底向上移出页面区域，将不会触发任何 touch cancel 或 touch end 事件，而这个触点会被永远当作停留在页面上的有效触点。\n\t\t重复这样操作几次之后，屏幕上的触点数量将达到我们的事件系统所支持的最高触点数量，之后所有的触摸事件都将被忽略。\n\t\t所以这个新的机制可以在触点在一定时间内没有任何更新的情况下视为失效触点并从事件系统中移除。\n\t\t当然，这也可能移除一个真实的触点，如果用户的触点真的在一定时间段内完全没有移动（这在当前手机屏幕的灵敏度下会很难）。\n\t\t你可以修改这个值来获得你需要的效果，默认值是 5000 毫秒。 */\n\t\tstatic TOUCH_TIMEOUT: number;\t\t\n\t\t/** !#en\n\t\tThe maximum vertex count for a single batched draw call.\n\t\t!#zh\n\t\t最大可以被单次批处理渲染的顶点数量。 */\n\t\tstatic BATCH_VERTEX_COUNT: number;\t\t\n\t\t/** !#en\n\t\tWhether or not enabled tiled map auto culling. If you set the TiledMap skew or rotation, then need to manually disable this, otherwise, the rendering will be wrong.\n\t\t!#zh\n\t\t是否开启瓦片地图的自动裁减功能。瓦片地图如果设置了 skew, rotation 的话，需要手动关闭，否则渲染会出错。 */\n\t\tstatic ENABLE_TILEDMAP_CULLING: boolean;\t\t\n\t\t/** !#en\n\t\tThe max concurrent task number for the downloader\n\t\t!#zh\n\t\t下载任务的最大并发数限制，在安卓平台部分机型或版本上可能需要限制在较低的水平 */\n\t\tstatic DOWNLOAD_MAX_CONCURRENT: number;\t\t\n\t\t/** !#en\n\t\tBoolean that indicates if the canvas contains an alpha channel, default sets to false for better performance.\n\t\tThough if you want to make your canvas background transparent and show other dom elements at the background,\n\t\tyou can set it to true before `cc.game.run`.\n\t\tWeb only.\n\t\t!#zh\n\t\t用于设置 Canvas 背景是否支持 alpha 通道，默认为 false，这样可以有更高的性能表现。\n\t\t如果你希望 Canvas 背景是透明的，并显示背后的其他 DOM 元素，你可以在 `cc.game.run` 之前将这个值设为 true。\n\t\t仅支持 Web */\n\t\tstatic ENABLE_TRANSPARENT_CANVAS: boolean;\t\t\n\t\t/** !#en\n\t\tBoolean that indicates if the WebGL context is created with `antialias` option turned on, default value is false.\n\t\tSet it to true could make your game graphics slightly smoother, like texture hard edges when rotated.\n\t\tWhether to use this really depend on your game design and targeted platform,\n\t\tdevice with retina display usually have good detail on graphics with or without this option,\n\t\tyou probably don't want antialias if your game style is pixel art based.\n\t\tAlso, it could have great performance impact with some browser / device using software MSAA.\n\t\tYou can set it to true before `cc.game.run`.\n\t\tWeb only.\n\t\t!#zh\n\t\t用于设置在创建 WebGL Context 时是否开启抗锯齿选项，默认值是 false。\n\t\t将这个选项设置为 true 会让你的游戏画面稍稍平滑一些，比如旋转硬边贴图时的锯齿。是否开启这个选项很大程度上取决于你的游戏和面向的平台。\n\t\t在大多数拥有 retina 级别屏幕的设备上用户往往无法区分这个选项带来的变化；如果你的游戏选择像素艺术风格，你也多半不会想开启这个选项。\n\t\t同时，在少部分使用软件级别抗锯齿算法的设备或浏览器上，这个选项会对性能产生比较大的影响。\n\t\t你可以在 `cc.game.run` 之前设置这个值，否则它不会生效。\n\t\t仅支持 Web */\n\t\tstatic ENABLE_WEBGL_ANTIALIAS: boolean;\t\t\n\t\t/** !#en\n\t\tWhether or not enable auto culling.\n\t\tThis feature have been removed in v2.0 new renderer due to overall performance consumption.\n\t\tWe have no plan currently to re-enable auto culling.\n\t\tIf your game have more dynamic objects, we suggest to disable auto culling.\n\t\tIf your game have more static objects, we suggest to enable auto culling.\n\t\t!#zh\n\t\t是否开启自动裁减功能，开启裁减功能将会把在屏幕外的物体从渲染队列中去除掉。\n\t\t这个功能在 v2.0 的新渲染器中被移除了，因为它在大多数游戏中所带来的损耗要高于性能的提升，目前我们没有计划重新支持自动裁剪。\n\t\t如果游戏中的动态物体比较多的话，建议将此选项关闭。\n\t\t如果游戏中的静态物体比较多的话，建议将此选项打开。 */\n\t\tstatic ENABLE_CULLING: boolean;\t\t\n\t\t/** !#en\n\t\tWhether or not clear dom Image object cache after uploading to gl texture.\n\t\tConcretely, we are setting image.src to empty string to release the cache.\n\t\tNormally you don't need to enable this option, because on web the Image object doesn't consume too much memory.\n\t\tBut on WeChat Game platform, the current version cache decoded data in Image object, which has high memory usage.\n\t\tSo we enabled this option by default on WeChat, so that we can release Image cache immediately after uploaded to GPU.\n\t\t!#zh\n\t\t是否在将贴图上传至 GPU 之后删除 DOM Image 缓存。\n\t\t具体来说，我们通过设置 image.src 为空字符串来释放这部分内存。\n\t\t正常情况下，你不需要开启这个选项，因为在 web 平台，Image 对象所占用的内存很小。\n\t\t但是在微信小游戏平台的当前版本，Image 对象会缓存解码后的图片数据，它所占用的内存空间很大。\n\t\t所以我们在微信平台默认开启了这个选项，这样我们就可以在上传 GL 贴图之后立即释放 Image 对象的内存，避免过高的内存占用。 */\n\t\tstatic CLEANUP_IMAGE_CACHE: boolean;\t\t\n\t\t/** !#en\n\t\tWhether or not show mesh wire frame.\n\t\t!#zh\n\t\t是否显示网格的线框。 */\n\t\tstatic SHOW_MESH_WIREFRAME: boolean;\t\t\n\t\t/** !#en\n\t\tSet cc.RotateTo/cc.RotateBy rotate direction.\n\t\tIf need set rotate positive direction to counterclockwise, please change setting to : cc.macro.ROTATE_ACTION_CCW = true;\n\t\t!#zh\n\t\t设置 cc.RotateTo/cc.RotateBy 的旋转方向。\n\t\t如果需要设置旋转的正方向为逆时针方向，请设置选项为： cc.macro.ROTATE_ACTION_CCW = true; */\n\t\tstatic ROTATE_ACTION_CCW: boolean;\t\t\n\t\t/** !en\n\t\tThe image format supported by the engine defaults, and the supported formats may differ in different build platforms and device types.\n\t\tCurrently all platform and device support ['.webp', '.jpg', '.jpeg', '.bmp', '.png'], The iOS mobile platform also supports the PVR format。\n\t\t!zh\n\t\t引擎默认支持的图片格式，支持的格式可能在不同的构建平台和设备类型上有所差别。\n\t\t目前所有平台和设备支持的格式有 ['.webp', '.jpg', '.jpeg', '.bmp', '.png']. 另外 Ios 手机平台还额外支持了 PVR 格式。 */\n\t\tstatic SUPPORT_TEXTURE_FORMATS: string[];\t\n\t}\t\n\t/** undefined */\n\texport enum VerticalTextAlignment {\t\t\n\t\tTOP = 0,\n\t\tCENTER = 0,\n\t\tBOTTOM = 0,\t\n\t}\t\n\t/** !#en the device accelerometer reports values for each axis in units of g-force.\n\t!#zh 设备重力传感器传递的各个轴的数据。 */\n\texport class constructor {\t\t\n\t\t/**\n\t\twhether enable accelerometer event\n\t\t@param isEnable isEnable \n\t\t*/\n\t\tsetAccelerometerEnabled(isEnable: boolean): void;\t\t\n\t\t/**\n\t\tset accelerometer interval value\n\t\t@param interval interval \n\t\t*/\n\t\tsetAccelerometerInterval(interval: number): void;\t\n\t}\t\n\t/** The base class of most of all the objects in Fireball. */\n\texport class Object {\t\t\n\t\t/** !#en The name of the object.\n\t\t!#zh 该对象的名称。 */\n\t\tname: string;\t\t\n\t\t/** !#en\n\t\tIndicates whether the object is not yet destroyed. (It will not be available after being destroyed)<br>\n\t\tWhen an object's `destroy` is called, it is actually destroyed after the end of this frame.\n\t\tSo `isValid` will return false from the next frame, while `isValid` in the current frame will still be true.\n\t\tIf you want to determine whether the current frame has called `destroy`, use `cc.isValid(obj, true)`,\n\t\tbut this is often caused by a particular logical requirements, which is not normally required.\n\t\t\n\t\t!#zh\n\t\t表示该对象是否可用（被 destroy 后将不可用）。<br>\n\t\t当一个对象的 `destroy` 调用以后，会在这一帧结束后才真正销毁。因此从下一帧开始 `isValid` 就会返回 false，而当前帧内 `isValid` 仍然会是 true。如果希望判断当前帧是否调用过 `destroy`，请使用 `cc.isValid(obj, true)`，不过这往往是特殊的业务需求引起的，通常情况下不需要这样。 */\n\t\tisValid: boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tDestroy this Object, and release all its own references to other objects.<br/>\n\t\tActual object destruction will delayed until before rendering.\n\t\tFrom the next frame, this object is not usable any more.\n\t\tYou can use cc.isValid(obj) to check whether the object is destroyed before accessing it.\n\t\t!#zh\n\t\t销毁该对象，并释放所有它对其它对象的引用。<br/>\n\t\t实际销毁操作会延迟到当前帧渲染前执行。从下一帧开始，该对象将不再可用。\n\t\t您可以在访问对象之前使用 cc.isValid(obj) 来检查对象是否已被销毁。\n\t\t\n\t\t@example \n\t\t```js\n\t\tobj.destroy();\n\t\t``` \n\t\t*/\n\t\tdestroy(): boolean;\t\n\t}\t\n\t/** Bit mask that controls object states. */\n\texport enum Flags {\t\t\n\t\tDontSave = 0,\n\t\tEditorOnly = 0,\n\t\tHideInHierarchy = 0,\t\n\t}\t\n\t/** The fullscreen API provides an easy way for web content to be presented using the user's entire screen.\n\tIt's invalid on safari, QQbrowser and android browser */\n\texport class screen {\t\t\n\t\t/**\n\t\tinitialize \n\t\t*/\n\t\tinit(): void;\t\t\n\t\t/**\n\t\treturn true if it's full now. \n\t\t*/\n\t\tfullScreen(): boolean;\t\t\n\t\t/**\n\t\tchange the screen to full mode.\n\t\t@param element element\n\t\t@param onFullScreenChange onFullScreenChange \n\t\t*/\n\t\trequestFullScreen(element: Element, onFullScreenChange: Function): void;\t\t\n\t\t/**\n\t\texit the full mode. \n\t\t*/\n\t\texitFullScreen(): boolean;\t\t\n\t\t/**\n\t\tAutomatically request full screen with a touch/click event\n\t\t@param element element\n\t\t@param onFullScreenChange onFullScreenChange \n\t\t*/\n\t\tautoFullScreen(element: Element, onFullScreenChange: Function): void;\t\n\t}\t\n\t/** System variables */\n\texport class sys {\t\t\n\t\t/** English language code */\n\t\tstatic LANGUAGE_ENGLISH: string;\t\t\n\t\t/** Chinese language code */\n\t\tstatic LANGUAGE_CHINESE: string;\t\t\n\t\t/** French language code */\n\t\tstatic LANGUAGE_FRENCH: string;\t\t\n\t\t/** Italian language code */\n\t\tstatic LANGUAGE_ITALIAN: string;\t\t\n\t\t/** German language code */\n\t\tstatic LANGUAGE_GERMAN: string;\t\t\n\t\t/** Spanish language code */\n\t\tstatic LANGUAGE_SPANISH: string;\t\t\n\t\t/** Spanish language code */\n\t\tstatic LANGUAGE_DUTCH: string;\t\t\n\t\t/** Russian language code */\n\t\tstatic LANGUAGE_RUSSIAN: string;\t\t\n\t\t/** Korean language code */\n\t\tstatic LANGUAGE_KOREAN: string;\t\t\n\t\t/** Japanese language code */\n\t\tstatic LANGUAGE_JAPANESE: string;\t\t\n\t\t/** Hungarian language code */\n\t\tstatic LANGUAGE_HUNGARIAN: string;\t\t\n\t\t/** Portuguese language code */\n\t\tstatic LANGUAGE_PORTUGUESE: string;\t\t\n\t\t/** Arabic language code */\n\t\tstatic LANGUAGE_ARABIC: string;\t\t\n\t\t/** Norwegian language code */\n\t\tstatic LANGUAGE_NORWEGIAN: string;\t\t\n\t\t/** Polish language code */\n\t\tstatic LANGUAGE_POLISH: string;\t\t\n\t\t/** Turkish language code */\n\t\tstatic LANGUAGE_TURKISH: string;\t\t\n\t\t/** Ukrainian language code */\n\t\tstatic LANGUAGE_UKRAINIAN: string;\t\t\n\t\t/** Romanian language code */\n\t\tstatic LANGUAGE_ROMANIAN: string;\t\t\n\t\t/** Bulgarian language code */\n\t\tstatic LANGUAGE_BULGARIAN: string;\t\t\n\t\t/** Unknown language code */\n\t\tstatic LANGUAGE_UNKNOWN: string;\t\t\n\t\tstatic OS_IOS: string;\t\t\n\t\tstatic OS_ANDROID: string;\t\t\n\t\tstatic OS_WINDOWS: string;\t\t\n\t\tstatic OS_MARMALADE: string;\t\t\n\t\tstatic OS_LINUX: string;\t\t\n\t\tstatic OS_BADA: string;\t\t\n\t\tstatic OS_BLACKBERRY: string;\t\t\n\t\tstatic OS_OSX: string;\t\t\n\t\tstatic OS_WP8: string;\t\t\n\t\tstatic OS_WINRT: string;\t\t\n\t\tstatic OS_UNKNOWN: string;\t\t\n\t\tstatic UNKNOWN: number;\t\t\n\t\tstatic WIN32: number;\t\t\n\t\tstatic LINUX: number;\t\t\n\t\tstatic MACOS: number;\t\t\n\t\tstatic ANDROID: number;\t\t\n\t\tstatic IPHONE: number;\t\t\n\t\tstatic IPAD: number;\t\t\n\t\tstatic BLACKBERRY: number;\t\t\n\t\tstatic NACL: number;\t\t\n\t\tstatic EMSCRIPTEN: number;\t\t\n\t\tstatic TIZEN: number;\t\t\n\t\tstatic WINRT: number;\t\t\n\t\tstatic WP8: number;\t\t\n\t\tstatic MOBILE_BROWSER: number;\t\t\n\t\tstatic DESKTOP_BROWSER: number;\t\t\n\t\t/** Indicates whether executes in editor's window process (Electron's renderer context) */\n\t\tstatic EDITOR_PAGE: number;\t\t\n\t\t/** Indicates whether executes in editor's main process (Electron's browser context) */\n\t\tstatic EDITOR_CORE: number;\t\t\n\t\tstatic WECHAT_GAME: number;\t\t\n\t\tstatic QQ_PLAY: number;\t\t\n\t\tstatic FB_PLAYABLE_ADS: number;\t\t\n\t\tstatic BAIDU_GAME: number;\t\t\n\t\tstatic VIVO_GAME: number;\t\t\n\t\tstatic OPPO_GAME: number;\t\t\n\t\tstatic HUAWEI_GAME: number;\t\t\n\t\tstatic XIAOMI_GAME: number;\t\t\n\t\tstatic JKW_GAME: number;\t\t\n\t\tstatic ALIPAY_GAME: number;\t\t\n\t\t/** BROWSER_TYPE_WECHAT */\n\t\tstatic BROWSER_TYPE_WECHAT: string;\t\t\n\t\t/** BROWSER_TYPE_WECHAT_GAME */\n\t\tstatic BROWSER_TYPE_WECHAT_GAME: string;\t\t\n\t\t/** BROWSER_TYPE_WECHAT_GAME_SUB */\n\t\tstatic BROWSER_TYPE_WECHAT_GAME_SUB: string;\t\t\n\t\t/** BROWSER_TYPE_BAIDU_GAME */\n\t\tstatic BROWSER_TYPE_BAIDU_GAME: string;\t\t\n\t\t/** BROWSER_TYPE_BAIDU_GAME_SUB */\n\t\tstatic BROWSER_TYPE_BAIDU_GAME_SUB: string;\t\t\n\t\t/** BROWSER_TYPE_XIAOMI_GAME */\n\t\tstatic BROWSER_TYPE_XIAOMI_GAME: string;\t\t\n\t\t/** BROWSER_TYPE_ALIPAY_GAME */\n\t\tstatic BROWSER_TYPE_ALIPAY_GAME: string;\t\t\n\t\t/** BROWSER_TYPE_QQ_PLAY */\n\t\tstatic BROWSER_TYPE_QQ_PLAY: string;\t\t\n\t\tstatic BROWSER_TYPE_ANDROID: string;\t\t\n\t\tstatic BROWSER_TYPE_IE: string;\t\t\n\t\tstatic BROWSER_TYPE_EDGE: string;\t\t\n\t\tstatic BROWSER_TYPE_QQ: string;\t\t\n\t\tstatic BROWSER_TYPE_MOBILE_QQ: string;\t\t\n\t\tstatic BROWSER_TYPE_UC: string;\t\t\n\t\t/** uc third party integration. */\n\t\tstatic BROWSER_TYPE_UCBS: string;\t\t\n\t\tstatic BROWSER_TYPE_360: string;\t\t\n\t\tstatic BROWSER_TYPE_BAIDU_APP: string;\t\t\n\t\tstatic BROWSER_TYPE_BAIDU: string;\t\t\n\t\tstatic BROWSER_TYPE_MAXTHON: string;\t\t\n\t\tstatic BROWSER_TYPE_OPERA: string;\t\t\n\t\tstatic BROWSER_TYPE_OUPENG: string;\t\t\n\t\tstatic BROWSER_TYPE_MIUI: string;\t\t\n\t\tstatic BROWSER_TYPE_FIREFOX: string;\t\t\n\t\tstatic BROWSER_TYPE_SAFARI: string;\t\t\n\t\tstatic BROWSER_TYPE_CHROME: string;\t\t\n\t\tstatic BROWSER_TYPE_LIEBAO: string;\t\t\n\t\tstatic BROWSER_TYPE_QZONE: string;\t\t\n\t\tstatic BROWSER_TYPE_SOUGOU: string;\t\t\n\t\tstatic BROWSER_TYPE_UNKNOWN: string;\t\t\n\t\t/** Is native ? This is set to be true in jsb auto. */\n\t\tstatic isNative: boolean;\t\t\n\t\t/** Is web browser ? */\n\t\tstatic isBrowser: boolean;\t\t\n\t\t/**\n\t\tIs webgl extension support?\n\t\t@param name name \n\t\t*/\n\t\tstatic glExtension(name: any): void;\t\t\n\t\t/**\n\t\tGet max joint matrix size for skinned mesh renderer. \n\t\t*/\n\t\tstatic getMaxJointMatrixSize(): void;\t\t\n\t\t/** Indicate whether system is mobile system */\n\t\tstatic isMobile: boolean;\t\t\n\t\t/** Indicate the running platform */\n\t\tstatic platform: number;\t\t\n\t\t/** Get current language iso 639-1 code.\n\t\tExamples of valid language codes include \"zh-tw\", \"en\", \"en-us\", \"fr\", \"fr-fr\", \"es-es\", etc.\n\t\tThe actual value totally depends on results provided by destination platform. */\n\t\tstatic languageCode: string;\t\t\n\t\t/** Indicate the current language of the running system */\n\t\tstatic language: string;\t\t\n\t\t/** Indicate the running os name */\n\t\tstatic os: string;\t\t\n\t\t/** Indicate the running os version */\n\t\tstatic osVersion: string;\t\t\n\t\t/** Indicate the running os main version */\n\t\tstatic osMainVersion: number;\t\t\n\t\t/** Indicate the running browser type */\n\t\tstatic browserType: string;\t\t\n\t\t/** Indicate the running browser version */\n\t\tstatic browserVersion: string;\t\t\n\t\t/** Indicate the real pixel resolution of the whole game window */\n\t\tstatic windowPixelResolution: Size;\t\t\n\t\t/** cc.sys.localStorage is a local storage component. */\n\t\tstatic localStorage: any;\t\t\n\t\t/** The capabilities of the current platform */\n\t\tstatic capabilities: any;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the network type of current device, return cc.sys.NetworkType.LAN if failure.\n\t\t!#zh\n\t\t获取当前设备的网络类型, 如果网络类型无法获取，默认将返回 cc.sys.NetworkType.LAN \n\t\t*/\n\t\tstatic getNetworkType(): sys.NetworkType;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the battery level of current device, return 1.0 if failure.\n\t\t!#zh\n\t\t获取当前设备的电池电量，如果电量无法获取，默认将返回 1 \n\t\t*/\n\t\tstatic getBatteryLevel(): number;\t\t\n\t\t/**\n\t\tForces the garbage collection, only available in JSB \n\t\t*/\n\t\tstatic garbageCollect(): void;\t\t\n\t\t/**\n\t\tRestart the JS VM, only available in JSB \n\t\t*/\n\t\tstatic restartVM(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturn the safe area rect. <br/>\n\t\tonly available on the iOS native platform, otherwise it will return a rect with design resolution size.\n\t\t!#zh\n\t\t返回手机屏幕安全区域，目前仅在 iOS 原生平台有效。其它平台将默认返回设计分辨率尺寸。 \n\t\t*/\n\t\tstatic getSafeAreaRect(): Rect;\t\t\n\t\t/**\n\t\tCheck whether an object is valid,\n\t\tIn web engine, it will return true if the object exist\n\t\tIn native engine, it will return true if the JS object and the correspond native object are both valid\n\t\t@param obj obj \n\t\t*/\n\t\tstatic isObjectValid(obj: any): boolean;\t\t\n\t\t/**\n\t\tDump system informations \n\t\t*/\n\t\tstatic dump(): void;\t\t\n\t\t/**\n\t\tOpen a url in browser\n\t\t@param url url \n\t\t*/\n\t\tstatic openURL(url: string): void;\t\t\n\t\t/**\n\t\tGet the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC. \n\t\t*/\n\t\tstatic now(): number;\t\n\t}\t\n\t/** cc.view is the singleton object which represents the game window.<br/>\n\tIt's main task include: <br/>\n\t - Apply the design resolution policy<br/>\n\t - Provide interaction with the window, like resize event on web, retina display support, etc...<br/>\n\t - Manage the game view port which can be different with the window<br/>\n\t - Manage the content scale and translation<br/>\n\t<br/>\n\tSince the cc.view is a singleton, you don't need to call any constructor or create functions,<br/>\n\tthe standard way to use it is by calling:<br/>\n\t - cc.view.methodName(); <br/> */\n\texport class View extends EventTarget {\t\t\n\t\t/**\n\t\t!#en\n\t\tSets view's target-densitydpi for android mobile browser. it can be set to:           <br/>\n\t\t  1. cc.macro.DENSITYDPI_DEVICE, value is \"device-dpi\"                                      <br/>\n\t\t  2. cc.macro.DENSITYDPI_HIGH, value is \"high-dpi\"  (default value)                         <br/>\n\t\t  3. cc.macro.DENSITYDPI_MEDIUM, value is \"medium-dpi\" (browser's default value)            <br/>\n\t\t  4. cc.macro.DENSITYDPI_LOW, value is \"low-dpi\"                                            <br/>\n\t\t  5. Custom value, e.g: \"480\"                                                         <br/>\n\t\t!#zh 设置目标内容的每英寸像素点密度。\n\t\t@param densityDPI densityDPI \n\t\t*/\n\t\tsetTargetDensityDPI(densityDPI: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the current target-densitydpi value of cc.view.\n\t\t!#zh 获取目标内容的每英寸像素点密度。 \n\t\t*/\n\t\tgetTargetDensityDPI(): string;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets whether resize canvas automatically when browser's size changed.<br/>\n\t\tUseful only on web.\n\t\t!#zh 设置当发现浏览器的尺寸改变时，是否自动调整 canvas 尺寸大小。\n\t\t仅在 Web 模式下有效。\n\t\t@param enabled Whether enable automatic resize with browser's resize event \n\t\t*/\n\t\tresizeWithBrowserSize(enabled: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the callback function for cc.view's resize action,<br/>\n\t\tthis callback will be invoked before applying resolution policy, <br/>\n\t\tso you can do any additional modifications within the callback.<br/>\n\t\tUseful only on web.\n\t\t!#zh 设置 cc.view 调整视窗尺寸行为的回调函数，\n\t\t这个回调函数会在应用适配模式之前被调用，\n\t\t因此你可以在这个回调函数内添加任意附加改变，\n\t\t仅在 Web 平台下有效。\n\t\t@param callback The callback function \n\t\t*/\n\t\tsetResizeCallback(callback: Function|void): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the orientation of the game, it can be landscape, portrait or auto.\n\t\tWhen set it to landscape or portrait, and screen w/h ratio doesn't fit,\n\t\tcc.view will automatically rotate the game canvas using CSS.\n\t\tNote that this function doesn't have any effect in native,\n\t\tin native, you need to set the application orientation in native project settings\n\t\t!#zh 设置游戏屏幕朝向，它能够是横版，竖版或自动。\n\t\t当设置为横版或竖版，并且屏幕的宽高比例不匹配时，\n\t\tcc.view 会自动用 CSS 旋转游戏场景的 canvas，\n\t\t这个方法不会对 native 部分产生任何影响，对于 native 而言，你需要在应用设置中的设置排版。\n\t\t@param orientation Possible values: cc.macro.ORIENTATION_LANDSCAPE | cc.macro.ORIENTATION_PORTRAIT | cc.macro.ORIENTATION_AUTO \n\t\t*/\n\t\tsetOrientation(orientation: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets whether the engine modify the \"viewport\" meta in your web page.<br/>\n\t\tIt's enabled by default, we strongly suggest you not to disable it.<br/>\n\t\tAnd even when it's enabled, you can still set your own \"viewport\" meta, it won't be overridden<br/>\n\t\tOnly useful on web\n\t\t!#zh 设置引擎是否调整 viewport meta 来配合屏幕适配。\n\t\t默认设置为启动，我们强烈建议你不要将它设置为关闭。\n\t\t即使当它启动时，你仍然能够设置你的 viewport meta，它不会被覆盖。\n\t\t仅在 Web 模式下有效\n\t\t@param enabled Enable automatic modification to \"viewport\" meta \n\t\t*/\n\t\tadjustViewportMeta(enabled: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRetina support is enabled by default for Apple device but disabled for other devices,<br/>\n\t\tit takes effect only when you called setDesignResolutionPolicy<br/>\n\t\tOnly useful on web\n\t\t!#zh 对于 Apple 这种支持 Retina 显示的设备上默认进行优化而其他类型设备默认不进行优化，\n\t\t它仅会在你调用 setDesignResolutionPolicy 方法时有影响。\n\t\t仅在 Web 模式下有效。\n\t\t@param enabled Enable or disable retina display \n\t\t*/\n\t\tenableRetina(enabled: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tCheck whether retina display is enabled.<br/>\n\t\tOnly useful on web\n\t\t!#zh 检查是否对 Retina 显示设备进行优化。\n\t\t仅在 Web 模式下有效。 \n\t\t*/\n\t\tisRetinaEnabled(): boolean;\t\t\n\t\t/**\n\t\t!#en Whether to Enable on anti-alias\n\t\t!#zh 控制抗锯齿是否开启\n\t\t@param enabled Enable or not anti-alias \n\t\t*/\n\t\tenableAntiAlias(enabled: boolean): void;\t\t\n\t\t/**\n\t\t!#en Returns whether the current enable on anti-alias\n\t\t!#zh 返回当前是否抗锯齿 \n\t\t*/\n\t\tisAntiAliasEnabled(): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tIf enabled, the application will try automatically to enter full screen mode on mobile devices<br/>\n\t\tYou can pass true as parameter to enable it and disable it by passing false.<br/>\n\t\tOnly useful on web\n\t\t!#zh 启动时，移动端游戏会在移动端自动尝试进入全屏模式。\n\t\t你能够传入 true 为参数去启动它，用 false 参数来关闭它。\n\t\t@param enabled Enable or disable auto full screen on mobile devices \n\t\t*/\n\t\tenableAutoFullScreen(enabled: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tCheck whether auto full screen is enabled.<br/>\n\t\tOnly useful on web\n\t\t!#zh 检查自动进入全屏模式是否启动。\n\t\t仅在 Web 模式下有效。 \n\t\t*/\n\t\tisAutoFullScreenEnabled(): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the canvas size of the view.<br/>\n\t\tOn native platforms, it returns the screen size since the view is a fullscreen view.<br/>\n\t\tOn web, it returns the size of the canvas element.\n\t\t!#zh 返回视图中 canvas 的尺寸。\n\t\t在 native 平台下，它返回全屏视图下屏幕的尺寸。\n\t\t在 Web 平台下，它返回 canvas 元素尺寸。 \n\t\t*/\n\t\tgetCanvasSize(): Size;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the frame size of the view.<br/>\n\t\tOn native platforms, it returns the screen size since the view is a fullscreen view.<br/>\n\t\tOn web, it returns the size of the canvas's outer DOM element.\n\t\t!#zh 返回视图中边框尺寸。\n\t\t在 native 平台下，它返回全屏视图下屏幕的尺寸。\n\t\t在 web 平台下，它返回 canvas 元素的外层 DOM 元素尺寸。 \n\t\t*/\n\t\tgetFrameSize(): Size;\t\t\n\t\t/**\n\t\t!#en\n\t\tOn native, it sets the frame size of view.<br/>\n\t\tOn web, it sets the size of the canvas's outer DOM element.\n\t\t!#zh 在 native 平台下，设置视图框架尺寸。\n\t\t在 web 平台下，设置 canvas 外层 DOM 元素尺寸。\n\t\t@param width width\n\t\t@param height height \n\t\t*/\n\t\tsetFrameSize(width: number, height: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the visible area size of the view port.\n\t\t!#zh 返回视图窗口可见区域尺寸。 \n\t\t*/\n\t\tgetVisibleSize(): Size;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the visible area size of the view port.\n\t\t!#zh 返回视图窗口可见区域像素尺寸。 \n\t\t*/\n\t\tgetVisibleSizeInPixel(): Size;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the visible origin of the view port.\n\t\t!#zh 返回视图窗口可见区域原点。 \n\t\t*/\n\t\tgetVisibleOrigin(): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the visible origin of the view port.\n\t\t!#zh 返回视图窗口可见区域像素原点。 \n\t\t*/\n\t\tgetVisibleOriginInPixel(): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the current resolution policy\n\t\t!#zh 返回当前分辨率方案 \n\t\t*/\n\t\tgetResolutionPolicy(): ResolutionPolicy;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the current resolution policy\n\t\t!#zh 设置当前分辨率模式\n\t\t@param resolutionPolicy resolutionPolicy \n\t\t*/\n\t\tsetResolutionPolicy(resolutionPolicy: ResolutionPolicy|number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the resolution policy with designed view size in points.<br/>\n\t\tThe resolution policy include: <br/>\n\t\t[1] ResolutionExactFit       Fill screen by stretch-to-fit: if the design resolution ratio of width to height is different from the screen resolution ratio, your game view will be stretched.<br/>\n\t\t[2] ResolutionNoBorder       Full screen without black border: if the design resolution ratio of width to height is different from the screen resolution ratio, two areas of your game view will be cut.<br/>\n\t\t[3] ResolutionShowAll        Full screen with black border: if the design resolution ratio of width to height is different from the screen resolution ratio, two black borders will be shown.<br/>\n\t\t[4] ResolutionFixedHeight    Scale the content's height to screen's height and proportionally scale its width<br/>\n\t\t[5] ResolutionFixedWidth     Scale the content's width to screen's width and proportionally scale its height<br/>\n\t\t[cc.ResolutionPolicy]        [Web only feature] Custom resolution policy, constructed by cc.ResolutionPolicy<br/>\n\t\t!#zh 通过设置设计分辨率和匹配模式来进行游戏画面的屏幕适配。\n\t\t@param width Design resolution width.\n\t\t@param height Design resolution height.\n\t\t@param resolutionPolicy The resolution policy desired \n\t\t*/\n\t\tsetDesignResolutionSize(width: number, height: number, resolutionPolicy: ResolutionPolicy|number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the designed size for the view.\n\t\tDefault resolution size is the same as 'getFrameSize'.\n\t\t!#zh 返回视图的设计分辨率。\n\t\t默认下分辨率尺寸同 `getFrameSize` 方法相同 \n\t\t*/\n\t\tgetDesignResolutionSize(): Size;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the container to desired pixel resolution and fit the game content to it.\n\t\tThis function is very useful for adaptation in mobile browsers.\n\t\tIn some HD android devices, the resolution is very high, but its browser performance may not be very good.\n\t\tIn this case, enabling retina display is very costy and not suggested, and if retina is disabled, the image may be blurry.\n\t\tBut this API can be helpful to set a desired pixel resolution which is in between.\n\t\tThis API will do the following:\n\t\t    1. Set viewport's width to the desired width in pixel\n\t\t    2. Set body width to the exact pixel resolution\n\t\t    3. The resolution policy will be reset with designed view size in points.\n\t\t!#zh 设置容器（container）需要的像素分辨率并且适配相应分辨率的游戏内容。\n\t\t@param width Design resolution width.\n\t\t@param height Design resolution height.\n\t\t@param resolutionPolicy The resolution policy desired \n\t\t*/\n\t\tsetRealPixelResolution(width: number, height: number, resolutionPolicy: ResolutionPolicy|number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets view port rectangle with points.\n\t\t!#zh 用设计分辨率下的点尺寸来设置视窗。\n\t\t@param x x\n\t\t@param y y\n\t\t@param w width\n\t\t@param h height \n\t\t*/\n\t\tsetViewportInPoints(x: number, y: number, w: number, h: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets Scissor rectangle with points.\n\t\t!#zh 用设计分辨率下的点的尺寸来设置 scissor 剪裁区域。\n\t\t@param x x\n\t\t@param y y\n\t\t@param w w\n\t\t@param h h \n\t\t*/\n\t\tsetScissorInPoints(x: number, y: number, w: number, h: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns whether GL_SCISSOR_TEST is enable\n\t\t!#zh 检查 scissor 是否生效。 \n\t\t*/\n\t\tisScissorEnabled(): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the current scissor rectangle\n\t\t!#zh 返回当前的 scissor 剪裁区域。 \n\t\t*/\n\t\tgetScissorRect(): Rect;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the view port rectangle.\n\t\t!#zh 返回视窗剪裁区域。 \n\t\t*/\n\t\tgetViewportRect(): Rect;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns scale factor of the horizontal direction (X axis).\n\t\t!#zh 返回横轴的缩放比，这个缩放比是将画布像素分辨率放到设计分辨率的比例。 \n\t\t*/\n\t\tgetScaleX(): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns scale factor of the vertical direction (Y axis).\n\t\t!#zh 返回纵轴的缩放比，这个缩放比是将画布像素分辨率缩放到设计分辨率的比例。 \n\t\t*/\n\t\tgetScaleY(): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns device pixel ratio for retina display.\n\t\t!#zh 返回设备或浏览器像素比例。 \n\t\t*/\n\t\tgetDevicePixelRatio(): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the real location in view for a translation based on a related position\n\t\t!#zh 将屏幕坐标转换为游戏视图下的坐标。\n\t\t@param tx The X axis translation\n\t\t@param ty The Y axis translation\n\t\t@param relatedPos The related position object including \"left\", \"top\", \"width\", \"height\" informations \n\t\t*/\n\t\tconvertToLocationInView(tx: number, ty: number, relatedPos: any): Vec2;\t\n\t}\t\n\t/** <p>cc.game.containerStrategy class is the root strategy class of container's scale strategy,\n\tit controls the behavior of how to scale the cc.game.container and cc.game.canvas object</p> */\n\texport class ContainerStrategy {\t\t\n\t\t/**\n\t\t!#en\n\t\tManipulation before appling the strategy\n\t\t!#zh 在应用策略之前的操作\n\t\t@param view The target view \n\t\t*/\n\t\tpreApply(view: View): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tFunction to apply this strategy\n\t\t!#zh 策略应用方法\n\t\t@param view view\n\t\t@param designedResolution designedResolution \n\t\t*/\n\t\tapply(view: View, designedResolution: Size): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tManipulation after applying the strategy\n\t\t!#zh 策略调用之后的操作\n\t\t@param view The target view \n\t\t*/\n\t\tpostApply(view: View): void;\t\n\t}\t\n\t/** <p>cc.ContentStrategy class is the root strategy class of content's scale strategy,\n\tit controls the behavior of how to scale the scene and setup the viewport for the game</p> */\n\texport class ContentStrategy {\t\t\n\t\t/**\n\t\t!#en\n\t\tManipulation before applying the strategy\n\t\t!#zh 策略应用前的操作\n\t\t@param view The target view \n\t\t*/\n\t\tpreApply(view: View): void;\t\t\n\t\t/**\n\t\t!#en Function to apply this strategy\n\t\tThe return value is {scale: [scaleX, scaleY], viewport: {cc.Rect}},\n\t\tThe target view can then apply these value to itself, it's preferred not to modify directly its private variables\n\t\t!#zh 调用策略方法\n\t\t@param view view\n\t\t@param designedResolution designedResolution \n\t\t*/\n\t\tapply(view: View, designedResolution: Size): any;\t\t\n\t\t/**\n\t\t!#en\n\t\tManipulation after applying the strategy\n\t\t!#zh 策略调用之后的操作\n\t\t@param view The target view \n\t\t*/\n\t\tpostApply(view: View): void;\t\n\t}\t\n\t/** undefined */\n\texport class EqualToFrame extends ContainerStrategy {\t\n\t}\t\n\t/** undefined */\n\texport class ProportionalToFrame extends ContainerStrategy {\t\n\t}\t\n\t/** undefined */\n\texport class EqualToWindow extends EqualToFrame {\t\n\t}\t\n\t/** undefined */\n\texport class ProportionalToWindow extends ProportionalToFrame {\t\n\t}\t\n\t/** undefined */\n\texport class OriginalContainer extends ContainerStrategy {\t\n\t}\t\n\t/** <p>cc.ResolutionPolicy class is the root strategy class of scale strategy,\n\tits main task is to maintain the compatibility with Cocos2d-x</p> */\n\texport class ResolutionPolicy {\t\t\n\t\t/**\n\t\t\n\t\t@param containerStg The container strategy\n\t\t@param contentStg The content strategy \n\t\t*/\n\t\tconstructor(containerStg: ContainerStrategy, contentStg: ContentStrategy);\t\t\n\t\t/**\n\t\t!#en Manipulation before applying the resolution policy\n\t\t!#zh 策略应用前的操作\n\t\t@param view The target view \n\t\t*/\n\t\tpreApply(view: View): void;\t\t\n\t\t/**\n\t\t!#en Function to apply this resolution policy\n\t\tThe return value is {scale: [scaleX, scaleY], viewport: {cc.Rect}},\n\t\tThe target view can then apply these value to itself, it's preferred not to modify directly its private variables\n\t\t!#zh 调用策略方法\n\t\t@param view The target view\n\t\t@param designedResolution The user defined design resolution \n\t\t*/\n\t\tapply(view: View, designedResolution: Size): any;\t\t\n\t\t/**\n\t\t!#en Manipulation after appyling the strategy\n\t\t!#zh 策略应用之后的操作\n\t\t@param view The target view \n\t\t*/\n\t\tpostApply(view: View): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSetup the container's scale strategy\n\t\t!#zh 设置容器的适配策略\n\t\t@param containerStg containerStg \n\t\t*/\n\t\tsetContainerStrategy(containerStg: ContainerStrategy): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSetup the content's scale strategy\n\t\t!#zh 设置内容的适配策略\n\t\t@param contentStg contentStg \n\t\t*/\n\t\tsetContentStrategy(contentStg: ContentStrategy): void;\t\t\n\t\t/** The entire application is visible in the specified area without trying to preserve the original aspect ratio.<br/>\n\t\tDistortion can occur, and the application may appear stretched or compressed. */\n\t\tstatic EXACT_FIT: number;\t\t\n\t\t/** The entire application fills the specified area, without distortion but possibly with some cropping,<br/>\n\t\twhile maintaining the original aspect ratio of the application. */\n\t\tstatic NO_BORDER: number;\t\t\n\t\t/** The entire application is visible in the specified area without distortion while maintaining the original<br/>\n\t\taspect ratio of the application. Borders can appear on two sides of the application. */\n\t\tstatic SHOW_ALL: number;\t\t\n\t\t/** The application takes the height of the design resolution size and modifies the width of the internal<br/>\n\t\tcanvas so that it fits the aspect ratio of the device<br/>\n\t\tno distortion will occur however you must make sure your application works on different<br/>\n\t\taspect ratios */\n\t\tstatic FIXED_HEIGHT: number;\t\t\n\t\t/** The application takes the width of the design resolution size and modifies the height of the internal<br/>\n\t\tcanvas so that it fits the aspect ratio of the device<br/>\n\t\tno distortion will occur however you must make sure your application works on different<br/>\n\t\taspect ratios */\n\t\tstatic FIXED_WIDTH: number;\t\t\n\t\t/** Unknow policy */\n\t\tstatic UNKNOWN: number;\t\n\t}\t\n\t/** cc.visibleRect is a singleton object which defines the actual visible rect of the current view,\n\tit should represent the same rect as cc.view.getViewportRect() */\n\texport class visibleRect {\t\t\n\t\t/**\n\t\tinitialize\n\t\t@param visibleRect visibleRect \n\t\t*/\n\t\tinit(visibleRect: Rect): void;\t\t\n\t\t/** Top left coordinate of the screen related to the game scene. */\n\t\ttopLeft: Vec2;\t\t\n\t\t/** Top right coordinate of the screen related to the game scene. */\n\t\ttopRight: Vec2;\t\t\n\t\t/** Top center coordinate of the screen related to the game scene. */\n\t\ttop: Vec2;\t\t\n\t\t/** Bottom left coordinate of the screen related to the game scene. */\n\t\tbottomLeft: Vec2;\t\t\n\t\t/** Bottom right coordinate of the screen related to the game scene. */\n\t\tbottomRight: Vec2;\t\t\n\t\t/** Bottom center coordinate of the screen related to the game scene. */\n\t\tbottom: Vec2;\t\t\n\t\t/** Center coordinate of the screen related to the game scene. */\n\t\tcenter: Vec2;\t\t\n\t\t/** Left center coordinate of the screen related to the game scene. */\n\t\tleft: Vec2;\t\t\n\t\t/** Right center coordinate of the screen related to the game scene. */\n\t\tright: Vec2;\t\t\n\t\t/** Width of the screen. */\n\t\twidth: number;\t\t\n\t\t/** Height of the screen. */\n\t\theight: number;\t\n\t}\t\n\t/** The CallbacksHandler is an abstract class that can register and unregister callbacks by key.\n\tSubclasses should implement their own methods about how to invoke the callbacks. */\n\texport class _CallbacksHandler {\t\t\n\t\t/**\n\t\t\n\t\t@param key key\n\t\t@param callback callback\n\t\t@param target can be null \n\t\t*/\n\t\tadd(key: string, callback: Function, target?: any): void;\t\t\n\t\t/**\n\t\tCheck if the specified key has any registered callback. If a callback is also specified,\n\t\tit will only return true if the callback is registered.\n\t\t@param key key\n\t\t@param callback callback\n\t\t@param target target \n\t\t*/\n\t\thasEventListener(key: string, callback?: Function, target?: any): boolean;\t\t\n\t\t/**\n\t\tRemoves all callbacks registered in a certain event type or all callbacks registered with a certain target\n\t\t@param keyOrTarget The event key to be removed or the target to be removed \n\t\t*/\n\t\tremoveAll(keyOrTarget: string|any): void;\t\t\n\t\t/**\n\t\t\n\t\t@param key key\n\t\t@param callback callback\n\t\t@param target target \n\t\t*/\n\t\tremove(key: string, callback: Function, target?: any): void;\t\n\t}\t\n\t/** !#en The callbacks invoker to handle and invoke callbacks by key.\n\t!#zh CallbacksInvoker 用来根据 Key 管理并调用回调方法。 */\n\texport class CallbacksInvoker extends _CallbacksHandler {\t\t\n\t\t/**\n\t\t\n\t\t@param key key\n\t\t@param p1 p1\n\t\t@param p2 p2\n\t\t@param p3 p3\n\t\t@param p4 p4\n\t\t@param p5 p5 \n\t\t*/\n\t\tinvoke(key: string, p1?: any, p2?: any, p3?: any, p4?: any, p5?: any): void;\t\n\t}\t\n\t/** !#en Contains information collected during deserialization\n\t!#zh 包含反序列化时的一些信息 */\n\texport class Details {\t\t\n\t\t/** list of the depends assets' uuid */\n\t\tuuidList: string[];\t\t\n\t\t/** the obj list whose field needs to load asset by uuid */\n\t\tuuidObjList: any[];\t\t\n\t\t/** the corresponding field name which referenced to the asset */\n\t\tuuidPropList: string[];\t\t\n\t\treset(): void;\t\t\n\t\t/**\n\t\t\n\t\t@param obj obj\n\t\t@param propName propName\n\t\t@param uuid uuid \n\t\t*/\n\t\tpush(obj: any, propName: string, uuid: string): void;\t\n\t}\t\n\t/** undefined */\n\texport class url {\t\t\n\t\t/**\n\t\tReturns the url of raw assets, you will only need this if the raw asset is inside the \"resources\" folder.\n\t\t@param url url\n\t\t\n\t\t@example \n\t\t```js\n\t\t---\n\t\tvar url = cc.url.raw(\"textures/myTexture.png\");\n\t\tconsole.log(url);   // \"resources/raw/textures/myTexture.png\"\n\t\t\n\t\t``` \n\t\t*/\n\t\tstatic raw(url: string): string;\t\n\t}\t\n\t/** !#en The module provides utilities for working with file and directory paths\n\t!#zh 用于处理文件与目录的路径的模块 */\n\texport class path {\t\t\n\t\t/**\n\t\t!#en Join strings to be a path.\n\t\t!#zh 拼接字符串为 Path\n\t\t\n\t\t@example \n\t\t```js\n\t\t------------------------------\n\t\tcc.path.join(\"a\", \"b.png\");        //-->\"a/b.png\"\n\t\tcc.path.join(\"a\", \"b\", \"c.png\");   //-->\"a/b/c.png\"\n\t\tcc.path.join(\"a\", \"b\");            //-->\"a/b\"\n\t\tcc.path.join(\"a\", \"b\", \"/\");       //-->\"a/b/\"\n\t\tcc.path.join(\"a\", \"b/\", \"/\");      //-->\"a/b/\"\n\t\t\n\t\t``` \n\t\t*/\n\t\tstatic join(): string;\t\t\n\t\t/**\n\t\t!#en Get the ext name of a path including '.', like '.png'.\n\t\t!#zh 返回 Path 的扩展名，包括 '.'，例如 '.png'。\n\t\t@param pathStr pathStr\n\t\t\n\t\t@example \n\t\t```js\n\t\t---------------------------\n\t\tcc.path.extname(\"a/b.png\");\t\t//-->\".png\"\n\t\tcc.path.extname(\"a/b.png?a=1&b=2\");\t//-->\".png\"\n\t\tcc.path.extname(\"a/b\");\t\t\t//-->null\n\t\tcc.path.extname(\"a/b?a=1&b=2\");\t\t//-->null\n\t\t\n\t\t``` \n\t\t*/\n\t\tstatic extname(pathStr: string): any;\t\t\n\t\t/**\n\t\t!#en Get the main name of a file name\n\t\t!#zh 获取文件名的主名称\n\t\t@param fileName fileName \n\t\t*/\n\t\tstatic mainFileName(fileName: string): string;\t\t\n\t\t/**\n\t\t!#en Get the file name of a file path.\n\t\t!#zh 获取文件路径的文件名。\n\t\t@param pathStr pathStr\n\t\t@param extname extname\n\t\t\n\t\t@example \n\t\t```js\n\t\t---------------------------------\n\t\tcc.path.basename(\"a/b.png\");\t\t\t//-->\"b.png\"\n\t\tcc.path.basename(\"a/b.png?a=1&b=2\");\t\t//-->\"b.png\"\n\t\tcc.path.basename(\"a/b.png\", \".png\");\t\t//-->\"b\"\n\t\tcc.path.basename(\"a/b.png?a=1&b=2\", \".png\");\t//-->\"b\"\n\t\tcc.path.basename(\"a/b.png\", \".txt\");\t\t//-->\"b.png\"\n\t\t\n\t\t``` \n\t\t*/\n\t\tstatic basename(pathStr: string, extname?: string): any;\t\t\n\t\t/**\n\t\t!#en Get dirname of a file path.\n\t\t!#zh 获取文件路径的目录名。\n\t\t@param pathStr pathStr\n\t\t\n\t\t@example \n\t\t```js\n\t\t---------------------------------\n\t\t* unix\n\t\tcc.path.driname(\"a/b/c.png\");\t\t//-->\"a/b\"\n\t\tcc.path.driname(\"a/b/c.png?a=1&b=2\");\t//-->\"a/b\"\n\t\tcc.path.dirname(\"a/b/\");\t\t//-->\"a/b\"\n\t\tcc.path.dirname(\"c.png\");\t\t//-->\"\"\n\t\t* windows\n\t\tcc.path.driname(\"a\\\\b\\\\c.png\");\t\t//-->\"a\\b\"\n\t\tcc.path.driname(\"a\\\\b\\\\c.png?a=1&b=2\");\t//-->\"a\\b\"\n\t\t\n\t\t``` \n\t\t*/\n\t\tstatic dirname(pathStr: string): any;\t\t\n\t\t/**\n\t\t!#en Change extname of a file path.\n\t\t!#zh 更改文件路径的扩展名。\n\t\t@param pathStr pathStr\n\t\t@param extname extname\n\t\t\n\t\t@example \n\t\t```js\n\t\t---------------------------------\n\t\tcc.path.changeExtname(\"a/b.png\", \".plist\");\t\t//-->\"a/b.plist\"\n\t\tcc.path.changeExtname(\"a/b.png?a=1&b=2\", \".plist\");\t//-->\"a/b.plist?a=1&b=2\"\n\t\t\n\t\t``` \n\t\t*/\n\t\tstatic changeExtname(pathStr: string, extname?: string): string;\t\n\t}\t\n\t/** !#en\n\tAffineTransform class represent an affine transform matrix. It's composed basically by translation, rotation, scale transformations.<br/>\n\t!#zh\n\tAffineTransform 类代表一个仿射变换矩阵。它基本上是由平移旋转，缩放转变所组成。<br/> */\n\texport class AffineTransform {\t\t\n\t\t/**\n\t\t!#en Create a AffineTransform object with all contents in the matrix.\n\t\t!#zh 用在矩阵中的所有内容创建一个 AffineTransform 对象。\n\t\t@param a a\n\t\t@param b b\n\t\t@param c c\n\t\t@param d d\n\t\t@param tx tx\n\t\t@param ty ty \n\t\t*/\n\t\tstatic create(a: number, b: number, c: number, d: number, tx: number, ty: number): AffineTransform;\t\t\n\t\t/**\n\t\t!#en\n\t\tCreate a identity transformation matrix: <br/>\n\t\t[ 1, 0, 0, <br/>\n\t\t  0, 1, 0 ]\n\t\t!#zh\n\t\t单位矩阵：<br/>\n\t\t[ 1, 0, 0, <br/>\n\t\t  0, 1, 0 ] \n\t\t*/\n\t\tstatic identity(): AffineTransform;\t\t\n\t\t/**\n\t\t!#en Clone a AffineTransform object from the specified transform.\n\t\t!#zh 克隆指定的 AffineTransform 对象。\n\t\t@param t t \n\t\t*/\n\t\tstatic clone(t: AffineTransform): AffineTransform;\t\t\n\t\t/**\n\t\t!#en\n\t\tConcatenate a transform matrix to another\n\t\tThe results are reflected in the out affine transform\n\t\tout = t1 * t2\n\t\tThis function is memory free, you should create the output affine transform by yourself and manage its memory.\n\t\t!#zh\n\t\t拼接两个矩阵，将结果保存到 out 矩阵。这个函数不创建任何内存，你需要先创建 AffineTransform 对象用来存储结果，并作为第一个参数传入函数。\n\t\tout = t1 * t2\n\t\t@param out Out object to store the concat result\n\t\t@param t1 The first transform object.\n\t\t@param t2 The transform object to concatenate. \n\t\t*/\n\t\tstatic concat(out: AffineTransform, t1: AffineTransform, t2: AffineTransform): AffineTransform;\t\t\n\t\t/**\n\t\t!#en Get the invert transform of an AffineTransform object.\n\t\tThis function is memory free, you should create the output affine transform by yourself and manage its memory.\n\t\t!#zh 求逆矩阵。这个函数不创建任何内存，你需要先创建 AffineTransform 对象用来存储结果，并作为第一个参数传入函数。\n\t\t@param out out\n\t\t@param t t \n\t\t*/\n\t\tstatic invert(out: AffineTransform, t: AffineTransform): AffineTransform;\t\t\n\t\t/**\n\t\t!#en Get an AffineTransform object from a given matrix 4x4.\n\t\tThis function is memory free, you should create the output affine transform by yourself and manage its memory.\n\t\t!#zh 从一个 4x4 Matrix 获取 AffineTransform 对象。这个函数不创建任何内存，你需要先创建 AffineTransform 对象用来存储结果，并作为第一个参数传入函数。\n\t\t@param out out\n\t\t@param mat mat \n\t\t*/\n\t\tstatic invert(out: AffineTransform, mat: Mat4): AffineTransform;\t\t\n\t\t/**\n\t\t!#en Apply the affine transformation on a point.\n\t\tThis function is memory free, you should create the output Vec2 by yourself and manage its memory.\n\t\t!#zh 对一个点应用矩阵变换。这个函数不创建任何内存，你需要先创建一个 Vec2 对象用来存储结果，并作为第一个参数传入函数。\n\t\t@param out The output point to store the result\n\t\t@param point Point to apply transform or x.\n\t\t@param transOrY transform matrix or y.\n\t\t@param t transform matrix. \n\t\t*/\n\t\tstatic transformVec2(out: Vec2, point: Vec2|number, transOrY: AffineTransform|number, t?: AffineTransform): Vec2;\t\t\n\t\t/**\n\t\t!#en Apply the affine transformation on a size.\n\t\tThis function is memory free, you should create the output Size by yourself and manage its memory.\n\t\t!#zh 应用仿射变换矩阵到 Size 上。这个函数不创建任何内存，你需要先创建一个 Size 对象用来存储结果，并作为第一个参数传入函数。\n\t\t@param out The output point to store the result\n\t\t@param size size\n\t\t@param t t \n\t\t*/\n\t\tstatic transformSize(out: Size, size: Size, t: AffineTransform): Size;\t\t\n\t\t/**\n\t\t!#en Apply the affine transformation on a rect.\n\t\tThis function is memory free, you should create the output Rect by yourself and manage its memory.\n\t\t!#zh 应用仿射变换矩阵到 Rect 上。这个函数不创建任何内存，你需要先创建一个 Rect 对象用来存储结果，并作为第一个参数传入函数。\n\t\t@param out out\n\t\t@param rect rect\n\t\t@param anAffineTransform anAffineTransform \n\t\t*/\n\t\tstatic transformRect(out: Rect, rect: Rect, anAffineTransform: AffineTransform): Rect;\t\t\n\t\t/**\n\t\t!#en Apply the affine transformation on a rect, and truns to an Oriented Bounding Box.\n\t\tThis function is memory free, you should create the output vectors by yourself and manage their memory.\n\t\t!#zh 应用仿射变换矩阵到 Rect 上, 并转换为有向包围盒。这个函数不创建任何内存，你需要先创建包围盒的四个 Vector 对象用来存储结果，并作为前四个参数传入函数。\n\t\t@param out_bl out_bl\n\t\t@param out_tl out_tl\n\t\t@param out_tr out_tr\n\t\t@param out_br out_br\n\t\t@param rect rect\n\t\t@param anAffineTransform anAffineTransform \n\t\t*/\n\t\tstatic transformObb(out_bl: Vec2, out_tl: Vec2, out_tr: Vec2, out_br: Vec2, rect: Rect, anAffineTransform: AffineTransform): void;\t\n\t}\t\n\t/** A base node for CCNode, it will:\n\t- maintain scene hierarchy and active logic\n\t- notifications if some properties changed\n\t- define some interfaces shares between CCNode\n\t- define machanisms for Enity Component Systems\n\t- define prefab and serialize functions */\n\texport class _BaseNode extends Object implements EventTarget {\t\t\n\t\t/** !#en Name of node.\n\t\t!#zh 该节点名称。 */\n\t\tname: string;\t\t\n\t\t/** !#en The uuid for editor, will be stripped before building project.\n\t\t!#zh 主要用于编辑器的 uuid，在编辑器下可用于持久化存储，在项目构建之后将变成自增的 id。 */\n\t\tuuid: string;\t\t\n\t\t/** !#en All children nodes.\n\t\t!#zh 节点的所有子节点。 */\n\t\tchildren: Node[];\t\t\n\t\t/** !#en All children nodes.\n\t\t!#zh 节点的子节点数量。 */\n\t\tchildrenCount: number;\t\t\n\t\t/** !#en\n\t\tThe local active state of this node.<br/>\n\t\tNote that a Node may be inactive because a parent is not active, even if this returns true.<br/>\n\t\tUse {{#crossLink \"Node/activeInHierarchy:property\"}}{{/crossLink}} if you want to check if the Node is actually treated as active in the scene.\n\t\t!#zh\n\t\t当前节点的自身激活状态。<br/>\n\t\t值得注意的是，一个节点的父节点如果不被激活，那么即使它自身设为激活，它仍然无法激活。<br/>\n\t\t如果你想检查节点在场景中实际的激活状态可以使用 {{#crossLink \"Node/activeInHierarchy:property\"}}{{/crossLink}}。 */\n\t\tactive: boolean;\t\t\n\t\t/** !#en Indicates whether this node is active in the scene.\n\t\t!#zh 表示此节点是否在场景中激活。 */\n\t\tactiveInHierarchy: boolean;\t\t\n\t\t/**\n\t\t\n\t\t@param name name \n\t\t*/\n\t\tconstructor(name?: string);\t\t\n\t\t/** !#en The parent of the node.\n\t\t!#zh 该节点的父节点。 */\n\t\tparent: Node;\t\t\n\t\t/**\n\t\t!#en Get parent of the node.\n\t\t!#zh 获取该节点的父节点。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar parent = this.node.getParent();\n\t\t``` \n\t\t*/\n\t\tgetParent(): Node;\t\t\n\t\t/**\n\t\t!#en Set parent of the node.\n\t\t!#zh 设置该节点的父节点。\n\t\t@param value value\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.setParent(newNode);\n\t\t``` \n\t\t*/\n\t\tsetParent(value: Node): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tProperties configuration function <br/>\n\t\tAll properties in attrs will be set to the node, <br/>\n\t\twhen the setter of the node is available, <br/>\n\t\tthe property will be set via setter function.<br/>\n\t\t!#zh 属性配置函数。在 attrs 的所有属性将被设置为节点属性。\n\t\t@param attrs Properties to be set to node\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar attrs = { key: 0, num: 100 };\n\t\tnode.attr(attrs);\n\t\t``` \n\t\t*/\n\t\tattr(attrs: any): void;\t\t\n\t\t/**\n\t\t!#en Returns a child from the container given its uuid.\n\t\t!#zh 通过 uuid 获取节点的子节点。\n\t\t@param uuid The uuid to find the child node.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar child = node.getChildByUuid(uuid);\n\t\t``` \n\t\t*/\n\t\tgetChildByUuid(uuid: string): Node;\t\t\n\t\t/**\n\t\t!#en Returns a child from the container given its name.\n\t\t!#zh 通过名称获取节点的子节点。\n\t\t@param name A name to find the child node.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar child = node.getChildByName(\"Test Node\");\n\t\t``` \n\t\t*/\n\t\tgetChildByName(name: string): Node;\t\t\n\t\t/**\n\t\t!#en\n\t\tInserts a child to the node at a specified index.\n\t\t!#zh\n\t\t插入子节点到指定位置\n\t\t@param child the child node to be inserted\n\t\t@param siblingIndex the sibling index to place the child in\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.insertChild(child, 2);\n\t\t``` \n\t\t*/\n\t\tinsertChild(child: Node, siblingIndex: number): void;\t\t\n\t\t/**\n\t\t!#en Get the sibling index.\n\t\t!#zh 获取同级索引。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar index = node.getSiblingIndex();\n\t\t``` \n\t\t*/\n\t\tgetSiblingIndex(): number;\t\t\n\t\t/**\n\t\t!#en Set the sibling index of this node.\n\t\t!#zh 设置节点同级索引。\n\t\t@param index index\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.setSiblingIndex(1);\n\t\t``` \n\t\t*/\n\t\tsetSiblingIndex(index: number): void;\t\t\n\t\t/**\n\t\t!#en Walk though the sub children tree of the current node.\n\t\tEach node, including the current node, in the sub tree will be visited two times, before all children and after all children.\n\t\tThis function call is not recursive, it's based on stack.\n\t\tPlease don't walk any other node inside the walk process.\n\t\t!#zh 遍历该节点的子树里的所有节点并按规则执行回调函数。\n\t\t对子树中的所有节点，包含当前节点，会执行两次回调，prefunc 会在访问它的子节点之前调用，postfunc 会在访问所有子节点之后调用。\n\t\t这个函数的实现不是基于递归的，而是基于栈展开递归的方式。\n\t\t请不要在 walk 过程中对任何其他的节点嵌套执行 walk。\n\t\t@param prefunc The callback to process node when reach the node for the first time\n\t\t@param postfunc The callback to process node when re-visit the node after walked all children in its sub tree\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.walk(function (target) {\n\t\t    console.log('Walked through node ' + target.name + ' for the first time');\n\t\t}, function (target) {\n\t\t    console.log('Walked through node ' + target.name + ' after walked all children in its sub tree');\n\t\t});\n\t\t``` \n\t\t*/\n\t\twalk(prefunc: (target: _BaseNode) => void, postfunc: (target: _BaseNode) => void): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemove itself from its parent node. If cleanup is `true`, then also remove all events and actions. <br/>\n\t\tIf the cleanup parameter is not passed, it will force a cleanup, so it is recommended that you always pass in the `false` parameter when calling this API.<br/>\n\t\tIf the node orphan, then nothing happens.\n\t\t!#zh\n\t\t从父节点中删除该节点。如果不传入 cleanup 参数或者传入 `true`，那么这个节点上所有绑定的事件、action 都会被删除。<br/>\n\t\t因此建议调用这个 API 时总是传入 `false` 参数。<br/>\n\t\t如果这个节点是一个孤节点，那么什么都不会发生。\n\t\t@param cleanup true if all actions and callbacks on this node should be removed, false otherwise.\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.removeFromParent();\n\t\tnode.removeFromParent(false);\n\t\t``` \n\t\t*/\n\t\tremoveFromParent(cleanup?: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemoves a child from the container. It will also cleanup all running actions depending on the cleanup parameter. </p>\n\t\tIf the cleanup parameter is not passed, it will force a cleanup. <br/>\n\t\t\"remove\" logic MUST only be on this method  <br/>\n\t\tIf a class wants to extend the 'removeChild' behavior it only needs <br/>\n\t\tto override this method.\n\t\t!#zh\n\t\t移除节点中指定的子节点，是否需要清理所有正在运行的行为取决于 cleanup 参数。<br/>\n\t\t如果 cleanup 参数不传入，默认为 true 表示清理。<br/>\n\t\t@param child The child node which will be removed.\n\t\t@param cleanup true if all running actions and callbacks on the child node will be cleanup, false otherwise.\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.removeChild(newNode);\n\t\tnode.removeChild(newNode, false);\n\t\t``` \n\t\t*/\n\t\tremoveChild(child: Node, cleanup?: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemoves all children from the container and do a cleanup all running actions depending on the cleanup parameter. <br/>\n\t\tIf the cleanup parameter is not passed, it will force a cleanup.\n\t\t!#zh\n\t\t移除节点所有的子节点，是否需要清理所有正在运行的行为取决于 cleanup 参数。<br/>\n\t\t如果 cleanup 参数不传入，默认为 true 表示清理。\n\t\t@param cleanup true if all running actions on all children nodes should be cleanup, false otherwise.\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.removeAllChildren();\n\t\tnode.removeAllChildren(false);\n\t\t``` \n\t\t*/\n\t\tremoveAllChildren(cleanup?: boolean): void;\t\t\n\t\t/**\n\t\t!#en Is this node a child of the given node?\n\t\t!#zh 是否是指定节点的子节点？\n\t\t@param parent parent\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.isChildOf(newNode);\n\t\t``` \n\t\t*/\n\t\tisChildOf(parent: Node): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the component of supplied type if the node has one attached, null if it doesn't.<br/>\n\t\tYou can also get component in the node by passing in the name of the script.\n\t\t!#zh\n\t\t获取节点上指定类型的组件，如果节点有附加指定类型的组件，则返回，如果没有则为空。<br/>\n\t\t传入参数也可以是脚本的名称。\n\t\t@param typeOrClassName typeOrClassName\n\t\t\n\t\t@example \n\t\t```js\n\t\t// get sprite component.\n\t\tvar sprite = node.getComponent(cc.Sprite);\n\t\t// get custom test calss.\n\t\tvar test = node.getComponent(\"Test\");\n\t\t``` \n\t\t*/\n\t\tgetComponent<T extends Component>(type: {prototype: T}): T;\n\t\tgetComponent(className: string): any;\t\t\n\t\t/**\n\t\t!#en Returns all components of supplied type in the node.\n\t\t!#zh 返回节点上指定类型的所有组件。\n\t\t@param typeOrClassName typeOrClassName\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar sprites = node.getComponents(cc.Sprite);\n\t\tvar tests = node.getComponents(\"Test\");\n\t\t``` \n\t\t*/\n\t\tgetComponents<T extends Component>(type: {prototype: T}): T[];\n\t\tgetComponents(className: string): any[];\t\t\n\t\t/**\n\t\t!#en Returns the component of supplied type in any of its children using depth first search.\n\t\t!#zh 递归查找所有子节点中第一个匹配指定类型的组件。\n\t\t@param typeOrClassName typeOrClassName\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar sprite = node.getComponentInChildren(cc.Sprite);\n\t\tvar Test = node.getComponentInChildren(\"Test\");\n\t\t``` \n\t\t*/\n\t\tgetComponentInChildren<T extends Component>(type: {prototype: T}): T;\n\t\tgetComponentInChildren(className: string): any;\t\t\n\t\t/**\n\t\t!#en Returns all components of supplied type in self or any of its children.\n\t\t!#zh 递归查找自身或所有子节点中指定类型的组件\n\t\t@param typeOrClassName typeOrClassName\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar sprites = node.getComponentsInChildren(cc.Sprite);\n\t\tvar tests = node.getComponentsInChildren(\"Test\");\n\t\t``` \n\t\t*/\n\t\tgetComponentsInChildren<T extends Component>(type: {prototype: T}): T[];\n\t\tgetComponentsInChildren(className: string): any[];\t\t\n\t\t/**\n\t\t!#en Adds a component class to the node. You can also add component to node by passing in the name of the script.\n\t\t!#zh 向节点添加一个指定类型的组件类，你还可以通过传入脚本的名称来添加组件。\n\t\t@param typeOrClassName The constructor or the class name of the component to add\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar sprite = node.addComponent(cc.Sprite);\n\t\tvar test = node.addComponent(\"Test\");\n\t\t``` \n\t\t*/\n\t\taddComponent<T extends Component>(type: {new(): T}): T;\n\t\taddComponent(className: string): any;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemoves a component identified by the given name or removes the component object given.\n\t\tYou can also use component.destroy() if you already have the reference.\n\t\t!#zh\n\t\t删除节点上的指定组件，传入参数可以是一个组件构造函数或组件名，也可以是已经获得的组件引用。\n\t\t如果你已经获得组件引用，你也可以直接调用 component.destroy()\n\t\t@param component The need remove component.\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.removeComponent(cc.Sprite);\n\t\tvar Test = require(\"Test\");\n\t\tnode.removeComponent(Test);\n\t\t``` \n\t\t*/\n\t\tremoveComponent(component: string|Function|Component): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tDestroy all children from the node, and release all their own references to other objects.<br/>\n\t\tActual destruct operation will delayed until before rendering.\n\t\t!#zh\n\t\t销毁所有子节点，并释放所有它们对其它对象的引用。<br/>\n\t\t实际销毁操作会延迟到当前帧渲染前执行。\n\t\t\n\t\t@example \n\t\t```js\n\t\tnode.destroyAllChildren();\n\t\t``` \n\t\t*/\n\t\tdestroyAllChildren(): void;\t\t\n\t\t/**\n\t\t!#en Checks whether the EventTarget object has any callback registered for a specific type of event.\n\t\t!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。\n\t\t@param type The type of event. \n\t\t*/\n\t\thasEventListener(type: string): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget.\n\t\tThis type of event should be triggered via `emit`.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.on('fire', function () {\n\t\t    cc.log(\"fire in the hole\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\ton<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemoves the listeners previously registered with the same type, callback, target and or useCapture,\n\t\tif only type is passed as parameter, all listeners registered with that type will be removed.\n\t\t!#zh\n\t\t删除之前用同类型，回调，目标或 useCapture 注册的事件监听器，如果只传递 type，将会删除 type 类型的所有事件监听器。\n\t\t@param type A string representing the event type being removed.\n\t\t@param callback The callback to remove.\n\t\t@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed\n\t\t\n\t\t@example \n\t\t```js\n\t\t// register fire eventListener\n\t\tvar callback = eventTarget.on('fire', function () {\n\t\t    cc.log(\"fire in the hole\");\n\t\t}, target);\n\t\t// remove fire event listener\n\t\teventTarget.off('fire', callback, target);\n\t\t// remove all fire event listeners\n\t\teventTarget.off('fire');\n\t\t``` \n\t\t*/\n\t\toff(type: string, callback?: Function, target?: any): void;\t\t\n\t\t/**\n\t\t!#en Removes all callbacks previously registered with the same target (passed as parameter).\n\t\tThis is not for removing all listeners in the current event target,\n\t\tand this is not for removing all listeners the target parameter have registered.\n\t\tIt's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.\n\t\t!#zh 在当前 EventTarget 上删除指定目标（target 参数）注册的所有事件监听器。\n\t\t这个函数无法删除当前 EventTarget 的所有事件监听器，也无法删除 target 参数所注册的所有事件监听器。\n\t\t这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。\n\t\t@param target The target to be searched for all related listeners \n\t\t*/\n\t\ttargetOff(target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRegister an callback of a specific event type on the EventTarget,\n\t\tthe callback will remove itself after the first time it is triggered.\n\t\t!#zh\n\t\t注册事件目标的特定事件类型回调，回调会在第一时间被触发后删除自身。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param callback The callback that will be invoked when the event is dispatched.\n\t\t                             The callback is ignored if it is a duplicate (the callbacks are unique).\n\t\t@param target The target (this object) to invoke the callback, can be null\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.once('fire', function () {\n\t\t    cc.log(\"this is the callback and will be invoked only once\");\n\t\t}, node);\n\t\t``` \n\t\t*/\n\t\tonce(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tTrigger an event directly with the event name and necessary arguments.\n\t\t!#zh\n\t\t通过事件名发送自定义事件\n\t\t@param type event type\n\t\t@param arg1 First argument\n\t\t@param arg2 Second argument\n\t\t@param arg3 Third argument\n\t\t@param arg4 Fourth argument\n\t\t@param arg5 Fifth argument\n\t\t\n\t\t@example \n\t\t```js\n\t\teventTarget.emit('fire', event);\n\t\teventTarget.emit('fire', message, emitter);\n\t\t``` \n\t\t*/\n\t\temit(type: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSend an event with the event object.\n\t\t!#zh\n\t\t通过事件对象派发事件\n\t\t@param event event \n\t\t*/\n\t\tdispatchEvent(event: Event): void;\t\n\t}\t\n\t/** misc utilities */\n\texport class misc {\t\t\n\t\t/**\n\t\t!#en Clamp a value between from and to.\n\t\t!#zh\n\t\t限定浮点数的最大最小值。<br/>\n\t\t数值大于 max_inclusive 则返回 max_inclusive。<br/>\n\t\t数值小于 min_inclusive 则返回 min_inclusive。<br/>\n\t\t否则返回自身。\n\t\t@param value value\n\t\t@param min_inclusive min_inclusive\n\t\t@param max_inclusive max_inclusive\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v1 = cc.misc.clampf(20, 0, 20); // 20;\n\t\tvar v2 = cc.misc.clampf(-1, 0, 20); //  0;\n\t\tvar v3 = cc.misc.clampf(10, 0, 20); // 10;\n\t\t``` \n\t\t*/\n\t\tstatic clampf(value: number, min_inclusive: number, max_inclusive: number): number;\t\t\n\t\t/**\n\t\t!#en Clamp a value between 0 and 1.\n\t\t!#zh 限定浮点数的取值范围为 0 ~ 1 之间。\n\t\t@param value value\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v1 = cc.misc.clamp01(20);  // 1;\n\t\tvar v2 = cc.misc.clamp01(-1);  // 0;\n\t\tvar v3 = cc.misc.clamp01(0.5); // 0.5;\n\t\t``` \n\t\t*/\n\t\tstatic clamp01(value: number): number;\t\t\n\t\t/**\n\t\tLinear interpolation between 2 numbers, the ratio sets how much it is biased to each end\n\t\t@param a number A\n\t\t@param b number B\n\t\t@param r ratio between 0 and 1\n\t\t\n\t\t@example \n\t\t```js\n\t\t----\n\t\tlerp\n\t\tcc.misc.lerp(2,10,0.5)//returns 6\n\t\tcc.misc.lerp(2,10,0.2)//returns 3.6\n\t\t\n\t\t``` \n\t\t*/\n\t\tstatic lerp(a: number, b: number, r: number): number;\t\t\n\t\t/**\n\t\tconverts degrees to radians\n\t\t@param angle angle \n\t\t*/\n\t\tstatic degreesToRadians(angle: number): number;\t\t\n\t\t/**\n\t\tconverts radians to degrees\n\t\t@param angle angle \n\t\t*/\n\t\tstatic radiansToDegrees(angle: number): number;\t\n\t}\t\n\t/** !#en\n\tRepresentation of RGBA colors.\n\t\n\tEach color component is a floating point value with a range from 0 to 255.\n\t\n\tYou can also use the convenience method {{#crossLink \"cc/color:method\"}}cc.color{{/crossLink}} to create a new Color.\n\t\n\t!#zh\n\tcc.Color 用于表示颜色。\n\t\n\t它包含 RGBA 四个以浮点数保存的颜色分量，每个的值都在 0 到 255 之间。\n\t\n\t您也可以通过使用 {{#crossLink \"cc/color:method\"}}cc.color{{/crossLink}} 的便捷方法来创建一个新的 Color。 */\n\texport class Color extends ValueType {\t\t\n\t\t/**\n\t\t\n\t\t@param r red component of the color, default value is 0.\n\t\t@param g green component of the color, defualt value is 0.\n\t\t@param b blue component of the color, default value is 0.\n\t\t@param a alpha component of the color, default value is 255. \n\t\t*/\n\t\tconstructor(r?: number, g?: number, b?: number, a?: number);\t\t\n\t\t/** !#en Solid white, RGBA is [255, 255, 255, 255].\n\t\t!#zh 纯白色，RGBA 是 [255, 255, 255, 255]。 */\n\t\tstatic WHITE: Color;\t\t\n\t\t/** !#en Solid black, RGBA is [0, 0, 0, 255].\n\t\t!#zh 纯黑色，RGBA 是 [0, 0, 0, 255]。 */\n\t\tstatic BLACK: Color;\t\t\n\t\t/** !#en Transparent, RGBA is [0, 0, 0, 0].\n\t\t!#zh 透明，RGBA 是 [0, 0, 0, 0]。 */\n\t\tstatic TRANSPARENT: Color;\t\t\n\t\t/** !#en Grey, RGBA is [127.5, 127.5, 127.5].\n\t\t!#zh 灰色，RGBA 是 [127.5, 127.5, 127.5]。 */\n\t\tstatic GRAY: Color;\t\t\n\t\t/** !#en Solid red, RGBA is [255, 0, 0].\n\t\t!#zh 纯红色，RGBA 是 [255, 0, 0]。 */\n\t\tstatic RED: Color;\t\t\n\t\t/** !#en Solid green, RGBA is [0, 255, 0].\n\t\t!#zh 纯绿色，RGBA 是 [0, 255, 0]。 */\n\t\tstatic GREEN: Color;\t\t\n\t\t/** !#en Solid blue, RGBA is [0, 0, 255].\n\t\t!#zh 纯蓝色，RGBA 是 [0, 0, 255]。 */\n\t\tstatic BLUE: Color;\t\t\n\t\t/** !#en Yellow, RGBA is [255, 235, 4].\n\t\t!#zh 黄色，RGBA 是 [255, 235, 4]。 */\n\t\tstatic YELLOW: Color;\t\t\n\t\t/** !#en Orange, RGBA is [255, 127, 0].\n\t\t!#zh 橙色，RGBA 是 [255, 127, 0]。 */\n\t\tstatic ORANGE: Color;\t\t\n\t\t/** !#en Cyan, RGBA is [0, 255, 255].\n\t\t!#zh 青色，RGBA 是 [0, 255, 255]。 */\n\t\tstatic CYAN: Color;\t\t\n\t\t/** !#en Magenta, RGBA is [255, 0, 255].\n\t\t!#zh 洋红色（品红色），RGBA 是 [255, 0, 255]。 */\n\t\tstatic MAGENTA: Color;\t\t\n\t\t/**\n\t\t!#en Clone a new color from the current color.\n\t\t!#zh 克隆当前颜色。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar color = new cc.Color();\n\t\tvar newColor = color.clone();// Color {r: 0, g: 0, b: 0, a: 255}\n\t\t``` \n\t\t*/\n\t\tclone(): Color;\t\t\n\t\t/**\n\t\t!#en TODO\n\t\t!#zh 判断两个颜色是否相等。\n\t\t@param other other\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar color1 = cc.Color.WHITE;\n\t\tvar color2 = new cc.Color(255, 255, 255);\n\t\tcc.log(color1.equals(color2)); // true;\n\t\tcolor2 = cc.Color.RED;\n\t\tcc.log(color2.equals(color1)); // false;\n\t\t``` \n\t\t*/\n\t\tequals(other: Color): boolean;\t\t\n\t\t/**\n\t\t!#en TODO\n\t\t!#zh 线性插值\n\t\t@param to to\n\t\t@param ratio the interpolation coefficient.\n\t\t@param out optional, the receiving vector.\n\t\t\n\t\t@example \n\t\t```js\n\t\t// Converts a white color to a black one trough time.\n\t\tupdate: function (dt) {\n\t\t    var color = this.node.color;\n\t\t    if (color.equals(cc.Color.BLACK)) {\n\t\t        return;\n\t\t    }\n\t\t    this.ratio += dt * 0.1;\n\t\t    this.node.color = cc.Color.WHITE.lerp(cc.Color.BLACK, ratio);\n\t\t}\n\t\t\n\t\t``` \n\t\t*/\n\t\tlerp(to: Color, ratio: number, out?: Color): Color;\t\t\n\t\t/**\n\t\t!#en TODO\n\t\t!#zh 转换为方便阅读的字符串。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar color = cc.Color.WHITE;\n\t\tcolor.toString(); // \"rgba(255, 255, 255, 255)\"\n\t\t``` \n\t\t*/\n\t\ttoString(): string;\t\t\n\t\t/**\n\t\t!#en Gets red channel value\n\t\t!#zh 获取当前颜色的红色值。 \n\t\t*/\n\t\tgetR(): number;\t\t\n\t\t/**\n\t\t!#en Sets red value and return the current color object\n\t\t!#zh 设置当前的红色值，并返回当前对象。\n\t\t@param red the new Red component.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar color = new cc.Color();\n\t\tcolor.setR(255); // Color {r: 255, g: 0, b: 0, a: 255}\n\t\t``` \n\t\t*/\n\t\tsetR(red: number): Color;\t\t\n\t\t/**\n\t\t!#en Gets green channel value\n\t\t!#zh 获取当前颜色的绿色值。 \n\t\t*/\n\t\tgetG(): number;\t\t\n\t\t/**\n\t\t!#en Sets green value and return the current color object\n\t\t!#zh 设置当前的绿色值，并返回当前对象。\n\t\t@param green the new Green component.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar color = new cc.Color();\n\t\tcolor.setG(255); // Color {r: 0, g: 255, b: 0, a: 255}\n\t\t``` \n\t\t*/\n\t\tsetG(green: number): Color;\t\t\n\t\t/**\n\t\t!#en Gets blue channel value\n\t\t!#zh 获取当前颜色的蓝色值。 \n\t\t*/\n\t\tgetB(): number;\t\t\n\t\t/**\n\t\t!#en Sets blue value and return the current color object\n\t\t!#zh 设置当前的蓝色值，并返回当前对象。\n\t\t@param blue the new Blue component.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar color = new cc.Color();\n\t\tcolor.setB(255); // Color {r: 0, g: 0, b: 255, a: 255}\n\t\t``` \n\t\t*/\n\t\tsetB(blue: number): Color;\t\t\n\t\t/**\n\t\t!#en Gets alpha channel value\n\t\t!#zh 获取当前颜色的透明度值。 \n\t\t*/\n\t\tgetA(): number;\t\t\n\t\t/**\n\t\t!#en Sets alpha value and return the current color object\n\t\t!#zh 设置当前的透明度，并返回当前对象。\n\t\t@param alpha the new Alpha component.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar color = new cc.Color();\n\t\tcolor.setA(0); // Color {r: 0, g: 0, b: 0, a: 0}\n\t\t``` \n\t\t*/\n\t\tsetA(alpha: number): Color;\t\t\n\t\t/**\n\t\t!#en Convert color to css format.\n\t\t!#zh 转换为 CSS 格式。\n\t\t@param opt \"rgba\", \"rgb\", \"#rgb\" or \"#rrggbb\".\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar color = cc.Color.BLACK;\n\t\tcolor.toCSS();          // \"#000\";\n\t\tcolor.toCSS(\"rgba\");    // \"rgba(0,0,0,1.00)\";\n\t\tcolor.toCSS(\"rgb\");     // \"rgba(0,0,0)\";\n\t\tcolor.toCSS(\"#rgb\");    // \"#000\";\n\t\tcolor.toCSS(\"#rrggbb\"); // \"#000000\";\n\t\t``` \n\t\t*/\n\t\ttoCSS(opt: string): string;\t\t\n\t\t/**\n\t\t!#en Read hex string and store color data into the current color object, the hex string must be formated as rgba or rgb.\n\t\t!#zh 读取 16 进制颜色。\n\t\t@param hexString hexString\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar color = cc.Color.BLACK;\n\t\tcolor.fromHEX(\"#FFFF33\"); // Color {r: 255, g: 255, b: 51, a: 255};\n\t\t``` \n\t\t*/\n\t\tfromHEX(hexString: string): Color;\t\t\n\t\t/**\n\t\t!#en convert Color to HEX color string.\n\t\te.g.  cc.color(255,6,255)  to : \"#ff06ff\"\n\t\t!#zh 转换为 16 进制。\n\t\t@param fmt \"#rgb\", \"#rrggbb\" or \"#rrggbbaa\".\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar color = cc.Color.BLACK;\n\t\tcolor.toHEX(\"#rgb\");     // \"000\";\n\t\tcolor.toHEX(\"#rrggbb\");  // \"000000\";\n\t\t``` \n\t\t*/\n\t\ttoHEX(fmt: string): string;\t\t\n\t\t/**\n\t\t!#en Convert to 24bit rgb value.\n\t\t!#zh 转换为 24bit 的 RGB 值。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar color = cc.Color.YELLOW;\n\t\tcolor.toRGBValue(); // 16771844;\n\t\t``` \n\t\t*/\n\t\ttoRGBValue(): number;\t\t\n\t\t/**\n\t\t!#en Read HSV model color and convert to RGB color\n\t\t!#zh 读取 HSV（色彩模型）格式。\n\t\t@param h h\n\t\t@param s s\n\t\t@param v v\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar color = cc.Color.YELLOW;\n\t\tcolor.fromHSV(0, 0, 1); // Color {r: 255, g: 255, b: 255, a: 255};\n\t\t``` \n\t\t*/\n\t\tfromHSV(h: number, s: number, v: number): Color;\t\t\n\t\t/**\n\t\t!#en Transform to HSV model color\n\t\t!#zh 转换为 HSV（色彩模型）格式。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar color = cc.Color.YELLOW;\n\t\tcolor.toHSV(); // Object {h: 0.1533864541832669, s: 0.9843137254901961, v: 1};\n\t\t``` \n\t\t*/\n\t\ttoHSV(): any;\t\n\t}\t\n\t/** !#en Representation of 4*4 matrix.\n\t!#zh 表示 4*4 矩阵 */\n\texport class Mat4 extends ValueType {\t\t\n\t\t/**\n\t\t!#en\n\t\tConstructor\n\t\tsee {{#crossLink \"cc/mat4:method\"}}cc.mat4{{/crossLink}}\n\t\t!#zh\n\t\t构造函数，可查看 {{#crossLink \"cc/mat4:method\"}}cc.mat4{{/crossLink}}\n\t\t@param m00 Component in column 0, row 0 position (index 0)\n\t\t@param m01 Component in column 0, row 1 position (index 1)\n\t\t@param m02 Component in column 0, row 2 position (index 2)\n\t\t@param m03 Component in column 0, row 3 position (index 3)\n\t\t@param m10 Component in column 1, row 0 position (index 4)\n\t\t@param m11 Component in column 1, row 1 position (index 5)\n\t\t@param m12 Component in column 1, row 2 position (index 6)\n\t\t@param m13 Component in column 1, row 3 position (index 7)\n\t\t@param m20 Component in column 2, row 0 position (index 8)\n\t\t@param m21 Component in column 2, row 1 position (index 9)\n\t\t@param m22 Component in column 2, row 2 position (index 10)\n\t\t@param m23 Component in column 2, row 3 position (index 11)\n\t\t@param m30 Component in column 3, row 0 position (index 12)\n\t\t@param m31 Component in column 3, row 1 position (index 13)\n\t\t@param m32 Component in column 3, row 2 position (index 14)\n\t\t@param m33 Component in column 3, row 3 position (index 15) \n\t\t*/\n\t\tconstructor(m00: number, m01: number, m02: number, m03: number, m10: number, m11: number, m12: number, m13: number, m20: number, m21: number, m22: number, m23: number, m30: number, m31: number, m32: number, m33: number);\t\t\n\t\t/**\n\t\t!#en clone a Mat4 object\n\t\t!#zh 克隆一个 Mat4 对象 \n\t\t*/\n\t\tclone(): Mat4;\t\t\n\t\t/**\n\t\t!#en Sets the matrix with another one's value\n\t\t!#zh 用另一个矩阵设置这个矩阵的值。\n\t\t@param srcObj srcObj \n\t\t*/\n\t\tset(srcObj: Mat4): Mat4;\t\t\n\t\t/**\n\t\t!#en Check whether two matrix equal\n\t\t!#zh 当前的矩阵是否与指定的矩阵相等。\n\t\t@param other other \n\t\t*/\n\t\tequals(other: Mat4): boolean;\t\t\n\t\t/**\n\t\t!#en Check whether two matrix equal with default degree of variance.\n\t\t!#zh\n\t\t近似判断两个矩阵是否相等。<br/>\n\t\t判断 2 个矩阵是否在默认误差范围之内，如果在则返回 true，反之则返回 false。\n\t\t@param other other \n\t\t*/\n\t\tfuzzyEquals(other: Mat4): boolean;\t\t\n\t\t/**\n\t\t!#en Transform to string with matrix informations\n\t\t!#zh 转换为方便阅读的字符串。 \n\t\t*/\n\t\ttoString(): string;\t\t\n\t\t/**\n\t\tSet the matrix to the identity matrix \n\t\t*/\n\t\tidentity(): Mat4;\t\t\n\t\t/**\n\t\tTranspose the values of a mat4\n\t\t@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created. \n\t\t*/\n\t\ttranspose(out?: Mat4): Mat4;\t\t\n\t\t/**\n\t\tInverts a mat4\n\t\t@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created. \n\t\t*/\n\t\tinvert(out?: Mat4): Mat4;\t\t\n\t\t/**\n\t\tCalculates the adjugate of a mat4\n\t\t@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created. \n\t\t*/\n\t\tadjoint(out?: Mat4): Mat4;\t\t\n\t\t/**\n\t\tCalculates the determinant of a mat4 \n\t\t*/\n\t\tdeterminant(): number;\t\t\n\t\t/**\n\t\tAdds two Mat4\n\t\t@param other the second operand\n\t\t@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created. \n\t\t*/\n\t\tadd(other: Mat4, out?: Mat4): Mat4;\t\t\n\t\t/**\n\t\tSubtracts the current matrix with another one\n\t\t@param other the second operand\n\t\t@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created \n\t\t*/\n\t\tsub(other: Mat4, out?: Mat4): Mat4;\t\t\n\t\t/**\n\t\tSubtracts the current matrix with another one\n\t\t@param other the second operand\n\t\t@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created \n\t\t*/\n\t\tmul(other: Mat4, out?: Mat4): Mat4;\t\t\n\t\t/**\n\t\tMultiply each element of the matrix by a scalar.\n\t\t@param number amount to scale the matrix's elements by\n\t\t@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created \n\t\t*/\n\t\tmulScalar(number: number, out?: Mat4): Mat4;\t\t\n\t\t/**\n\t\tTranslate a mat4 by the given vector\n\t\t@param v vector to translate by\n\t\t@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created \n\t\t*/\n\t\ttranslate(v: Vec3, out?: Mat4): Mat4;\t\t\n\t\t/**\n\t\tScales the mat4 by the dimensions in the given vec3\n\t\t@param v vector to scale by\n\t\t@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created \n\t\t*/\n\t\tscale(v: Vec3, out?: Mat4): Mat4;\t\t\n\t\t/**\n\t\tRotates a mat4 by the given angle around the given axis\n\t\t@param rad the angle to rotate the matrix by\n\t\t@param axis the axis to rotate around\n\t\t@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created \n\t\t*/\n\t\trotate(rad: number, axis: Vec3, out?: Mat4): Mat4;\t\t\n\t\t/**\n\t\tReturns the translation vector component of a transformation matrix.\n\t\t@param out Vector to receive translation component, if not provided, a new vec3 will be created \n\t\t*/\n\t\tgetTranslation(out: Vec3): Vec3;\t\t\n\t\t/**\n\t\tReturns the scale factor component of a transformation matrix\n\t\t@param out Vector to receive scale component, if not provided, a new vec3 will be created \n\t\t*/\n\t\tgetScale(out: Vec3): Vec3;\t\t\n\t\t/**\n\t\tReturns the rotation factor component of a transformation matrix\n\t\t@param out Vector to receive rotation component, if not provided, a new quaternion object will be created \n\t\t*/\n\t\tgetRotation(out: Quat): Quat;\t\t\n\t\t/**\n\t\tRestore the matrix values from a quaternion rotation, vector translation and vector scale\n\t\t@param q Rotation quaternion\n\t\t@param v Translation vector\n\t\t@param s Scaling vector \n\t\t*/\n\t\tfromRTS(q: Quat, v: Vec3, s: Vec3): Mat4;\t\t\n\t\t/**\n\t\tRestore the matrix values from a quaternion rotation\n\t\t@param q Rotation quaternion \n\t\t*/\n\t\tfromQuat(q: Quat): Mat4;\t\n\t}\t\n\t/** !#en A 2D rectangle defined by x, y position and width, height.\n\t!#zh 通过位置和宽高定义的 2D 矩形。 */\n\texport class Rect extends ValueType {\t\t\n\t\t/**\n\t\t!#en\n\t\tConstructor of Rect class.\n\t\tsee {{#crossLink \"cc/rect:method\"}} cc.rect {{/crossLink}} for convenience method.\n\t\t!#zh\n\t\tRect类的构造函数。可以通过 {{#crossLink \"cc/rect:method\"}} cc.rect {{/crossLink}} 简便方法进行创建。\n\t\t@param x x\n\t\t@param y y\n\t\t@param w w\n\t\t@param h h \n\t\t*/\n\t\tconstructor(x?: number, y?: number, w?: number, h?: number);\t\t\n\t\tx: number;\t\t\n\t\ty: number;\t\t\n\t\twidth: number;\t\t\n\t\theight: number;\t\t\n\t\t/**\n\t\t!#en Creates a rectangle from two coordinate values.\n\t\t!#zh 根据指定 2 个坐标创建出一个矩形区域。\n\t\t@param v1 v1\n\t\t@param v2 v2\n\t\t\n\t\t@example \n\t\t```js\n\t\tcc.Rect.fromMinMax(cc.v2(10, 10), cc.v2(20, 20)); // Rect {x: 10, y: 10, width: 10, height: 10};\n\t\t``` \n\t\t*/\n\t\tstatic fromMinMax(v1: Vec2, v2: Vec2): Rect;\t\t\n\t\t/**\n\t\t!#en TODO\n\t\t!#zh 克隆一个新的 Rect。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar a = new cc.Rect(0, 0, 10, 10);\n\t\ta.clone();// Rect {x: 0, y: 0, width: 10, height: 10}\n\t\t``` \n\t\t*/\n\t\tclone(): Rect;\t\t\n\t\t/**\n\t\t!#en TODO\n\t\t!#zh 是否等于指定的矩形。\n\t\t@param other other\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar a = new cc.Rect(0, 0, 10, 10);\n\t\tvar b = new cc.Rect(0, 0, 10, 10);\n\t\ta.equals(b);// true;\n\t\t``` \n\t\t*/\n\t\tequals(other: Rect): boolean;\t\t\n\t\t/**\n\t\t!#en TODO\n\t\t!#zh 线性插值\n\t\t@param to to\n\t\t@param ratio the interpolation coefficient.\n\t\t@param out optional, the receiving vector.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar a = new cc.Rect(0, 0, 10, 10);\n\t\tvar b = new cc.Rect(50, 50, 100, 100);\n\t\tupdate (dt) {\n\t\t   // method 1;\n\t\t   var c = a.lerp(b, dt * 0.1);\n\t\t   // method 2;\n\t\t   a.lerp(b, dt * 0.1, c);\n\t\t}\n\t\t``` \n\t\t*/\n\t\tlerp(to: Rect, ratio: number, out?: Rect): Rect;\t\t\n\t\t/**\n\t\t!#en Check whether the current rectangle intersects with the given one\n\t\t!#zh 当前矩形与指定矩形是否相交。\n\t\t@param rect rect\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar a = new cc.Rect(0, 0, 10, 10);\n\t\tvar b = new cc.Rect(0, 0, 20, 20);\n\t\ta.intersects(b);// true\n\t\t``` \n\t\t*/\n\t\tintersects(rect: Rect): boolean;\t\t\n\t\t/**\n\t\t!#en Returns the overlapping portion of 2 rectangles.\n\t\t!#zh 返回 2 个矩形重叠的部分。\n\t\t@param out Stores the result\n\t\t@param rectB rectB\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar a = new cc.Rect(0, 10, 20, 20);\n\t\tvar b = new cc.Rect(0, 10, 10, 10);\n\t\tvar intersection = new cc.Rect();\n\t\ta.intersection(intersection, b); // intersection {x: 0, y: 10, width: 10, height: 10};\n\t\t``` \n\t\t*/\n\t\tintersection(out: Rect, rectB: Rect): Rect;\t\t\n\t\t/**\n\t\t!#en Check whether the current rect contains the given point\n\t\t!#zh 当前矩形是否包含指定坐标点。\n\t\tReturns true if the point inside this rectangle.\n\t\t@param point point\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar a = new cc.Rect(0, 0, 10, 10);\n\t\tvar b = new cc.Vec2(0, 5);\n\t\ta.contains(b);// true\n\t\t``` \n\t\t*/\n\t\tcontains(point: Vec2): boolean;\t\t\n\t\t/**\n\t\t!#en Returns true if the other rect totally inside this rectangle.\n\t\t!#zh 当前矩形是否包含指定矩形。\n\t\t@param rect rect\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar a = new cc.Rect(0, 0, 20, 20);\n\t\tvar b = new cc.Rect(0, 0, 10, 10);\n\t\ta.containsRect(b);// true\n\t\t``` \n\t\t*/\n\t\tcontainsRect(rect: Rect): boolean;\t\t\n\t\t/**\n\t\t!#en Returns the smallest rectangle that contains the current rect and the given rect.\n\t\t!#zh 返回一个包含当前矩形和指定矩形的最小矩形。\n\t\t@param out Stores the result\n\t\t@param rectB rectB\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar a = new cc.Rect(0, 10, 20, 20);\n\t\tvar b = new cc.Rect(0, 10, 10, 10);\n\t\tvar union = new cc.Rect();\n\t\ta.union(union, b); // union {x: 0, y: 10, width: 20, height: 20};\n\t\t``` \n\t\t*/\n\t\tunion(out: Rect, rectB: Rect): Rect;\t\t\n\t\t/**\n\t\t!#en Apply matrix4 to the rect.\n\t\t!#zh 使用 mat4 对矩形进行矩阵转换。\n\t\t@param out The output rect\n\t\t@param mat The matrix4 \n\t\t*/\n\t\ttransformMat4(out: Rect, mat: Mat4): void;\t\t\n\t\t/**\n\t\t!#en Output rect informations to string\n\t\t!#zh 转换为方便阅读的字符串\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar a = new cc.Rect(0, 0, 10, 10);\n\t\ta.toString();// \"(0.00, 0.00, 10.00, 10.00)\";\n\t\t``` \n\t\t*/\n\t\ttoString(): string;\t\t\n\t\t/** !#en The minimum x value, equals to rect.x\n\t\t!#zh 矩形 x 轴上的最小值，等价于 rect.x。 */\n\t\txMin: number;\t\t\n\t\t/** !#en The minimum y value, equals to rect.y\n\t\t!#zh 矩形 y 轴上的最小值。 */\n\t\tyMin: number;\t\t\n\t\t/** !#en The maximum x value.\n\t\t!#zh 矩形 x 轴上的最大值。 */\n\t\txMax: number;\t\t\n\t\t/** !#en The maximum y value.\n\t\t!#zh 矩形 y 轴上的最大值。 */\n\t\tyMax: number;\t\t\n\t\t/** !#en The position of the center of the rectangle.\n\t\t!#zh 矩形的中心点。 */\n\t\tcenter: Vec2;\t\t\n\t\t/** !#en The X and Y position of the rectangle.\n\t\t!#zh 矩形的 x 和 y 坐标。 */\n\t\torigin: Vec2;\t\t\n\t\t/** !#en Width and height of the rectangle.\n\t\t!#zh 矩形的大小。 */\n\t\tsize: Size;\t\n\t}\t\n\t/** !#en\n\tcc.Size is the class for size object,<br/>\n\tplease do not use its constructor to create sizes,<br/>\n\tuse {{#crossLink \"cc/size:method\"}}{{/crossLink}} alias function instead.<br/>\n\tIt will be deprecated soon, please use cc.Vec2 instead.\n\t\n\t!#zh\n\tcc.Size 是 size 对象的类。<br/>\n\t请不要使用它的构造函数创建的 size，<br/>\n\t使用 {{#crossLink \"cc/size:method\"}}{{/crossLink}} 别名函数。<br/>\n\t它不久将被取消，请使用cc.Vec2代替。 */\n\texport class Size {\t\t\n\t\t/**\n\t\t\n\t\t@param width width\n\t\t@param height height \n\t\t*/\n\t\tconstructor(width: number|Size, height?: number);\t\t\n\t\twidth: number;\t\t\n\t\theight: number;\t\t\n\t\t/** !#en return a Size object with width = 0 and height = 0.\n\t\t!#zh 返回一个宽度为 0 和高度为 0 的 Size 对象。 */\n\t\tstatic ZERO: Size;\t\t\n\t\t/**\n\t\t!#en TODO\n\t\t!#zh 克隆 size 对象。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar a = new cc.size(10, 10);\n\t\ta.clone();// return Size {width: 0, height: 0};\n\t\t``` \n\t\t*/\n\t\tclone(): Size;\t\t\n\t\t/**\n\t\t!#en TODO\n\t\t!#zh 当前 Size 对象是否等于指定 Size 对象。\n\t\t@param other other\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar a = new cc.size(10, 10);\n\t\ta.equals(new cc.size(10, 10));// return true;\n\t\t``` \n\t\t*/\n\t\tequals(other: Size): boolean;\t\t\n\t\t/**\n\t\t!#en TODO\n\t\t!#zh 线性插值。\n\t\t@param to to\n\t\t@param ratio the interpolation coefficient.\n\t\t@param out optional, the receiving vector.\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar a = new cc.size(10, 10);\n\t\tvar b = new cc.rect(50, 50, 100, 100);\n\t\tupdate (dt) {\n\t\t   // method 1;\n\t\t   var c = a.lerp(b, dt * 0.1);\n\t\t   // method 2;\n\t\t   a.lerp(b, dt * 0.1, c);\n\t\t}\n\t\t``` \n\t\t*/\n\t\tlerp(to: Rect, ratio: number, out?: Size): Size;\t\t\n\t\t/**\n\t\t!#en TODO\n\t\t!#zh 转换为方便阅读的字符串。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar a = new cc.size(10, 10);\n\t\ta.toString();// return \"(10.00, 10.00)\";\n\t\t``` \n\t\t*/\n\t\ttoString(): string;\t\n\t}\t\n\t/** !#en Representation of 2D vectors and points.\n\t!#zh 表示 2D 向量和坐标 */\n\texport class Quat extends ValueType {\t\t\n\t\t/**\n\t\t!#en\n\t\tConstructor\n\t\tsee {{#crossLink \"cc/quat:method\"}}cc.quat{{/crossLink}}\n\t\t!#zh\n\t\t构造函数，可查看 {{#crossLink \"cc/quat:method\"}}cc.quat{{/crossLink}}\n\t\t@param x x\n\t\t@param y y\n\t\t@param z z\n\t\t@param w w \n\t\t*/\n\t\tconstructor(x?: number, y?: number, z?: number, w?: number);\t\t\n\t\tx: number;\t\t\n\t\ty: number;\t\t\n\t\tz: number;\t\t\n\t\tw: number;\t\t\n\t\t/**\n\t\t!#en clone a Quat object and return the new object\n\t\t!#zh 克隆一个四元数并返回 \n\t\t*/\n\t\tclone(): Quat;\t\t\n\t\t/**\n\t\t!#en Set values with another quaternion\n\t\t!#zh 用另一个四元数的值设置到当前对象上。\n\t\t@param newValue !#en new value to set. !#zh 要设置的新值 \n\t\t*/\n\t\tset(newValue: Quat): Quat;\t\t\n\t\t/**\n\t\t!#en Check whether current quaternion equals another\n\t\t!#zh 当前的四元数是否与指定的四元数相等。\n\t\t@param other other \n\t\t*/\n\t\tequals(other: Quat): boolean;\t\t\n\t\t/**\n\t\t!#en Convert quaternion to euler\n\t\t!#zh 转换四元数到欧拉角\n\t\t@param out out \n\t\t*/\n\t\ttoEuler(out: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Convert euler to quaternion\n\t\t!#zh 转换欧拉角到四元数\n\t\t@param euler euler \n\t\t*/\n\t\tfromEuler(euler: Vec3): Quat;\t\t\n\t\t/**\n\t\t!#en Calculate the interpolation result between this quaternion and another one with given ratio\n\t\t!#zh 计算四元数的插值结果\n\t\t@param to to\n\t\t@param ratio ratio\n\t\t@param out out \n\t\t*/\n\t\tlerp(to: Quat, ratio: number, out?: Quat): Quat;\t\t\n\t\t/**\n\t\t!#en Calculate the multiply result between this quaternion and another one\n\t\t!#zh 计算四元数乘积的结果\n\t\t@param to to\n\t\t@param ratio ratio\n\t\t@param out out \n\t\t*/\n\t\tlerp(to: Quat, ratio: number, out?: Quat): Quat;\t\t\n\t\t/**\n\t\t!#en Rotates a quaternion by the given angle (in radians) about a world space axis.\n\t\t!#zh 围绕世界空间轴按给定弧度旋转四元数\n\t\t@param rot Quaternion to rotate\n\t\t@param axis The axis around which to rotate in world space\n\t\t@param rad Angle (in radians) to rotate\n\t\t@param out Quaternion to store result \n\t\t*/\n\t\trotateAround(rot: Quat, axis: Vec3, rad: number, out?: Quat): Quat;\t\n\t}\t\n\t/** !#en The base class of all value types.\n\t!#zh 所有值类型的基类。 */\n\texport class ValueType {\t\t\n\t\t/**\n\t\t!#en This method returns an exact copy of current value.\n\t\t!#zh 克隆当前值，该方法返回一个新对象，新对象的值和原对象相等。 \n\t\t*/\n\t\tclone(): ValueType;\t\t\n\t\t/**\n\t\t!#en Compares this object with the other one.\n\t\t!#zh 当前对象是否等于指定对象。\n\t\t@param other other \n\t\t*/\n\t\tequals(other: ValueType): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tLinearly interpolates between this value to to value by ratio which is in the range [0, 1].\n\t\tWhen ratio = 0 returns this. When ratio = 1 return to. When ratio = 0.5 returns the average of this and to.\n\t\t!#zh\n\t\t线性插值。<br/>\n\t\t当 ratio = 0 时返回自身，ratio = 1 时返回目标，ratio = 0.5 返回自身和目标的平均值。。\n\t\t@param to the to value\n\t\t@param ratio the interpolation coefficient \n\t\t*/\n\t\tlerp(to: ValueType, ratio: number): ValueType;\t\t\n\t\t/**\n\t\t!#en\n\t\tCopys all the properties from another given object to this value.\n\t\t!#zh\n\t\t从其它对象把所有属性复制到当前对象。\n\t\t@param source the source to copy \n\t\t*/\n\t\tset(source: ValueType): void;\t\t\n\t\t/**\n\t\t!#en TODO\n\t\t!#zh 转换为方便阅读的字符串。 \n\t\t*/\n\t\ttoString(): string;\t\n\t}\t\n\t/** !#en Representation of 2D vectors and points.\n\t!#zh 表示 2D 向量和坐标 */\n\texport class Vec2 extends ValueType {\t\t\n\t\t/**\n\t\t!#en\n\t\tConstructor\n\t\tsee {{#crossLink \"cc/vec2:method\"}}cc.v2{{/crossLink}} or {{#crossLink \"cc/p:method\"}}cc.p{{/crossLink}}\n\t\t!#zh\n\t\t构造函数，可查看 {{#crossLink \"cc/vec2:method\"}}cc.v2{{/crossLink}} 或者 {{#crossLink \"cc/p:method\"}}cc.p{{/crossLink}}\n\t\t@param x x\n\t\t@param y y \n\t\t*/\n\t\tconstructor(x?: number, y?: number);\t\t\n\t\tx: number;\t\t\n\t\ty: number;\t\t\n\t\t/**\n\t\t!#en clone a Vec2 object\n\t\t!#zh 克隆一个 Vec2 对象 \n\t\t*/\n\t\tclone(): Vec2;\t\t\n\t\t/**\n\t\t!#en Sets vector with another's value\n\t\t!#zh 设置向量值。\n\t\t@param newValue !#en new value to set. !#zh 要设置的新值 \n\t\t*/\n\t\tset(newValue: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en Check whether two vector equal\n\t\t!#zh 当前的向量是否与指定的向量相等。\n\t\t@param other other \n\t\t*/\n\t\tequals(other: Vec2): boolean;\t\t\n\t\t/**\n\t\t!#en Check whether two vector equal with some degree of variance.\n\t\t!#zh\n\t\t近似判断两个点是否相等。<br/>\n\t\t判断 2 个向量是否在指定数值的范围之内，如果在则返回 true，反之则返回 false。\n\t\t@param other other\n\t\t@param variance variance \n\t\t*/\n\t\tfuzzyEquals(other: Vec2, variance: number): boolean;\t\t\n\t\t/**\n\t\t!#en Transform to string with vector informations\n\t\t!#zh 转换为方便阅读的字符串。 \n\t\t*/\n\t\ttoString(): string;\t\t\n\t\t/**\n\t\t!#en Calculate linear interpolation result between this vector and another one with given ratio\n\t\t!#zh 线性插值。\n\t\t@param to to\n\t\t@param ratio the interpolation coefficient\n\t\t@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created \n\t\t*/\n\t\tlerp(to: Vec2, ratio: number, out?: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en Clamp the vector between from float and to float.\n\t\t!#zh\n\t\t返回指定限制区域后的向量。<br/>\n\t\t向量大于 max_inclusive 则返回 max_inclusive。<br/>\n\t\t向量小于 min_inclusive 则返回 min_inclusive。<br/>\n\t\t否则返回自身。\n\t\t@param min_inclusive min_inclusive\n\t\t@param max_inclusive max_inclusive\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar min_inclusive = cc.v2(0, 0);\n\t\tvar max_inclusive = cc.v2(20, 20);\n\t\tvar v1 = cc.v2(20, 20).clampf(min_inclusive, max_inclusive); // Vec2 {x: 20, y: 20};\n\t\tvar v2 = cc.v2(0, 0).clampf(min_inclusive, max_inclusive);   // Vec2 {x: 0, y: 0};\n\t\tvar v3 = cc.v2(10, 10).clampf(min_inclusive, max_inclusive); // Vec2 {x: 10, y: 10};\n\t\t``` \n\t\t*/\n\t\tclampf(min_inclusive: Vec2, max_inclusive: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en Adds this vector. If you want to save result to another vector, use add() instead.\n\t\t!#zh 向量加法。如果你想保存结果到另一个向量，使用 add() 代替。\n\t\t@param vector vector\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.addSelf(cc.v2(5, 5));// return Vec2 {x: 15, y: 15};\n\t\t``` \n\t\t*/\n\t\taddSelf(vector: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en Adds two vectors, and returns the new result.\n\t\t!#zh 向量加法，并返回新结果。\n\t\t@param vector vector\n\t\t@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.add(cc.v2(5, 5));      // return Vec2 {x: 15, y: 15};\n\t\tvar v1;\n\t\tv.add(cc.v2(5, 5), v1);  // return Vec2 {x: 15, y: 15};\n\t\t``` \n\t\t*/\n\t\tadd(vector: Vec2, out?: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en Subtracts one vector from this. If you want to save result to another vector, use sub() instead.\n\t\t!#zh 向量减法。如果你想保存结果到另一个向量，可使用 sub() 代替。\n\t\t@param vector vector\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.subSelf(cc.v2(5, 5));// return Vec2 {x: 5, y: 5};\n\t\t``` \n\t\t*/\n\t\tsubSelf(vector: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en Subtracts one vector from this, and returns the new result.\n\t\t!#zh 向量减法，并返回新结果。\n\t\t@param vector vector\n\t\t@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.sub(cc.v2(5, 5));      // return Vec2 {x: 5, y: 5};\n\t\tvar v1;\n\t\tv.sub(cc.v2(5, 5), v1);  // return Vec2 {x: 5, y: 5};\n\t\t``` \n\t\t*/\n\t\tsub(vector: Vec2, out?: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en Multiplies this by a number. If you want to save result to another vector, use mul() instead.\n\t\t!#zh 缩放当前向量。如果你想结果保存到另一个向量，可使用 mul() 代替。\n\t\t@param num num\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.mulSelf(5);// return Vec2 {x: 50, y: 50};\n\t\t``` \n\t\t*/\n\t\tmulSelf(num: number): Vec2;\t\t\n\t\t/**\n\t\t!#en Multiplies by a number, and returns the new result.\n\t\t!#zh 缩放向量，并返回新结果。\n\t\t@param num num\n\t\t@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.mul(5);      // return Vec2 {x: 50, y: 50};\n\t\tvar v1;\n\t\tv.mul(5, v1);  // return Vec2 {x: 50, y: 50};\n\t\t``` \n\t\t*/\n\t\tmul(num: number, out?: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en Multiplies two vectors.\n\t\t!#zh 分量相乘。\n\t\t@param vector vector\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.scaleSelf(cc.v2(5, 5));// return Vec2 {x: 50, y: 50};\n\t\t``` \n\t\t*/\n\t\tscaleSelf(vector: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en Multiplies two vectors, and returns the new result.\n\t\t!#zh 分量相乘，并返回新的结果。\n\t\t@param vector vector\n\t\t@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.scale(cc.v2(5, 5));      // return Vec2 {x: 50, y: 50};\n\t\tvar v1;\n\t\tv.scale(cc.v2(5, 5), v1);  // return Vec2 {x: 50, y: 50};\n\t\t``` \n\t\t*/\n\t\tscale(vector: Vec2, out?: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en Divides by a number. If you want to save result to another vector, use div() instead.\n\t\t!#zh 向量除法。如果你想结果保存到另一个向量，可使用 div() 代替。\n\t\t@param num num\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.divSelf(5); // return Vec2 {x: 2, y: 2};\n\t\t``` \n\t\t*/\n\t\tdivSelf(num: number): Vec2;\t\t\n\t\t/**\n\t\t!#en Divides by a number, and returns the new result.\n\t\t!#zh 向量除法，并返回新的结果。\n\t\t@param num num\n\t\t@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.div(5);      // return Vec2 {x: 2, y: 2};\n\t\tvar v1;\n\t\tv.div(5, v1);  // return Vec2 {x: 2, y: 2};\n\t\t``` \n\t\t*/\n\t\tdiv(num: number, out?: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en Negates the components. If you want to save result to another vector, use neg() instead.\n\t\t!#zh 向量取反。如果你想结果保存到另一个向量，可使用 neg() 代替。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.negSelf(); // return Vec2 {x: -10, y: -10};\n\t\t``` \n\t\t*/\n\t\tnegSelf(): Vec2;\t\t\n\t\t/**\n\t\t!#en Negates the components, and returns the new result.\n\t\t!#zh 返回取反后的新向量。\n\t\t@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tvar v1;\n\t\tv.neg(v1);  // return Vec2 {x: -10, y: -10};\n\t\t``` \n\t\t*/\n\t\tneg(out?: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en Dot product\n\t\t!#zh 当前向量与指定向量进行点乘。\n\t\t@param vector vector\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.dot(cc.v2(5, 5)); // return 100;\n\t\t``` \n\t\t*/\n\t\tdot(vector?: Vec2): number;\t\t\n\t\t/**\n\t\t!#en Cross product\n\t\t!#zh 当前向量与指定向量进行叉乘。\n\t\t@param vector vector\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.cross(cc.v2(5, 5)); // return 0;\n\t\t``` \n\t\t*/\n\t\tcross(vector?: Vec2): number;\t\t\n\t\t/**\n\t\t!#en Returns the length of this vector.\n\t\t!#zh 返回该向量的长度。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.mag(); // return 14.142135623730951;\n\t\t``` \n\t\t*/\n\t\tmag(): number;\t\t\n\t\t/**\n\t\t!#en Returns the squared length of this vector.\n\t\t!#zh 返回该向量的长度平方。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.magSqr(); // return 200;\n\t\t``` \n\t\t*/\n\t\tmagSqr(): number;\t\t\n\t\t/**\n\t\t!#en Make the length of this vector to 1.\n\t\t!#zh 向量归一化，让这个向量的长度为 1。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.normalizeSelf(); // return Vec2 {x: 0.7071067811865475, y: 0.7071067811865475};\n\t\t``` \n\t\t*/\n\t\tnormalizeSelf(): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns this vector with a magnitude of 1.<br/>\n\t\t<br/>\n\t\tNote that the current vector is unchanged and a new normalized vector is returned. If you want to normalize the current vector, use normalizeSelf function.\n\t\t!#zh\n\t\t返回归一化后的向量。<br/>\n\t\t<br/>\n\t\t注意，当前向量不变，并返回一个新的归一化向量。如果你想来归一化当前向量，可使用 normalizeSelf 函数。\n\t\t@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created \n\t\t*/\n\t\tnormalize(out?: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en Get angle in radian between this and vector.\n\t\t!#zh 夹角的弧度。\n\t\t@param vector vector \n\t\t*/\n\t\tangle(vector: Vec2): number;\t\t\n\t\t/**\n\t\t!#en Get angle in radian between this and vector with direction.\n\t\t!#zh 带方向的夹角的弧度。\n\t\t@param vector vector \n\t\t*/\n\t\tsignAngle(vector: Vec2): number;\t\t\n\t\t/**\n\t\t!#en rotate\n\t\t!#zh 返回旋转给定弧度后的新向量。\n\t\t@param radians radians\n\t\t@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created \n\t\t*/\n\t\trotate(radians: number, out?: Vec2): Vec2;\t\t\n\t\t/**\n\t\t!#en rotate self\n\t\t!#zh 按指定弧度旋转向量。\n\t\t@param radians radians \n\t\t*/\n\t\trotateSelf(radians: number): Vec2;\t\t\n\t\t/**\n\t\t!#en Calculates the projection of the current vector over the given vector.\n\t\t!#zh 返回当前向量在指定 vector 向量上的投影向量。\n\t\t@param vector vector\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v1 = cc.v2(20, 20);\n\t\tvar v2 = cc.v2(5, 5);\n\t\tv1.project(v2); // Vec2 {x: 20, y: 20};\n\t\t``` \n\t\t*/\n\t\tproject(vector: Vec2): Vec2;\t\t\n\t\t/**\n\t\tTransforms the vec2 with a mat4. 3rd vector component is implicitly '0', 4th vector component is implicitly '1'\n\t\t@param m matrix to transform with\n\t\t@param out the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created \n\t\t*/\n\t\ttransformMat4(m: Mat4, out?: Vec2): Vec2;\t\t\n\t\t/** !#en return a Vec2 object with x = 1 and y = 1.\n\t\t!#zh 新 Vec2 对象。 */\n\t\tstatic ONE: Vec2;\t\t\n\t\t/** !#en return a Vec2 object with x = 0 and y = 0.\n\t\t!#zh 返回 x = 0 和 y = 0 的 Vec2 对象。 */\n\t\tstatic ZERO: Vec2;\t\t\n\t\t/** !#en return a Vec2 object with x = 0 and y = 1.\n\t\t!#zh 返回 x = 0 和 y = 1 的 Vec2 对象。 */\n\t\tstatic UP: Vec2;\t\t\n\t\t/** !#en return a Vec2 object with x = 1 and y = 0.\n\t\t!#zh 返回 x = 1 和 y = 0 的 Vec2 对象。 */\n\t\tstatic RIGHT: Vec2;\t\n\t}\t\n\t/** !#en Representation of 3D vectors and points.\n\t!#zh 表示 3D 向量和坐标 */\n\texport class Vec3 extends ValueType {\t\t\n\t\t/**\n\t\t!#en\n\t\tConstructor\n\t\tsee {{#crossLink \"cc/vec3:method\"}}cc.v3{{/crossLink}}\n\t\t!#zh\n\t\t构造函数，可查看 {{#crossLink \"cc/vec3:method\"}}cc.v3{{/crossLink}}\n\t\t@param x x\n\t\t@param y y\n\t\t@param z z \n\t\t*/\n\t\tconstructor(x?: number, y?: number, z?: number);\t\t\n\t\tx: number;\t\t\n\t\ty: number;\t\t\n\t\tz: number;\t\t\n\t\t/**\n\t\t!#en clone a Vec3 value\n\t\t!#zh 克隆一个 Vec3 值 \n\t\t*/\n\t\tclone(): Vec3;\t\t\n\t\t/**\n\t\t!#en Set the current vector value with the given vector.\n\t\t!#zh 用另一个向量设置当前的向量对象值。\n\t\t@param newValue !#en new value to set. !#zh 要设置的新值 \n\t\t*/\n\t\tset(newValue: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Check whether the vector equals another one\n\t\t!#zh 当前的向量是否与指定的向量相等。\n\t\t@param other other \n\t\t*/\n\t\tequals(other: Vec3): boolean;\t\t\n\t\t/**\n\t\t!#en Check whether two vector equal with some degree of variance.\n\t\t!#zh\n\t\t近似判断两个点是否相等。<br/>\n\t\t判断 2 个向量是否在指定数值的范围之内，如果在则返回 true，反之则返回 false。\n\t\t@param other other\n\t\t@param variance variance \n\t\t*/\n\t\tfuzzyEquals(other: Vec3, variance: number): boolean;\t\t\n\t\t/**\n\t\t!#en Transform to string with vector informations\n\t\t!#zh 转换为方便阅读的字符串。 \n\t\t*/\n\t\ttoString(): string;\t\t\n\t\t/**\n\t\t!#en Calculate linear interpolation result between this vector and another one with given ratio\n\t\t!#zh 线性插值。\n\t\t@param to to\n\t\t@param ratio the interpolation coefficient\n\t\t@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created \n\t\t*/\n\t\tlerp(to: Vec3, ratio: number, out?: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Clamp the vector between from float and to float.\n\t\t!#zh\n\t\t返回指定限制区域后的向量。<br/>\n\t\t向量大于 max_inclusive 则返回 max_inclusive。<br/>\n\t\t向量小于 min_inclusive 则返回 min_inclusive。<br/>\n\t\t否则返回自身。\n\t\t@param min_inclusive min_inclusive\n\t\t@param max_inclusive max_inclusive \n\t\t*/\n\t\tclampf(min_inclusive: Vec3, max_inclusive: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Adds this vector. If you want to save result to another vector, use add() instead.\n\t\t!#zh 向量加法。如果你想保存结果到另一个向量，使用 add() 代替。\n\t\t@param vector vector \n\t\t*/\n\t\taddSelf(vector: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Adds two vectors, and returns the new result.\n\t\t!#zh 向量加法，并返回新结果。\n\t\t@param vector vector\n\t\t@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created \n\t\t*/\n\t\tadd(vector: Vec3, out?: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Subtracts one vector from this. If you want to save result to another vector, use sub() instead.\n\t\t!#zh 向量减法。如果你想保存结果到另一个向量，可使用 sub() 代替。\n\t\t@param vector vector \n\t\t*/\n\t\tsubSelf(vector: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Subtracts one vector from this, and returns the new result.\n\t\t!#zh 向量减法，并返回新结果。\n\t\t@param vector vector\n\t\t@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created \n\t\t*/\n\t\tsub(vector: Vec3, out?: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Multiplies this by a number. If you want to save result to another vector, use mul() instead.\n\t\t!#zh 缩放当前向量。如果你想结果保存到另一个向量，可使用 mul() 代替。\n\t\t@param num num \n\t\t*/\n\t\tmulSelf(num: number): Vec3;\t\t\n\t\t/**\n\t\t!#en Multiplies by a number, and returns the new result.\n\t\t!#zh 缩放向量，并返回新结果。\n\t\t@param num num\n\t\t@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created \n\t\t*/\n\t\tmul(num: number, out?: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Multiplies two vectors.\n\t\t!#zh 分量相乘。\n\t\t@param vector vector \n\t\t*/\n\t\tscaleSelf(vector: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Multiplies two vectors, and returns the new result.\n\t\t!#zh 分量相乘，并返回新的结果。\n\t\t@param vector vector\n\t\t@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created \n\t\t*/\n\t\tscale(vector: Vec3, out?: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Divides by a number. If you want to save result to another vector, use div() instead.\n\t\t!#zh 向量除法。如果你想结果保存到另一个向量，可使用 div() 代替。\n\t\t@param num num \n\t\t*/\n\t\tdivSelf(num: number): Vec3;\t\t\n\t\t/**\n\t\t!#en Divides by a number, and returns the new result.\n\t\t!#zh 向量除法，并返回新的结果。\n\t\t@param num num\n\t\t@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created \n\t\t*/\n\t\tdiv(num: number, out?: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Negates the components. If you want to save result to another vector, use neg() instead.\n\t\t!#zh 向量取反。如果你想结果保存到另一个向量，可使用 neg() 代替。 \n\t\t*/\n\t\tnegSelf(): Vec3;\t\t\n\t\t/**\n\t\t!#en Negates the components, and returns the new result.\n\t\t!#zh 返回取反后的新向量。\n\t\t@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created \n\t\t*/\n\t\tneg(out?: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Dot product\n\t\t!#zh 当前向量与指定向量进行点乘。\n\t\t@param vector vector \n\t\t*/\n\t\tdot(vector?: Vec3): number;\t\t\n\t\t/**\n\t\t!#en Cross product\n\t\t!#zh 当前向量与指定向量进行叉乘。\n\t\t@param vector vector\n\t\t@param out out \n\t\t*/\n\t\tcross(vector: Vec3, out?: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Returns the length of this vector.\n\t\t!#zh 返回该向量的长度。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v2(10, 10);\n\t\tv.mag(); // return 14.142135623730951;\n\t\t``` \n\t\t*/\n\t\tmag(): number;\t\t\n\t\t/**\n\t\t!#en Returns the squared length of this vector.\n\t\t!#zh 返回该向量的长度平方。 \n\t\t*/\n\t\tmagSqr(): number;\t\t\n\t\t/**\n\t\t!#en Make the length of this vector to 1.\n\t\t!#zh 向量归一化，让这个向量的长度为 1。 \n\t\t*/\n\t\tnormalizeSelf(): Vec3;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns this vector with a magnitude of 1.<br/>\n\t\t<br/>\n\t\tNote that the current vector is unchanged and a new normalized vector is returned. If you want to normalize the current vector, use normalizeSelf function.\n\t\t!#zh\n\t\t返回归一化后的向量。<br/>\n\t\t<br/>\n\t\t注意，当前向量不变，并返回一个新的归一化向量。如果你想来归一化当前向量，可使用 normalizeSelf 函数。\n\t\t@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created \n\t\t*/\n\t\tnormalize(out?: Vec3): Vec3;\t\t\n\t\t/**\n\t\tTransforms the vec3 with a mat4. 4th vector component is implicitly '1'\n\t\t@param m matrix to transform with\n\t\t@param out the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created \n\t\t*/\n\t\ttransformMat4(m: Mat4, out?: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Get angle in radian between this and vector.\n\t\t!#zh 夹角的弧度。\n\t\t@param vector vector \n\t\t*/\n\t\tangle(vector: Vec3): number;\t\t\n\t\t/**\n\t\t!#en Calculates the projection of the current vector over the given vector.\n\t\t!#zh 返回当前向量在指定 vector 向量上的投影向量。\n\t\t@param vector vector\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v1 = cc.v3(20, 20, 20);\n\t\tvar v2 = cc.v3(5, 5, 5);\n\t\tv1.project(v2); // Vec3 {x: 20, y: 20, z: 20};\n\t\t``` \n\t\t*/\n\t\tproject(vector: Vec3): Vec3;\t\t\n\t\t/**\n\t\t!#en Get angle in radian between this and vector with direction. <br/>\n\t\tIn order to compatible with the vec2 API.\n\t\t!#zh 带方向的夹角的弧度。该方法仅用做兼容 2D 计算。\n\t\t@param vector vector \n\t\t*/\n\t\tsignAngle(vector: Vec3|Vec2): number;\t\t\n\t\t/**\n\t\t!#en rotate. In order to compatible with the vec2 API.\n\t\t!#zh 返回旋转给定弧度后的新向量。该方法仅用做兼容 2D 计算。\n\t\t@param radians radians\n\t\t@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created \n\t\t*/\n\t\trotate(radians: number, out?: Vec3): Vec2;\t\t\n\t\t/**\n\t\t!#en rotate self. In order to compatible with the vec2 API.\n\t\t!#zh 按指定弧度旋转向量。该方法仅用做兼容 2D 计算。\n\t\t@param radians radians \n\t\t*/\n\t\trotateSelf(radians: number): Vec3;\t\t\n\t\t/** !#en return a Vec3 object with x = 1, y = 1, z = 1.\n\t\t!#zh 新 Vec3 对象。 */\n\t\tstatic ONE: Vec3;\t\t\n\t\t/** !#en return a Vec3 object with x = 0, y = 0, z = 0.\n\t\t!#zh 返回 x = 0，y = 0，z = 0 的 Vec3 对象。 */\n\t\tstatic ZERO: Vec3;\t\t\n\t\t/** !#en return a Vec3 object with x = 0, y = 1, z = 0.\n\t\t!#zh 返回 x = 0, y = 1, z = 0 的 Vec3 对象。 */\n\t\tstatic UP: Vec3;\t\t\n\t\t/** !#en return a Vec3 object with x = 1, y = 0, z = 0.\n\t\t!#zh 返回 x = 1，y = 0，z = 0 的 Vec3 对象。 */\n\t\tstatic RIGHT: Vec3;\t\t\n\t\t/** !#en return a Vec3 object with x = 0, y = 0, z = 1.\n\t\t!#zh 返回 x = 0，y = 0，z = 1 的 Vec3 对象。 */\n\t\tstatic FRONT: Vec3;\t\n\t}\t\n\t/** !#en Representation of 3D vectors and points.\n\t!#zh 表示 3D 向量和坐标 */\n\texport class Vec4 extends ValueType {\t\t\n\t\t/**\n\t\t!#en\n\t\tConstructor\n\t\tsee {{#crossLink \"cc/vec4:method\"}}cc.v4{{/crossLink}}\n\t\t!#zh\n\t\t构造函数，可查看 {{#crossLink \"cc/vec4:method\"}}cc.v4{{/crossLink}}\n\t\t@param x x\n\t\t@param y y\n\t\t@param z z\n\t\t@param w w \n\t\t*/\n\t\tconstructor(x?: number, y?: number, z?: number, w?: number);\t\t\n\t\tx: number;\t\t\n\t\ty: number;\t\t\n\t\tz: number;\t\t\n\t\tw: number;\t\t\n\t\t/**\n\t\t!#en clone a Vec4 value\n\t\t!#zh 克隆一个 Vec4 值 \n\t\t*/\n\t\tclone(): Vec4;\t\t\n\t\t/**\n\t\t!#en Set the current vector value with the given vector.\n\t\t!#zh 用另一个向量设置当前的向量对象值。\n\t\t@param newValue !#en new value to set. !#zh 要设置的新值 \n\t\t*/\n\t\tset(newValue: Vec4): Vec4;\t\t\n\t\t/**\n\t\t!#en Check whether the vector equals another one\n\t\t!#zh 当前的向量是否与指定的向量相等。\n\t\t@param other other \n\t\t*/\n\t\tequals(other: Vec4): boolean;\t\t\n\t\t/**\n\t\t!#en Check whether two vector equal with some degree of variance.\n\t\t!#zh\n\t\t近似判断两个点是否相等。<br/>\n\t\t判断 2 个向量是否在指定数值的范围之内，如果在则返回 true，反之则返回 false。\n\t\t@param other other\n\t\t@param variance variance \n\t\t*/\n\t\tfuzzyEquals(other: Vec4, variance: number): boolean;\t\t\n\t\t/**\n\t\t!#en Transform to string with vector informations\n\t\t!#zh 转换为方便阅读的字符串。 \n\t\t*/\n\t\ttoString(): string;\t\t\n\t\t/**\n\t\t!#en Calculate linear interpolation result between this vector and another one with given ratio\n\t\t!#zh 线性插值。\n\t\t@param to to\n\t\t@param ratio the interpolation coefficient\n\t\t@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created \n\t\t*/\n\t\tlerp(to: Vec4, ratio: number, out?: Vec4): Vec4;\t\t\n\t\t/**\n\t\t!#en Clamp the vector between from float and to float.\n\t\t!#zh\n\t\t返回指定限制区域后的向量。<br/>\n\t\t向量大于 max_inclusive 则返回 max_inclusive。<br/>\n\t\t向量小于 min_inclusive 则返回 min_inclusive。<br/>\n\t\t否则返回自身。\n\t\t@param min_inclusive min_inclusive\n\t\t@param max_inclusive max_inclusive \n\t\t*/\n\t\tclampf(min_inclusive: Vec4, max_inclusive: Vec4): Vec4;\t\t\n\t\t/**\n\t\t!#en Adds this vector. If you want to save result to another vector, use add() instead.\n\t\t!#zh 向量加法。如果你想保存结果到另一个向量，使用 add() 代替。\n\t\t@param vector vector \n\t\t*/\n\t\taddSelf(vector: Vec4): Vec4;\t\t\n\t\t/**\n\t\t!#en Adds two vectors, and returns the new result.\n\t\t!#zh 向量加法，并返回新结果。\n\t\t@param vector vector\n\t\t@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created \n\t\t*/\n\t\tadd(vector: Vec4, out?: Vec4): Vec4;\t\t\n\t\t/**\n\t\t!#en Subtracts one vector from this. If you want to save result to another vector, use sub() instead.\n\t\t!#zh 向量减法。如果你想保存结果到另一个向量，可使用 sub() 代替。\n\t\t@param vector vector \n\t\t*/\n\t\tsubSelf(vector: Vec4): Vec4;\t\t\n\t\t/**\n\t\t!#en Subtracts one vector from this, and returns the new result.\n\t\t!#zh 向量减法，并返回新结果。\n\t\t@param vector vector\n\t\t@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created \n\t\t*/\n\t\tsub(vector: Vec4, out?: Vec4): Vec4;\t\t\n\t\t/**\n\t\t!#en Multiplies this by a number. If you want to save result to another vector, use mul() instead.\n\t\t!#zh 缩放当前向量。如果你想结果保存到另一个向量，可使用 mul() 代替。\n\t\t@param num num \n\t\t*/\n\t\tmulSelf(num: number): Vec4;\t\t\n\t\t/**\n\t\t!#en Multiplies by a number, and returns the new result.\n\t\t!#zh 缩放向量，并返回新结果。\n\t\t@param num num\n\t\t@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created \n\t\t*/\n\t\tmul(num: number, out?: Vec4): Vec4;\t\t\n\t\t/**\n\t\t!#en Multiplies two vectors.\n\t\t!#zh 分量相乘。\n\t\t@param vector vector \n\t\t*/\n\t\tscaleSelf(vector: Vec4): Vec4;\t\t\n\t\t/**\n\t\t!#en Multiplies two vectors, and returns the new result.\n\t\t!#zh 分量相乘，并返回新的结果。\n\t\t@param vector vector\n\t\t@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created \n\t\t*/\n\t\tscale(vector: Vec4, out?: Vec4): Vec4;\t\t\n\t\t/**\n\t\t!#en Divides by a number. If you want to save result to another vector, use div() instead.\n\t\t!#zh 向量除法。如果你想结果保存到另一个向量，可使用 div() 代替。\n\t\t@param num num \n\t\t*/\n\t\tdivSelf(num: number): Vec4;\t\t\n\t\t/**\n\t\t!#en Divides by a number, and returns the new result.\n\t\t!#zh 向量除法，并返回新的结果。\n\t\t@param num num\n\t\t@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created \n\t\t*/\n\t\tdiv(num: number, out?: Vec4): Vec4;\t\t\n\t\t/**\n\t\t!#en Negates the components. If you want to save result to another vector, use neg() instead.\n\t\t!#zh 向量取反。如果你想结果保存到另一个向量，可使用 neg() 代替。 \n\t\t*/\n\t\tnegSelf(): Vec4;\t\t\n\t\t/**\n\t\t!#en Negates the components, and returns the new result.\n\t\t!#zh 返回取反后的新向量。\n\t\t@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created \n\t\t*/\n\t\tneg(out?: Vec4): Vec4;\t\t\n\t\t/**\n\t\t!#en Dot product\n\t\t!#zh 当前向量与指定向量进行点乘。\n\t\t@param vector vector \n\t\t*/\n\t\tdot(vector?: Vec4): number;\t\t\n\t\t/**\n\t\t!#en Cross product\n\t\t!#zh 当前向量与指定向量进行叉乘。\n\t\t@param vector vector\n\t\t@param out out \n\t\t*/\n\t\tcross(vector: Vec4, out?: Vec4): Vec4;\t\t\n\t\t/**\n\t\t!#en Returns the length of this vector.\n\t\t!#zh 返回该向量的长度。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar v = cc.v4(10, 10);\n\t\tv.mag(); // return 14.142135623730951;\n\t\t``` \n\t\t*/\n\t\tmag(): number;\t\t\n\t\t/**\n\t\t!#en Returns the squared length of this vector.\n\t\t!#zh 返回该向量的长度平方。 \n\t\t*/\n\t\tmagSqr(): number;\t\t\n\t\t/**\n\t\t!#en Make the length of this vector to 1.\n\t\t!#zh 向量归一化，让这个向量的长度为 1。 \n\t\t*/\n\t\tnormalizeSelf(): Vec4;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns this vector with a magnitude of 1.<br/>\n\t\t<br/>\n\t\tNote that the current vector is unchanged and a new normalized vector is returned. If you want to normalize the current vector, use normalizeSelf function.\n\t\t!#zh\n\t\t返回归一化后的向量。<br/>\n\t\t<br/>\n\t\t注意，当前向量不变，并返回一个新的归一化向量。如果你想来归一化当前向量，可使用 normalizeSelf 函数。\n\t\t@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created \n\t\t*/\n\t\tnormalize(out?: Vec4): Vec4;\t\t\n\t\t/**\n\t\tTransforms the vec4 with a mat4. 4th vector component is implicitly '1'\n\t\t@param m matrix to transform with\n\t\t@param out the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created \n\t\t*/\n\t\ttransformMat4(m: Mat4, out?: Vec4): Vec4;\t\n\t}\t\n\t/** !#en .\n\t!#zh 。 */\n\texport class SkeletonAnimation extends Animation {\t\n\t}\t\n\t/** !#en SkeletonAnimationClip Asset.\n\t!#zh 骨骼动画剪辑。 */\n\texport class SkeletonAnimationClip extends AnimationClip {\t\n\t}\t\n\t/** !#en\n\tSkinned Mesh Renderer\n\t!#zh\n\t蒙皮渲染组件 */\n\texport class SkinnedMeshRenderer {\t\t\n\t\t/** !#en\n\t\tSkeleton Asset\n\t\t!#zh\n\t\t骨骼资源 */\n\t\tskeleton: sp.Skeleton;\t\t\n\t\t/** !#en\n\t\tRoot Bone\n\t\t!#zh\n\t\t骨骼根节点 */\n\t\trootBone: Node;\t\n\t}\t\n\t/** !#en Material Asset.\n\t!#zh 材质资源类。 */\n\texport class Material extends Asset {\t\n\t}\t\n\t/** !#en cc.EditBox is a component for inputing text, you can use it to gather small amounts of text from users.\n\t!#zh EditBox 组件，用于获取用户的输入文本。 */\n\texport class EditBox extends Component {\t\t\n\t\t/** !#en Input string of EditBox.\n\t\t!#zh 输入框的初始输入内容，如果为空则会显示占位符的文本。 */\n\t\tstring: string;\t\t\n\t\t/** !#en The Label component attached to the node for EditBox's input text label\n\t\t!#zh 输入框输入文本节点上挂载的 Label 组件对象 */\n\t\ttextLabel: Label;\t\t\n\t\t/** !en The Label component attached to the node for EditBox's placeholder text label\n\t\t!zh 输入框占位符节点上挂载的 Label 组件对象 */\n\t\tplaceholderLabel: Label;\t\t\n\t\t/** !#en The Sprite component attached to the node for EditBox's background\n\t\t!#zh 输入框背景节点上挂载的 Sprite 组件对象 */\n\t\tbackground: Sprite;\t\t\n\t\t/** !#en The background image of EditBox. This property will be removed in the future, use editBox.background instead please.\n\t\t!#zh 输入框的背景图片。 该属性会在将来的版本中移除，请用 editBox.background */\n\t\tbackgroundImage: SpriteFrame;\t\t\n\t\t/** !#en\n\t\tThe return key type of EditBox.\n\t\tNote: it is meaningless for web platforms and desktop platforms.\n\t\t!#zh\n\t\t指定移动设备上面回车按钮的样式。\n\t\t注意：这个选项对 web 平台与 desktop 平台无效。 */\n\t\treturnType: EditBox.KeyboardReturnType;\t\t\n\t\t/** !#en Set the input flags that are to be applied to the EditBox.\n\t\t!#zh 指定输入标志位，可以指定输入方式为密码或者单词首字母大写。 */\n\t\tinputFlag: EditBox.InputFlag;\t\t\n\t\t/** !#en\n\t\tSet the input mode of the edit box.\n\t\tIf you pass ANY, it will create a multiline EditBox.\n\t\t!#zh\n\t\t指定输入模式: ANY表示多行输入，其它都是单行输入，移动平台上还可以指定键盘样式。 */\n\t\tinputMode: EditBox.InputMode;\t\t\n\t\t/** !#en Font size of the input text. This property will be removed in the future, use editBox.textLabel.fontSize instead please.\n\t\t!#zh 输入框文本的字体大小。 该属性会在将来的版本中移除，请使用 editBox.textLabel.fontSize。 */\n\t\tfontSize: number;\t\t\n\t\t/** !#en Change the lineHeight of displayed text. This property will be removed in the future, use editBox.textLabel.lineHeight instead.\n\t\t!#zh 输入框文本的行高。该属性会在将来的版本中移除，请使用 editBox.textLabel.lineHeight */\n\t\tlineHeight: number;\t\t\n\t\t/** !#en Font color of the input text. This property will be removed in the future, use editBox.textLabel.node.color instead.\n\t\t!#zh 输入框文本的颜色。该属性会在将来的版本中移除，请使用 editBox.textLabel.node.color */\n\t\tfontColor: Color;\t\t\n\t\t/** !#en The display text of placeholder.\n\t\t!#zh 输入框占位符的文本内容。 */\n\t\tplaceholder: string;\t\t\n\t\t/** !#en The font size of placeholder. This property will be removed in the future, use editBox.placeholderLabel.fontSize instead.\n\t\t!#zh 输入框占位符的字体大小。该属性会在将来的版本中移除，请使用 editBox.placeholderLabel.fontSize */\n\t\tplaceholderFontSize: number;\t\t\n\t\t/** !#en The font color of placeholder. This property will be removed in the future, use editBox.placeholderLabel.node.color instead.\n\t\t!#zh 输入框占位符的字体颜色。该属性会在将来的版本中移除，请使用 editBox.placeholderLabel.node.color */\n\t\tplaceholderFontColor: Color;\t\t\n\t\t/** !#en The maximize input length of EditBox.\n\t\t- If pass a value less than 0, it won't limit the input number of characters.\n\t\t- If pass 0, it doesn't allow input any characters.\n\t\t!#zh 输入框最大允许输入的字符个数。\n\t\t- 如果值为小于 0 的值，则不会限制输入字符个数。\n\t\t- 如果值为 0，则不允许用户进行任何输入。 */\n\t\tmaxLength: number;\t\t\n\t\t/** !#en The input is always visible and be on top of the game view (only useful on Web), this property will be removed on v2.1\n\t\t!zh 输入框总是可见，并且永远在游戏视图的上面（这个属性只有在 Web 上面修改有意义），该属性会在 v2.1 中移除\n\t\tNote: only available on Web at the moment. */\n\t\tstayOnTop: boolean;\t\t\n\t\t/** !#en Set the tabIndex of the DOM input element (only useful on Web).\n\t\t!#zh 修改 DOM 输入元素的 tabIndex（这个属性只有在 Web 上面修改有意义）。 */\n\t\ttabIndex: number;\t\t\n\t\t/** !#en The event handler to be called when EditBox began to edit text.\n\t\t!#zh 开始编辑文本输入框触发的事件回调。 */\n\t\teditingDidBegan: Component.EventHandler[];\t\t\n\t\t/** !#en The event handler to be called when EditBox text changes.\n\t\t!#zh 编辑文本输入框时触发的事件回调。 */\n\t\ttextChanged: Component.EventHandler[];\t\t\n\t\t/** !#en The event handler to be called when EditBox edit ends.\n\t\t!#zh 结束编辑文本输入框时触发的事件回调。 */\n\t\teditingDidEnded: Component.EventHandler[];\t\t\n\t\t/** !#en The event handler to be called when return key is pressed. Windows is not supported.\n\t\t!#zh 当用户按下回车按键时的事件回调，目前不支持 windows 平台 */\n\t\teditingReturn: Component.EventHandler[];\t\t\n\t\t/**\n\t\t!#en Let the EditBox get focus, this method will be removed on v2.1\n\t\t!#zh 让当前 EditBox 获得焦点, 这个方法会在 v2.1 中移除 \n\t\t*/\n\t\tsetFocus(): void;\t\t\n\t\t/**\n\t\t!#en Let the EditBox get focus\n\t\t!#zh 让当前 EditBox 获得焦点 \n\t\t*/\n\t\tfocus(): void;\t\t\n\t\t/**\n\t\t!#en Let the EditBox lose focus\n\t\t!#zh 让当前 EditBox 失去焦点 \n\t\t*/\n\t\tblur(): void;\t\t\n\t\t/**\n\t\t!#en Determine whether EditBox is getting focus or not.\n\t\t!#zh 判断 EditBox 是否获得了焦点 \n\t\t*/\n\t\tisFocused(): void;\t\t\n\t\t/**\n\t\t!#en if you don't need the EditBox and it isn't in any running Scene, you should\n\t\tcall the destroy method on this component or the associated node explicitly.\n\t\tOtherwise, the created DOM element won't be removed from web page.\n\t\t!#zh\n\t\t如果你不再使用 EditBox，并且组件未添加到场景中，那么你必须手动对组件或所在节点调用 destroy。\n\t\t这样才能移除网页上的 DOM 节点，避免 Web 平台内存泄露。\n\t\t\n\t\t@example \n\t\t```js\n\t\teditbox.node.parent = null;  // or  editbox.node.removeFromParent(false);\n\t\t// when you don't need editbox anymore\n\t\teditbox.node.destroy();\n\t\t``` \n\t\t*/\n\t\tdestroy(): boolean;\t\n\t}\t\n\t/** undefined */\n\texport class PhysicsBoxCollider extends PhysicsCollider implements Collider.Box {\t\t\n\t\t/** !#en Position offset\n\t\t!#zh 位置偏移量 */\n\t\toffset: Vec2;\t\t\n\t\t/** !#en Box size\n\t\t!#zh 包围盒大小 */\n\t\tsize: Size;\t\n\t}\t\n\t/** undefined */\n\texport class PhysicsChainCollider extends PolygonCollider {\t\t\n\t\t/** !#en Whether the chain is loop\n\t\t!#zh 链条是否首尾相连 */\n\t\tloop: boolean;\t\t\n\t\t/** !#en Chain points\n\t\t!#zh 链条顶点数组 */\n\t\tpoints: Vec2[];\t\n\t}\t\n\t/** undefined */\n\texport class PhysicsCircleCollider extends PhysicsCollider implements Collider.Circle {\t\t\n\t\t/** !#en Position offset\n\t\t!#zh 位置偏移量 */\n\t\toffset: Vec2;\t\t\n\t\t/** !#en Circle radius\n\t\t!#zh 圆形半径 */\n\t\tradius: number;\t\n\t}\t\n\t/** undefined */\n\texport class PhysicsCollider extends Collider {\t\t\n\t\t/** !#en\n\t\tThe density.\n\t\t!#zh\n\t\t密度 */\n\t\tdensity: number;\t\t\n\t\t/** !#en\n\t\tA sensor collider collects contact information but never generates a collision response\n\t\t!#zh\n\t\t一个传感器类型的碰撞体会产生碰撞回调，但是不会发生物理碰撞效果。 */\n\t\tsensor: boolean;\t\t\n\t\t/** !#en\n\t\tThe friction coefficient, usually in the range [0,1].\n\t\t!#zh\n\t\t摩擦系数，取值一般在 [0, 1] 之间 */\n\t\tfriction: number;\t\t\n\t\t/** !#en\n\t\tThe restitution (elasticity) usually in the range [0,1].\n\t\t!#zh\n\t\t弹性系数，取值一般在 [0, 1]之间 */\n\t\trestitution: number;\t\t\n\t\t/** !#en\n\t\tPhysics collider will find the rigidbody component on the node and set to this property.\n\t\t!#zh\n\t\t碰撞体会在初始化时查找节点上是否存在刚体，如果查找成功则赋值到这个属性上。 */\n\t\tbody: RigidBody;\t\t\n\t\t/**\n\t\t!#en\n\t\tApply current changes to collider, this will regenerate inner box2d fixtures.\n\t\t!#zh\n\t\t应用当前 collider 中的修改，调用此函数会重新生成内部 box2d 的夹具。 \n\t\t*/\n\t\tapply(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the world aabb of the collider\n\t\t!#zh\n\t\t获取碰撞体的世界坐标系下的包围盒 \n\t\t*/\n\t\tgetAABB(): void;\t\n\t}\t\n\t/** undefined */\n\texport class PhysicsPolygonCollider extends PhysicsCollider implements Collider.Polygon {\t\t\n\t\t/** !#en Position offset\n\t\t!#zh 位置偏移量 */\n\t\toffset: Vec2;\t\t\n\t\t/** !#en Polygon points\n\t\t!#zh 多边形顶点数组 */\n\t\tpoints: Vec2[];\t\n\t}\t\n\t/** !#en\n\tBase class for joints to connect rigidbody.\n\t!#zh\n\t关节类的基类 */\n\texport class Joint extends Component {\t\t\n\t\t/** !#en\n\t\tThe anchor of the rigidbody.\n\t\t!#zh\n\t\t刚体的锚点。 */\n\t\tanchor: Vec2;\t\t\n\t\t/** !#en\n\t\tThe anchor of the connected rigidbody.\n\t\t!#zh\n\t\t关节另一端刚体的锚点。 */\n\t\tconnectedAnchor: Vec2;\t\t\n\t\t/** !#en\n\t\tThe rigidbody to which the other end of the joint is attached.\n\t\t!#zh\n\t\t关节另一端链接的刚体 */\n\t\tconnectedBody: RigidBody;\t\t\n\t\t/** !#en\n\t\tShould the two rigid bodies connected with this joint collide with each other?\n\t\t!#zh\n\t\t链接到关节上的两个刚体是否应该相互碰撞？ */\n\t\tcollideConnected: boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tApply current changes to joint, this will regenerate inner box2d joint.\n\t\t!#zh\n\t\t应用当前关节中的修改，调用此函数会重新生成内部 box2d 的关节。 \n\t\t*/\n\t\tapply(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the anchor point on rigidbody in world coordinates.\n\t\t!#zh\n\t\t获取刚体世界坐标系下的锚点。 \n\t\t*/\n\t\tgetWorldAnchor(): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the anchor point on connected rigidbody in world coordinates.\n\t\t!#zh\n\t\t获取链接刚体世界坐标系下的锚点。 \n\t\t*/\n\t\tgetWorldConnectedAnchor(): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tGets the reaction force of the joint.\n\t\t!#zh\n\t\t获取关节的反作用力。\n\t\t@param timeStep The time to calculate the reaction force for. \n\t\t*/\n\t\tgetReactionForce(timeStep: number): Vec2;\t\t\n\t\t/**\n\t\t!#en\n\t\tGets the reaction torque of the joint.\n\t\t!#zh\n\t\t获取关节的反扭矩。\n\t\t@param timeStep The time to calculate the reaction torque for. \n\t\t*/\n\t\tgetReactionTorque(timeStep: number): number;\t\n\t}\t\n\t/** !#en\n\tA distance joint constrains two points on two bodies\n\tto remain at a fixed distance from each other. You can view\n\tthis as a massless, rigid rod.\n\t!#zh\n\t距离关节通过一个固定的长度来约束关节链接的两个刚体。你可以将它想象成一个无质量，坚固的木棍。 */\n\texport class DistanceJoint extends Joint {\t\t\n\t\t/** !#en\n\t\tThe distance separating the two ends of the joint.\n\t\t!#zh\n\t\t关节两端的距离 */\n\t\tdistance: number;\t\t\n\t\t/** !#en\n\t\tThe spring frequency.\n\t\t!#zh\n\t\t弹性系数。 */\n\t\tfrequency: number;\t\t\n\t\t/** !#en\n\t\tThe damping ratio.\n\t\t!#zh\n\t\t阻尼，表示关节变形后，恢复到初始状态受到的阻力。 */\n\t\tdampingRatio: number;\t\n\t}\t\n\t/** !#en\n\tA motor joint is used to control the relative motion\n\tbetween two bodies. A typical usage is to control the movement\n\tof a dynamic body with respect to the ground.\n\t!#zh\n\t马达关节被用来控制两个刚体间的相对运动。\n\t一个典型的例子是用来控制一个动态刚体相对于地面的运动。 */\n\texport class MotorJoint extends Joint {\t\t\n\t\t/** !#en\n\t\tThe anchor of the rigidbody.\n\t\t!#zh\n\t\t刚体的锚点。 */\n\t\tanchor: Vec2;\t\t\n\t\t/** !#en\n\t\tThe anchor of the connected rigidbody.\n\t\t!#zh\n\t\t关节另一端刚体的锚点。 */\n\t\tconnectedAnchor: Vec2;\t\t\n\t\t/** !#en\n\t\tThe linear offset from connected rigidbody to rigidbody.\n\t\t!#zh\n\t\t关节另一端的刚体相对于起始端刚体的位置偏移量 */\n\t\tlinearOffset: Vec2;\t\t\n\t\t/** !#en\n\t\tThe angular offset from connected rigidbody to rigidbody.\n\t\t!#zh\n\t\t关节另一端的刚体相对于起始端刚体的角度偏移量 */\n\t\tangularOffset: number;\t\t\n\t\t/** !#en\n\t\tThe maximum force can be applied to rigidbody.\n\t\t!#zh\n\t\t可以应用于刚体的最大的力值 */\n\t\tmaxForce: number;\t\t\n\t\t/** !#en\n\t\tThe maximum torque can be applied to rigidbody.\n\t\t!#zh\n\t\t可以应用于刚体的最大扭矩值 */\n\t\tmaxTorque: number;\t\t\n\t\t/** !#en\n\t\tThe position correction factor in the range [0,1].\n\t\t!#zh\n\t\t位置矫正系数，范围为 [0, 1] */\n\t\tcorrectionFactor: number;\t\n\t}\t\n\t/** !#en\n\tA mouse joint is used to make a point on a body track a\n\tspecified world point. This a soft constraint with a maximum\n\tforce. This allows the constraint to stretch and without\n\tapplying huge forces.\n\tMouse Joint will auto register the touch event with the mouse region node,\n\tand move the choosed rigidbody in touch move event.\n\tNote : generally mouse joint only used in test bed.\n\t!#zh\n\t鼠标关节用于使刚体上的一个点追踪一个指定的世界坐标系下的位置。\n\t鼠标关节可以指定一个最大的里来施加一个柔和的约束。\n\t鼠标关节会自动使用 mouse region 节点来注册鼠标事件，并且在触摸移动事件中移动选中的刚体。\n\t注意：一般鼠标关节只在测试环境中使用。 */\n\texport class MouseJoint extends Joint {\t\t\n\t\t/** !#en\n\t\tThe anchor of the rigidbody.\n\t\t!#zh\n\t\t刚体的锚点。 */\n\t\tanchor: Vec2;\t\t\n\t\t/** !#en\n\t\tThe anchor of the connected rigidbody.\n\t\t!#zh\n\t\t关节另一端刚体的锚点。 */\n\t\tconnectedAnchor: Vec2;\t\t\n\t\t/** !#en\n\t\tThe node used to register touch evnet.\n\t\tIf this is null, it will be the joint's node.\n\t\t!#zh\n\t\t用于注册触摸事件的节点。\n\t\t如果没有设置这个值，那么将会使用关节的节点来注册事件。 */\n\t\tmouseRegion: Node;\t\t\n\t\t/** !#en\n\t\tThe target point.\n\t\tThe mouse joint will move choosed rigidbody to target point.\n\t\t!#zh\n\t\t目标点，鼠标关节将会移动选中的刚体到指定的目标点 */\n\t\ttarget: Vec2;\t\t\n\t\t/** !#en\n\t\tThe spring frequency.\n\t\t!#zh\n\t\t弹簧系数。 */\n\t\tfrequency: number;\t\t\n\t\t/** !#en\n\t\tThe damping ratio.\n\t\t!#zh\n\t\t阻尼，表示关节变形后，恢复到初始状态受到的阻力。 */\n\t\t0: number;\t\t\n\t\t/** !#en\n\t\tThe maximum force\n\t\t!#zh\n\t\t最大阻力值 */\n\t\tmaxForce: number;\t\n\t}\t\n\t/** !#en\n\tA prismatic joint. This joint provides one degree of freedom: translation\n\talong an axis fixed in rigidbody. Relative rotation is prevented. You can\n\tuse a joint limit to restrict the range of motion and a joint motor to\n\tdrive the motion or to model joint friction.\n\t!#zh\n\t移动关节指定了只能在一个方向上移动刚体。\n\t你可以开启关节限制来设置刚体运行移动的间距，也可以开启马达来使用关节马达驱动刚体的运行。 */\n\texport class PrismaticJoint extends Joint {\t\t\n\t\t/** !#en\n\t\tThe local joint axis relative to rigidbody.\n\t\t!#zh\n\t\t指定刚体可以移动的方向。 */\n\t\tlocalAxisA: Vec2;\t\t\n\t\t/** !#en\n\t\tThe reference angle.\n\t\t!#zh\n\t\t相对角度 */\n\t\treferenceAngle: number;\t\t\n\t\t/** !#en\n\t\tEnable joint distance limit?\n\t\t!#zh\n\t\t是否开启关节的距离限制？ */\n\t\tenableLimit: boolean;\t\t\n\t\t/** !#en\n\t\tEnable joint motor?\n\t\t!#zh\n\t\t是否开启关节马达？ */\n\t\tenableMotor: boolean;\t\t\n\t\t/** !#en\n\t\tThe lower joint limit.\n\t\t!#zh\n\t\t刚体能够移动的最小值 */\n\t\tlowerLimit: number;\t\t\n\t\t/** !#en\n\t\tThe upper joint limit.\n\t\t!#zh\n\t\t刚体能够移动的最大值 */\n\t\tupperLimit: number;\t\t\n\t\t/** !#en\n\t\tThe maxium force can be applied to rigidbody to rearch the target motor speed.\n\t\t!#zh\n\t\t可以施加到刚体的最大力。 */\n\t\tmaxMotorForce: number;\t\t\n\t\t/** !#en\n\t\tThe expected motor speed.\n\t\t!#zh\n\t\t期望的马达速度。 */\n\t\tmotorSpeed: number;\t\n\t}\t\n\t/** !#en\n\tA revolute joint constrains two bodies to share a common point while they\n\tare free to rotate about the point. The relative rotation about the shared\n\tpoint is the joint angle. You can limit the relative rotation with\n\ta joint limit that specifies a lower and upper angle. You can use a motor\n\tto drive the relative rotation about the shared point. A maximum motor torque\n\tis provided so that infinite forces are not generated.\n\t!#zh\n\t旋转关节可以约束两个刚体围绕一个点来进行旋转。\n\t你可以通过开启关节限制来限制旋转的最大角度和最小角度。\n\t你可以通过开启马达来施加一个扭矩力来驱动这两个刚体在这一点上的相对速度。 */\n\texport class RevoluteJoint extends Joint {\t\t\n\t\t/** !#en\n\t\tThe reference angle.\n\t\tAn angle between bodies considered to be zero for the joint angle.\n\t\t!#zh\n\t\t相对角度。\n\t\t两个物体之间角度为零时可以看作相等于关节角度 */\n\t\treferenceAngle: number;\t\t\n\t\t/** !#en\n\t\tThe lower angle.\n\t\t!#zh\n\t\t角度的最低限制。 */\n\t\tlowerAngle: number;\t\t\n\t\t/** !#en\n\t\tThe upper angle.\n\t\t!#zh\n\t\t角度的最高限制。 */\n\t\tupperAngle: number;\t\t\n\t\t/** !#en\n\t\tThe maxium torque can be applied to rigidbody to rearch the target motor speed.\n\t\t!#zh\n\t\t可以施加到刚体的最大扭矩。 */\n\t\tmaxMotorTorque: number;\t\t\n\t\t/** !#en\n\t\tThe expected motor speed.\n\t\t!#zh\n\t\t期望的马达速度。 */\n\t\tmotorSpeed: number;\t\t\n\t\t/** !#en\n\t\tEnable joint limit?\n\t\t!#zh\n\t\t是否开启关节的限制？ */\n\t\tenableLimit: boolean;\t\t\n\t\t/** !#en\n\t\tEnable joint motor?\n\t\t!#zh\n\t\t是否开启关节马达？ */\n\t\tenableMotor: boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the joint angle.\n\t\t!#zh\n\t\t获取关节角度。 \n\t\t*/\n\t\tgetJointAngle(): number;\t\n\t}\t\n\t/** !#en\n\tA rope joint enforces a maximum distance between two points\n\ton two bodies. It has no other effect.\n\tWarning: if you attempt to change the maximum length during\n\tthe simulation you will get some non-physical behavior.\n\t!#zh\n\t绳子关节只指定两个刚体间的最大距离，没有其他的效果。\n\t注意：如果你试图动态修改关节的长度，这有可能会得到一些意外的效果。 */\n\texport class RopeJoint extends Joint {\t\t\n\t\t/** !#en\n\t\tThe max length.\n\t\t!#zh\n\t\t最大长度。 */\n\t\tmaxLength: number;\t\n\t}\t\n\t/** !#en\n\tA weld joint essentially glues two bodies together. A weld joint may\n\tdistort somewhat because the island constraint solver is approximate.\n\t!#zh\n\t熔接关节相当于将两个刚体粘在了一起。\n\t熔接关节可能会使某些东西失真，因为约束求解器算出的都是近似值。 */\n\texport class WeldJoint extends Joint {\t\t\n\t\t/** !#en\n\t\tThe reference angle.\n\t\t!#zh\n\t\t相对角度。 */\n\t\treferenceAngle: number;\t\t\n\t\t/** !#en\n\t\tThe frequency.\n\t\t!#zh\n\t\t弹性系数。 */\n\t\tfrequency: number;\t\t\n\t\t/** !#en\n\t\tThe damping ratio.\n\t\t!#zh\n\t\t阻尼，表示关节变形后，恢复到初始状态受到的阻力。 */\n\t\t0: number;\t\n\t}\t\n\t/** !#en\n\tA wheel joint. This joint provides two degrees of freedom: translation\n\talong an axis fixed in bodyA and rotation in the plane. You can use a joint motor to drive\n\tthe rotation or to model rotational friction.\n\tThis joint is designed for vehicle suspensions.\n\t!#zh\n\t轮子关节提供两个维度的自由度：旋转和沿着指定方向上位置的移动。\n\t你可以通过开启关节马达来使用马达驱动刚体的旋转。\n\t轮组关节是专门为机动车类型设计的。 */\n\texport class WheelJoint extends Joint {\t\t\n\t\t/** !#en\n\t\tThe local joint axis relative to rigidbody.\n\t\t!#zh\n\t\t指定刚体可以移动的方向。 */\n\t\tlocalAxisA: Vec2;\t\t\n\t\t/** !#en\n\t\tThe maxium torque can be applied to rigidbody to rearch the target motor speed.\n\t\t!#zh\n\t\t可以施加到刚体的最大扭矩。 */\n\t\tmaxMotorTorque: number;\t\t\n\t\t/** !#en\n\t\tThe expected motor speed.\n\t\t!#zh\n\t\t期望的马达速度。 */\n\t\tmotorSpeed: number;\t\t\n\t\t/** !#en\n\t\tEnable joint motor?\n\t\t!#zh\n\t\t是否开启关节马达？ */\n\t\tenableMotor: boolean;\t\t\n\t\t/** !#en\n\t\tThe spring frequency.\n\t\t!#zh\n\t\t弹性系数。 */\n\t\tfrequency: number;\t\t\n\t\t/** !#en\n\t\tThe damping ratio.\n\t\t!#zh\n\t\t阻尼，表示关节变形后，恢复到初始状态受到的阻力。 */\n\t\tdampingRatio: number;\t\n\t}\t\n\t/** !#en Manager the dynamic atlas.\n\t!#zh 管理动态图集。 */\n\texport class DynamicAtlasManager {\t\t\n\t\t/** !#en Enabled or Disabled dynamic atlas.\n\t\t!#zh 开启或者关闭动态图集。 */\n\t\tenabled: boolean;\t\t\n\t\t/** !#en The maximum number of atlas that can be created.\n\t\t!#zh 可以创建的最大图集数量。 */\n\t\tmaxAtlasCount: number;\t\t\n\t\t/** !#en The size of the atlas that was created\n\t\t!#zh 创建的图集的宽高 */\n\t\ttextureSize: number;\t\t\n\t\t/** !#en The maximum size of the picture that can be added to the atlas.\n\t\t!#zh 可以添加进图集的图片的最大尺寸。 */\n\t\tmaxFrameSize: number;\t\t\n\t\t/** !#en The minimum size of the picture that can be added to the atlas.\n\t\t!#zh 可以添加进图集的图片的最小尺寸。 */\n\t\tminFrameSize: number;\t\t\n\t\t/**\n\t\t!#en Append a sprite frame into the dynamic atlas.\n\t\t!#zh 添加碎图进入动态图集。\n\t\t@param spriteFrame spriteFrame \n\t\t*/\n\t\tinsertSpriteFrame(spriteFrame: SpriteFrame): void;\t\t\n\t\t/**\n\t\t!#en Resets all dynamic atlas, and the existing ones will be destroyed.\n\t\t!#zh 重置所有动态图集，已有的动态图集会被销毁。 \n\t\t*/\n\t\treset(): void;\t\t\n\t\t/**\n\t\t!#en Displays all the dynamic atlas in the current scene, which you can use to view the current atlas state.\n\t\t!#zh 在当前场景中显示所有动态图集，可以用来查看当前的合图状态。\n\t\t@param show show \n\t\t*/\n\t\tshowDebug(show: boolean): void;\t\n\t}\t\n\t/****************************************************\n\t* TiledMap\n\t*****************************************************/\n\t\n\texport namespace TiledMap {\t\t\n\t\t/** !#en The orientation of tiled map.\n\t\t!#zh Tiled Map 地图方向。 */\n\t\texport enum Orientation {\t\t\t\n\t\t\tORTHO = 0,\n\t\t\tHEX = 0,\n\t\t\tISO = 0,\n\t\t\tNONE = 0,\n\t\t\tMAP = 0,\n\t\t\tLAYER = 0,\n\t\t\tOBJECTGROUP = 0,\n\t\t\tOBJECT = 0,\n\t\t\tTILE = 0,\n\t\t\tHORIZONTAL = 0,\n\t\t\tVERTICAL = 0,\n\t\t\tDIAGONAL = 0,\n\t\t\tFLIPPED_ALL = 0,\n\t\t\tFLIPPED_MASK = 0,\n\t\t\tSTAGGERAXIS_X = 0,\n\t\t\tSTAGGERAXIS_Y = 0,\n\t\t\tSTAGGERINDEX_ODD = 0,\n\t\t\tSTAGGERINDEX_EVEN = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* TiledMap\n\t*****************************************************/\n\t\n\texport namespace TiledMap {\t\t\n\t\t/** !#en TiledMap Object Type\n\t\t!#zh 地图物体类型 */\n\t\texport enum TMXObjectType {\t\t\t\n\t\t\tRECT = 0,\n\t\t\tELLIPSE = 0,\n\t\t\tPOLYGON = 0,\n\t\t\tPOLYLINE = 0,\n\t\t\tIMAGE = 0,\n\t\t\tTEXT = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* audioEngine\n\t*****************************************************/\n\t\n\texport namespace audioEngine {\t\t\n\t\t/** !#en Audio state.\n\t\t!#zh 声音播放状态 */\n\t\texport enum AudioState {\t\t\t\n\t\t\tERROR = 0,\n\t\t\tINITIALZING = 0,\n\t\t\tPLAYING = 0,\n\t\t\tPAUSED = 0,\n\t\t\tSTOPPED = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* VideoPlayer\n\t*****************************************************/\n\t\n\texport namespace VideoPlayer {\t\t\n\t\t/** !#en Video event type\n\t\t!#zh 视频事件类型 */\n\t\texport enum EventType {\t\t\t\n\t\t\tPLAYING = 0,\n\t\t\tPAUSED = 0,\n\t\t\tSTOPPED = 0,\n\t\t\tCOMPLETED = 0,\n\t\t\tMETA_LOADED = 0,\n\t\t\tCLICKED = 0,\n\t\t\tREADY_TO_PLAY = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* VideoPlayer\n\t*****************************************************/\n\t\n\texport namespace VideoPlayer {\t\t\n\t\t/** !#en Enum for video resouce type type.\n\t\t!#zh 视频来源 */\n\t\texport enum ResourceType {\t\t\t\n\t\t\tREMOTE = 0,\n\t\t\tLOCAL = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* WebView\n\t*****************************************************/\n\t\n\texport namespace WebView {\t\t\n\t\t/** !#en WebView event type\n\t\t!#zh 网页视图事件类型 */\n\t\texport enum EventType {\t\t\t\n\t\t\tLOADED = 0,\n\t\t\tLOADING = 0,\n\t\t\tERROR = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* ParticleSystem\n\t*****************************************************/\n\t\n\texport namespace ParticleSystem {\t\t\n\t\t/** !#en Enum for emitter modes\n\t\t!#zh 发射模式 */\n\t\texport enum EmitterMode {\t\t\t\n\t\t\tGRAVITY = 0,\n\t\t\tRADIUS = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* ParticleSystem\n\t*****************************************************/\n\t\n\texport namespace ParticleSystem {\t\t\n\t\t/** !#en Enum for particles movement type.\n\t\t!#zh 粒子位置类型 */\n\t\texport enum PositionType {\t\t\t\n\t\t\tFREE = 0,\n\t\t\tRELATIVE = 0,\n\t\t\tGROUPED = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* debug\n\t*****************************************************/\n\t\n\texport namespace debug {\t\t\n\t\t/** !#en Enum for debug modes.\n\t\t!#zh 调试模式 */\n\t\texport enum DebugMode {\t\t\t\n\t\t\tNONE = 0,\n\t\t\tINFO = 0,\n\t\t\tWARN = 0,\n\t\t\tERROR = 0,\n\t\t\tINFO_FOR_WEB_PAGE = 0,\n\t\t\tWARN_FOR_WEB_PAGE = 0,\n\t\t\tERROR_FOR_WEB_PAGE = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Node\n\t*****************************************************/\n\t\n\texport namespace Node {\t\t\n\t\t/** !#en Node's local dirty properties flag\n\t\t!#zh Node 的本地属性 dirty 状态位 */\n\t\texport enum _LocalDirtyFlag {\t\t\t\n\t\t\tPOSITION = 0,\n\t\t\tSCALE = 0,\n\t\t\tROTATION = 0,\n\t\t\tSKEW = 0,\n\t\t\tRT = 0,\n\t\t\tALL = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Node\n\t*****************************************************/\n\t\n\texport namespace Node {\t\t\n\t\t/** !#en The event type supported by Node\n\t\t!#zh Node 支持的事件类型 */\n\t\texport class EventType {\t\t\t\n\t\t\t/** !#en The event type for touch start event, you can use its value directly: 'touchstart'\n\t\t\t!#zh 当手指触摸到屏幕时。 */\n\t\t\tstatic TOUCH_START: string;\t\t\t\n\t\t\t/** !#en The event type for touch move event, you can use its value directly: 'touchmove'\n\t\t\t!#zh 当手指在屏幕上移动时。 */\n\t\t\tstatic TOUCH_MOVE: string;\t\t\t\n\t\t\t/** !#en The event type for touch end event, you can use its value directly: 'touchend'\n\t\t\t!#zh 当手指在目标节点区域内离开屏幕时。 */\n\t\t\tstatic TOUCH_END: string;\t\t\t\n\t\t\t/** !#en The event type for touch end event, you can use its value directly: 'touchcancel'\n\t\t\t!#zh 当手指在目标节点区域外离开屏幕时。 */\n\t\t\tstatic TOUCH_CANCEL: string;\t\t\t\n\t\t\t/** !#en The event type for mouse down events, you can use its value directly: 'mousedown'\n\t\t\t!#zh 当鼠标按下时触发一次。 */\n\t\t\tstatic MOUSE_DOWN: string;\t\t\t\n\t\t\t/** !#en The event type for mouse move events, you can use its value directly: 'mousemove'\n\t\t\t!#zh 当鼠标在目标节点在目标节点区域中移动时，不论是否按下。 */\n\t\t\tstatic MOUSE_MOVE: string;\t\t\t\n\t\t\t/** !#en The event type for mouse enter target events, you can use its value directly: 'mouseenter'\n\t\t\t!#zh 当鼠标移入目标节点区域时，不论是否按下。 */\n\t\t\tstatic MOUSE_ENTER: string;\t\t\t\n\t\t\t/** !#en The event type for mouse leave target events, you can use its value directly: 'mouseleave'\n\t\t\t!#zh 当鼠标移出目标节点区域时，不论是否按下。 */\n\t\t\tstatic MOUSE_LEAVE: string;\t\t\t\n\t\t\t/** !#en The event type for mouse up events, you can use its value directly: 'mouseup'\n\t\t\t!#zh 当鼠标从按下状态松开时触发一次。 */\n\t\t\tstatic MOUSE_UP: string;\t\t\t\n\t\t\t/** !#en The event type for mouse wheel events, you can use its value directly: 'mousewheel'\n\t\t\t!#zh 当鼠标滚轮滚动时。 */\n\t\t\tstatic MOUSE_WHEEL: string;\t\t\t\n\t\t\t/** !#en The event type for position change events.\n\t\t\tPerformance note, this event will be triggered every time corresponding properties being changed,\n\t\t\tif the event callback have heavy logic it may have great performance impact, try to avoid such scenario.\n\t\t\t!#zh 当节点位置改变时触发的事件。\n\t\t\t性能警告：这个事件会在每次对应的属性被修改时触发，如果事件回调损耗较高，有可能对性能有很大的负面影响，请尽量避免这种情况。 */\n\t\t\tstatic POSITION_CHANGED: string;\t\t\t\n\t\t\t/** !#en The event type for rotation change events.\n\t\t\tPerformance note, this event will be triggered every time corresponding properties being changed,\n\t\t\tif the event callback have heavy logic it may have great performance impact, try to avoid such scenario.\n\t\t\t!#zh 当节点旋转改变时触发的事件。\n\t\t\t性能警告：这个事件会在每次对应的属性被修改时触发，如果事件回调损耗较高，有可能对性能有很大的负面影响，请尽量避免这种情况。 */\n\t\t\tstatic ROTATION_CHANGED: string;\t\t\t\n\t\t\t/** !#en The event type for scale change events.\n\t\t\tPerformance note, this event will be triggered every time corresponding properties being changed,\n\t\t\tif the event callback have heavy logic it may have great performance impact, try to avoid such scenario.\n\t\t\t!#zh 当节点缩放改变时触发的事件。\n\t\t\t性能警告：这个事件会在每次对应的属性被修改时触发，如果事件回调损耗较高，有可能对性能有很大的负面影响，请尽量避免这种情况。 */\n\t\t\tstatic SCALE_CHANGED: string;\t\t\t\n\t\t\t/** !#en The event type for size change events.\n\t\t\tPerformance note, this event will be triggered every time corresponding properties being changed,\n\t\t\tif the event callback have heavy logic it may have great performance impact, try to avoid such scenario.\n\t\t\t!#zh 当节点尺寸改变时触发的事件。\n\t\t\t性能警告：这个事件会在每次对应的属性被修改时触发，如果事件回调损耗较高，有可能对性能有很大的负面影响，请尽量避免这种情况。 */\n\t\t\tstatic SIZE_CHANGED: string;\t\t\t\n\t\t\t/** !#en The event type for anchor point change events.\n\t\t\tPerformance note, this event will be triggered every time corresponding properties being changed,\n\t\t\tif the event callback have heavy logic it may have great performance impact, try to avoid such scenario.\n\t\t\t!#zh 当节点锚点改变时触发的事件。\n\t\t\t性能警告：这个事件会在每次对应的属性被修改时触发，如果事件回调损耗较高，有可能对性能有很大的负面影响，请尽量避免这种情况。 */\n\t\t\tstatic ANCHOR_CHANGED: string;\t\t\t\n\t\t\t/** !#en The event type for color change events.\n\t\t\tPerformance note, this event will be triggered every time corresponding properties being changed,\n\t\t\tif the event callback have heavy logic it may have great performance impact, try to avoid such scenario.\n\t\t\t!#zh 当节点颜色改变时触发的事件。\n\t\t\t性能警告：这个事件会在每次对应的属性被修改时触发，如果事件回调损耗较高，有可能对性能有很大的负面影响，请尽量避免这种情况。 */\n\t\t\tstatic COLOR_CHANGED: string;\t\t\t\n\t\t\t/** !#en The event type for new child added events.\n\t\t\t!#zh 当新的子节点被添加时触发的事件。 */\n\t\t\tstatic CHILD_ADDED: string;\t\t\t\n\t\t\t/** !#en The event type for child removed events.\n\t\t\t!#zh 当子节点被移除时触发的事件。 */\n\t\t\tstatic CHILD_REMOVED: string;\t\t\t\n\t\t\t/** !#en The event type for children reorder events.\n\t\t\t!#zh 当子节点顺序改变时触发的事件。 */\n\t\t\tstatic CHILD_REORDER: string;\t\t\t\n\t\t\t/** !#en The event type for node group changed events.\n\t\t\t!#zh 当节点归属群组发生变化时触发的事件。 */\n\t\t\tstatic GROUP_CHANGED: string;\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Camera\n\t*****************************************************/\n\t\n\texport namespace Camera {\t\t\n\t\t/** !#en Values for Camera.clearFlags, determining what to clear when rendering a Camera.\n\t\t!#zh 摄像机清除标记位，决定摄像机渲染时会清除哪些状态 */\n\t\texport enum ClearFlags {\t\t\t\n\t\t\tCOLOR = 0,\n\t\t\tDEPTH = 0,\n\t\t\tSTENCIL = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Light\n\t*****************************************************/\n\t\n\texport namespace Light {\t\t\n\t\t/** !#en The light source type\n\t\t\n\t\t!#zh 光源类型 */\n\t\texport enum Type {\t\t\t\n\t\t\tDIRECTIONAL = 0,\n\t\t\tPOINT = 0,\n\t\t\tSPOT = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Light\n\t*****************************************************/\n\t\n\texport namespace Light {\t\t\n\t\t/** !#en The shadow type\n\t\t\n\t\t!#zh 阴影类型 */\n\t\texport enum ShadowType {\t\t\t\n\t\t\tNONE = 0,\n\t\t\tHARD = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Prefab\n\t*****************************************************/\n\t\n\texport namespace Prefab {\t\t\n\t\t/** !#zh\n\t\tPrefab 创建实例所用的优化策略，配合 {{#crossLink \"Prefab.optimizationPolicy\"}}cc.Prefab#optimizationPolicy{{/crossLink}} 使用。\n\t\t!#en\n\t\tAn enumeration used with the {{#crossLink \"Prefab.optimizationPolicy\"}}cc.Prefab#optimizationPolicy{{/crossLink}}\n\t\tto specify how to optimize the instantiate operation. */\n\t\texport enum OptimizationPolicy {\t\t\t\n\t\t\tAUTO = 0,\n\t\t\tSINGLE_INSTANCE = 0,\n\t\t\tMULTI_INSTANCE = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Texture2D\n\t*****************************************************/\n\t\n\texport namespace Texture2D {\t\t\n\t\t/** The texture pixel format, default value is RGBA8888,\n\t\tyou should note that textures loaded by normal image files (png, jpg) can only support RGBA8888 format,\n\t\tother formats are supported by compressed file types or raw data. */\n\t\texport enum PixelFormat {\t\t\t\n\t\t\tRGB565 = 0,\n\t\t\tRGB5A1 = 0,\n\t\t\tRGBA4444 = 0,\n\t\t\tRGB888 = 0,\n\t\t\tRGBA8888 = 0,\n\t\t\tRGBA32F = 0,\n\t\t\tA8 = 0,\n\t\t\tI8 = 0,\n\t\t\tAI88 = 0,\n\t\t\tRGB_PVRTC_2BPPV1 = 0,\n\t\t\tRGBA_PVRTC_2BPPV1 = 0,\n\t\t\tRGB_PVRTC_4BPPV1 = 0,\n\t\t\tRGBA_PVRTC_4BPPV1 = 0,\n\t\t\tRGB_ETC1 = 0,\n\t\t\tRGBA_ETC1 = 0,\n\t\t\tRGB_ETC2 = 0,\n\t\t\tRGBA_ETC2 = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Texture2D\n\t*****************************************************/\n\t\n\texport namespace Texture2D {\t\t\n\t\t/** The texture wrap mode */\n\t\texport enum WrapMode {\t\t\t\n\t\t\tREPEAT = 0,\n\t\t\tCLAMP_TO_EDGE = 0,\n\t\t\tMIRRORED_REPEAT = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Texture2D\n\t*****************************************************/\n\t\n\texport namespace Texture2D {\t\t\n\t\t/** The texture filter mode */\n\t\texport enum Filter {\t\t\t\n\t\t\tLINEAR = 0,\n\t\t\tNEAREST = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Collider\n\t*****************************************************/\n\t\n\texport namespace Collider {\t\t\n\t\t/** !#en Defines a Box Collider .\n\t\t!#zh 用来定义包围盒碰撞体 */\n\t\texport class Box {\t\t\t\n\t\t\t/** !#en Position offset\n\t\t\t!#zh 位置偏移量 */\n\t\t\toffset: Vec2;\t\t\t\n\t\t\t/** !#en Box size\n\t\t\t!#zh 包围盒大小 */\n\t\t\tsize: Size;\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Collider\n\t*****************************************************/\n\t\n\texport namespace Collider {\t\t\n\t\t/** !#en Defines a Circle Collider .\n\t\t!#zh 用来定义圆形碰撞体 */\n\t\texport class Circle {\t\t\t\n\t\t\t/** !#en Position offset\n\t\t\t!#zh 位置偏移量 */\n\t\t\toffset: Vec2;\t\t\t\n\t\t\t/** !#en Circle radius\n\t\t\t!#zh 圆形半径 */\n\t\t\tradius: number;\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Collider\n\t*****************************************************/\n\t\n\texport namespace Collider {\t\t\n\t\t/** !#en Defines a Polygon Collider .\n\t\t!#zh 用来定义多边形碰撞体 */\n\t\texport class Polygon {\t\t\t\n\t\t\t/** !#en Position offset\n\t\t\t!#zh 位置偏移量 */\n\t\t\toffset: Vec2;\t\t\t\n\t\t\t/** !#en Polygon points\n\t\t\t!#zh 多边形顶点数组 */\n\t\t\tpoints: Vec2[];\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Event\n\t*****************************************************/\n\t\n\texport namespace Event {\t\t\n\t\t/** !#en The mouse event\n\t\t!#zh 鼠标事件类型 */\n\t\texport class EventMouse extends Event {\t\t\t\n\t\t\t/**\n\t\t\t!#en Sets scroll data.\n\t\t\t!#zh 设置鼠标的滚动数据。\n\t\t\t@param scrollX scrollX\n\t\t\t@param scrollY scrollY \n\t\t\t*/\n\t\t\tsetScrollData(scrollX: number, scrollY: number): void;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns the x axis scroll value.\n\t\t\t!#zh 获取鼠标滚动的X轴距离，只有滚动时才有效。 \n\t\t\t*/\n\t\t\tgetScrollX(): number;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns the y axis scroll value.\n\t\t\t!#zh 获取滚轮滚动的 Y 轴距离，只有滚动时才有效。 \n\t\t\t*/\n\t\t\tgetScrollY(): number;\t\t\t\n\t\t\t/**\n\t\t\t!#en Sets cursor location.\n\t\t\t!#zh 设置当前鼠标位置。\n\t\t\t@param x x\n\t\t\t@param y y \n\t\t\t*/\n\t\t\tsetLocation(x: number, y: number): void;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns cursor location.\n\t\t\t!#zh 获取鼠标位置对象，对象包含 x 和 y 属性。 \n\t\t\t*/\n\t\t\tgetLocation(): Vec2;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns the current cursor location in screen coordinates.\n\t\t\t!#zh 获取当前事件在游戏窗口内的坐标位置对象，对象包含 x 和 y 属性。 \n\t\t\t*/\n\t\t\tgetLocationInView(): Vec2;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns the previous touch location.\n\t\t\t!#zh 获取鼠标点击在上一次事件时的位置对象，对象包含 x 和 y 属性。 \n\t\t\t*/\n\t\t\tgetPreviousLocation(): Vec2;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns the delta distance from the previous location to current location.\n\t\t\t!#zh 获取鼠标距离上一次事件移动的距离对象，对象包含 x 和 y 属性。 \n\t\t\t*/\n\t\t\tgetDelta(): Vec2;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns the X axis delta distance from the previous location to current location.\n\t\t\t!#zh 获取鼠标距离上一次事件移动的 X 轴距离。 \n\t\t\t*/\n\t\t\tgetDeltaX(): number;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns the Y axis delta distance from the previous location to current location.\n\t\t\t!#zh 获取鼠标距离上一次事件移动的 Y 轴距离。 \n\t\t\t*/\n\t\t\tgetDeltaY(): number;\t\t\t\n\t\t\t/**\n\t\t\t!#en Sets mouse button.\n\t\t\t!#zh 设置鼠标按键。\n\t\t\t@param button button \n\t\t\t*/\n\t\t\tsetButton(button: number): void;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns mouse button.\n\t\t\t!#zh 获取鼠标按键。 \n\t\t\t*/\n\t\t\tgetButton(): number;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns location X axis data.\n\t\t\t!#zh 获取鼠标当前位置 X 轴。 \n\t\t\t*/\n\t\t\tgetLocationX(): number;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns location Y axis data.\n\t\t\t!#zh 获取鼠标当前位置 Y 轴。 \n\t\t\t*/\n\t\t\tgetLocationY(): number;\t\t\t\n\t\t\t/** !#en The none event code of mouse event.\n\t\t\t!#zh 无。 */\n\t\t\tstatic NONE: number;\t\t\t\n\t\t\t/** !#en The event type code of mouse down event.\n\t\t\t!#zh 鼠标按下事件。 */\n\t\t\tstatic DOWN: number;\t\t\t\n\t\t\t/** !#en The event type code of mouse up event.\n\t\t\t!#zh 鼠标按下后释放事件。 */\n\t\t\tstatic UP: number;\t\t\t\n\t\t\t/** !#en The event type code of mouse move event.\n\t\t\t!#zh 鼠标移动事件。 */\n\t\t\tstatic MOVE: number;\t\t\t\n\t\t\t/** !#en The event type code of mouse scroll event.\n\t\t\t!#zh 鼠标滚轮事件。 */\n\t\t\tstatic SCROLL: number;\t\t\t\n\t\t\t/** !#en The tag of Mouse left button.\n\t\t\t!#zh 鼠标左键的标签。 */\n\t\t\tstatic BUTTON_LEFT: number;\t\t\t\n\t\t\t/** !#en The tag of Mouse right button  (The right button number is 2 on browser).\n\t\t\t!#zh 鼠标右键的标签。 */\n\t\t\tstatic BUTTON_RIGHT: number;\t\t\t\n\t\t\t/** !#en The tag of Mouse middle button  (The right button number is 1 on browser).\n\t\t\t!#zh 鼠标中键的标签。 */\n\t\t\tstatic BUTTON_MIDDLE: number;\t\t\t\n\t\t\t/** !#en The tag of Mouse button 4.\n\t\t\t!#zh 鼠标按键 4 的标签。 */\n\t\t\tstatic BUTTON_4: number;\t\t\t\n\t\t\t/** !#en The tag of Mouse button 5.\n\t\t\t!#zh 鼠标按键 5 的标签。 */\n\t\t\tstatic BUTTON_5: number;\t\t\t\n\t\t\t/** !#en The tag of Mouse button 6.\n\t\t\t!#zh 鼠标按键 6 的标签。 */\n\t\t\tstatic BUTTON_6: number;\t\t\t\n\t\t\t/** !#en The tag of Mouse button 7.\n\t\t\t!#zh 鼠标按键 7 的标签。 */\n\t\t\tstatic BUTTON_7: number;\t\t\t\n\t\t\t/** !#en The tag of Mouse button 8.\n\t\t\t!#zh 鼠标按键 8 的标签。 */\n\t\t\tstatic BUTTON_8: number;\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Event\n\t*****************************************************/\n\t\n\texport namespace Event {\t\t\n\t\t/** !#en The touch event\n\t\t!#zh 触摸事件 */\n\t\texport class EventTouch extends Event {\t\t\t\n\t\t\t/**\n\t\t\t\n\t\t\t@param touchArr The array of the touches\n\t\t\t@param bubbles A boolean indicating whether the event bubbles up through the tree or not \n\t\t\t*/\n\t\t\tconstructor(touchArr: any[], bubbles: boolean);\t\t\t\n\t\t\t/** !#en The current touch object\n\t\t\t!#zh 当前触点对象 */\n\t\t\ttouch: Touch;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns event code.\n\t\t\t!#zh 获取事件类型。 \n\t\t\t*/\n\t\t\tgetEventCode(): number;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns touches of event.\n\t\t\t!#zh 获取触摸点的列表。 \n\t\t\t*/\n\t\t\tgetTouches(): any[];\t\t\t\n\t\t\t/**\n\t\t\t!#en Sets touch location.\n\t\t\t!#zh 设置当前触点位置\n\t\t\t@param x x\n\t\t\t@param y y \n\t\t\t*/\n\t\t\tsetLocation(x: number, y: number): void;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns touch location.\n\t\t\t!#zh 获取触点位置。 \n\t\t\t*/\n\t\t\tgetLocation(): Vec2;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns the current touch location in screen coordinates.\n\t\t\t!#zh 获取当前触点在游戏窗口中的位置。 \n\t\t\t*/\n\t\t\tgetLocationInView(): Vec2;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns the previous touch location.\n\t\t\t!#zh 获取触点在上一次事件时的位置对象，对象包含 x 和 y 属性。 \n\t\t\t*/\n\t\t\tgetPreviousLocation(): Vec2;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns the start touch location.\n\t\t\t!#zh 获获取触点落下时的位置对象，对象包含 x 和 y 属性。 \n\t\t\t*/\n\t\t\tgetStartLocation(): Vec2;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns the id of cc.Touch.\n\t\t\t!#zh 触点的标识 ID，可以用来在多点触摸中跟踪触点。 \n\t\t\t*/\n\t\t\tgetID(): number;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns the delta distance from the previous location to current location.\n\t\t\t!#zh 获取触点距离上一次事件移动的距离对象，对象包含 x 和 y 属性。 \n\t\t\t*/\n\t\t\tgetDelta(): Vec2;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns the X axis delta distance from the previous location to current location.\n\t\t\t!#zh 获取触点距离上一次事件移动的 x 轴距离。 \n\t\t\t*/\n\t\t\tgetDeltaX(): number;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns the Y axis delta distance from the previous location to current location.\n\t\t\t!#zh 获取触点距离上一次事件移动的 y 轴距离。 \n\t\t\t*/\n\t\t\tgetDeltaY(): number;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns location X axis data.\n\t\t\t!#zh 获取当前触点 X 轴位置。 \n\t\t\t*/\n\t\t\tgetLocationX(): number;\t\t\t\n\t\t\t/**\n\t\t\t!#en Returns location Y axis data.\n\t\t\t!#zh 获取当前触点 Y 轴位置。 \n\t\t\t*/\n\t\t\tgetLocationY(): number;\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Event\n\t*****************************************************/\n\t\n\texport namespace Event {\t\t\n\t\t/** !#en The acceleration event\n\t\t!#zh 加速度事件 */\n\t\texport class EventAcceleration extends Event {\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Event\n\t*****************************************************/\n\t\n\texport namespace Event {\t\t\n\t\t/** !#en The keyboard event\n\t\t!#zh 键盘事件 */\n\t\texport class EventKeyboard extends Event {\t\t\t\n\t\t\t/** !#en\n\t\t\tThe keyCode read-only property represents a system and implementation dependent numerical code identifying the unmodified value of the pressed key.\n\t\t\tThis is usually the decimal ASCII (RFC 20) or Windows 1252 code corresponding to the key.\n\t\t\tIf the key can't be identified, this value is 0.\n\t\t\t\n\t\t\t!#zh\n\t\t\tkeyCode 是只读属性它表示一个系统和依赖于实现的数字代码，可以识别按键的未修改值。\n\t\t\t这通常是十进制 ASCII (RFC20) 或者 Windows 1252 代码，所对应的密钥。\n\t\t\t如果无法识别该键，则该值为 0。 */\n\t\t\tkeyCode: number;\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Animation\n\t*****************************************************/\n\t\n\texport namespace Animation {\t\t\n\t\t/** !#en The event type supported by Animation\n\t\t!#zh Animation 支持的事件类型 */\n\t\texport class EventType {\t\t\t\n\t\t\t/** !#en Emit when begin playing animation\n\t\t\t!#zh 开始播放时触发 */\n\t\t\tstatic PLAY: string;\t\t\t\n\t\t\t/** !#en Emit when stop playing animation\n\t\t\t!#zh 停止播放时触发 */\n\t\t\tstatic STOP: string;\t\t\t\n\t\t\t/** !#en Emit when pause animation\n\t\t\t!#zh 暂停播放时触发 */\n\t\t\tstatic PAUSE: string;\t\t\t\n\t\t\t/** !#en Emit when resume animation\n\t\t\t!#zh 恢复播放时触发 */\n\t\t\tstatic RESUME: string;\t\t\t\n\t\t\t/** !#en If animation repeat count is larger than 1, emit when animation play to the last frame\n\t\t\t!#zh 假如动画循环次数大于 1，当动画播放到最后一帧时触发 */\n\t\t\tstatic LASTFRAME: string;\t\t\t\n\t\t\t/** !#en Emit when finish playing animation\n\t\t\t!#zh 动画播放完成时触发 */\n\t\t\tstatic FINISHED: string;\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Button\n\t*****************************************************/\n\t\n\texport namespace Button {\t\t\n\t\t/** !#en Enum for transition type.\n\t\t!#zh 过渡类型 */\n\t\texport enum Transition {\t\t\t\n\t\t\tNONE = 0,\n\t\t\tCOLOR = 0,\n\t\t\tSPRITE = 0,\n\t\t\tSCALE = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Component\n\t*****************************************************/\n\t\n\texport namespace Component {\t\t\n\t\t/** !#en\n\t\tComponent will register a event to target component's handler.\n\t\tAnd it will trigger the handler when a certain event occurs.\n\t\t\n\t\t!@zh\n\t\t“EventHandler” 类用来设置场景中的事件回调，\n\t\t该类允许用户设置回调目标节点，目标组件名，组件方法名，\n\t\t并可通过 emit 方法调用目标函数。 */\n\t\texport class EventHandler {\t\t\t\n\t\t\t/** !#en the node that contains target callback, such as the node example script belongs to\n\t\t\t!#zh 事件响应函数所在节点 ，比如例子中脚本归属的节点本身 */\n\t\t\ttarget: Node;\t\t\t\n\t\t\t/** !#en name of the component(script) that contains target callback, such as the name 'MainMenu' of script in example\n\t\t\t!#zh 事件响应函数所在组件名（脚本名）, 比如例子中的脚本名 'MainMenu' */\n\t\t\tcomponent: string;\t\t\t\n\t\t\t/** !#en Event handler, such as function's name 'onClick' in example\n\t\t\t!#zh 响应事件函数名，比如例子中的 'onClick' */\n\t\t\thandler: string;\t\t\t\n\t\t\t/** !#en Custom Event Data, such as 'eventType' in example\n\t\t\t!#zh 自定义事件数据，比如例子中的 eventType */\n\t\t\tcustomEventData: string;\t\t\t\n\t\t\t/**\n\t\t\t\n\t\t\t@param events events\n\t\t\t@param params params \n\t\t\t*/\n\t\t\tstatic emitEvents(events: EventHandler[], ...params: any[]): void;\t\t\t\n\t\t\t/**\n\t\t\t!#en Emit event with params\n\t\t\t!#zh 触发目标组件上的指定 handler 函数，该参数是回调函数的参数值（可不填）。\n\t\t\t@param params params\n\t\t\t\n\t\t\t@example \n\t\t\t```js\n\t\t\t// Call Function\n\t\t\tvar eventHandler = new cc.Component.EventHandler();\n\t\t\teventHandler.target = newTarget;\n\t\t\teventHandler.component = \"MainMenu\";\n\t\t\teventHandler.handler = \"OnClick\"\n\t\t\teventHandler.emit([\"param1\", \"param2\", ....]);\n\t\t\t``` \n\t\t\t*/\n\t\t\temit(params: any[]): void;\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Label\n\t*****************************************************/\n\t\n\texport namespace Label {\t\t\n\t\t/** !#en Enum for text alignment.\n\t\t!#zh 文本横向对齐类型 */\n\t\texport enum HorizontalAlign {\t\t\t\n\t\t\tLEFT = 0,\n\t\t\tCENTER = 0,\n\t\t\tRIGHT = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Label\n\t*****************************************************/\n\t\n\texport namespace Label {\t\t\n\t\t/** !#en Enum for vertical text alignment.\n\t\t!#zh 文本垂直对齐类型 */\n\t\texport enum VerticalAlign {\t\t\t\n\t\t\tTOP = 0,\n\t\t\tCENTER = 0,\n\t\t\tBOTTOM = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Label\n\t*****************************************************/\n\t\n\texport namespace Label {\t\t\n\t\t/** !#en Enum for Overflow.\n\t\t!#zh Overflow 类型 */\n\t\texport enum Overflow {\t\t\t\n\t\t\tNONE = 0,\n\t\t\tCLAMP = 0,\n\t\t\tSHRINK = 0,\n\t\t\tRESIZE_HEIGHT = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Label\n\t*****************************************************/\n\t\n\texport namespace Label {\t\t\n\t\t/** !#en Enum for font type.\n\t\t!#zh Type 类型 */\n\t\texport enum Type {\t\t\t\n\t\t\tTTF = 0,\n\t\t\tBMFont = 0,\n\t\t\tSystemFont = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Label\n\t*****************************************************/\n\t\n\texport namespace Label {\t\t\n\t\t/** !#en Enum for cache mode.\n\t\t!#zh CacheMode 类型 */\n\t\texport enum CacheMode {\t\t\t\n\t\t\tNONE = 0,\n\t\t\tBITMAP = 0,\n\t\t\tCHAR = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Layout\n\t*****************************************************/\n\t\n\texport namespace Layout {\t\t\n\t\t/** !#en Enum for Layout type\n\t\t!#zh 布局类型 */\n\t\texport enum Type {\t\t\t\n\t\t\tNONE = 0,\n\t\t\tHORIZONTAL = 0,\n\t\t\tVERTICAL = 0,\n\t\t\tGRID = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Layout\n\t*****************************************************/\n\t\n\texport namespace Layout {\t\t\n\t\t/** !#en Enum for Layout Resize Mode\n\t\t!#zh 缩放模式 */\n\t\texport enum ResizeMode {\t\t\t\n\t\t\tNONE = 0,\n\t\t\tCONTAINER = 0,\n\t\t\tCHILDREN = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Layout\n\t*****************************************************/\n\t\n\texport namespace Layout {\t\t\n\t\t/** !#en Enum for Grid Layout start axis direction.\n\t\tThe items in grid layout will be arranged in each axis at first.;\n\t\t!#zh 布局轴向，只用于 GRID 布局。 */\n\t\texport enum AxisDirection {\t\t\t\n\t\t\tHORIZONTAL = 0,\n\t\t\tVERTICAL = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Layout\n\t*****************************************************/\n\t\n\texport namespace Layout {\t\t\n\t\t/** !#en Enum for vertical layout direction.\n\t\t Used in Grid Layout together with AxisDirection is VERTICAL\n\t\t!#zh 垂直方向布局方式 */\n\t\texport enum VerticalDirection {\t\t\t\n\t\t\tBOTTOM_TO_TOP = 0,\n\t\t\tTOP_TO_BOTTOM = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Layout\n\t*****************************************************/\n\t\n\texport namespace Layout {\t\t\n\t\t/** !#en Enum for horizontal layout direction.\n\t\t Used in Grid Layout together with AxisDirection is HORIZONTAL\n\t\t!#zh 水平方向布局方式 */\n\t\texport enum HorizontalDirection {\t\t\t\n\t\t\tLEFT_TO_RIGHT = 0,\n\t\t\tRIGHT_TO_LEFT = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Mask\n\t*****************************************************/\n\t\n\texport namespace Mask {\t\t\n\t\t/** !#en the type for mask.\n\t\t!#zh 遮罩组件类型 */\n\t\texport enum Type {\t\t\t\n\t\t\tRECT = 0,\n\t\t\tELLIPSE = 0,\n\t\t\tIMAGE_STENCIL = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* PageView\n\t*****************************************************/\n\t\n\texport namespace PageView {\t\t\n\t\t/** !#en The Page View Size Mode\n\t\t!#zh 页面视图每个页面统一的大小类型 */\n\t\texport enum SizeMode {\t\t\t\n\t\t\tUnified = 0,\n\t\t\tFree = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* PageView\n\t*****************************************************/\n\t\n\texport namespace PageView {\t\t\n\t\t/** !#en The Page View Direction\n\t\t!#zh 页面视图滚动类型 */\n\t\texport enum Direction {\t\t\t\n\t\t\tHorizontal = 0,\n\t\t\tVertical = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* PageView\n\t*****************************************************/\n\t\n\texport namespace PageView {\t\t\n\t\t/** !#en Enum for ScrollView event type.\n\t\t!#zh 滚动视图事件类型 */\n\t\texport enum EventType {\t\t\t\n\t\t\tPAGE_TURNING = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* PageViewIndicator\n\t*****************************************************/\n\t\n\texport namespace PageViewIndicator {\t\t\n\t\t/** !#en Enum for PageView Indicator direction\n\t\t!#zh 页面视图指示器的摆放方向 */\n\t\texport enum Direction {\t\t\t\n\t\t\tHORIZONTAL = 0,\n\t\t\tVERTICAL = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* ProgressBar\n\t*****************************************************/\n\t\n\texport namespace ProgressBar {\t\t\n\t\t/** !#en Enum for ProgressBar mode\n\t\t!#zh 进度条模式 */\n\t\texport enum Mode {\t\t\t\n\t\t\tHORIZONTAL = 0,\n\t\t\tVERTICAL = 0,\n\t\t\tFILLED = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Scrollbar\n\t*****************************************************/\n\t\n\texport namespace Scrollbar {\t\t\n\t\t/** Enum for Scrollbar direction */\n\t\texport enum Direction {\t\t\t\n\t\t\tHORIZONTAL = 0,\n\t\t\tVERTICAL = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* ScrollView\n\t*****************************************************/\n\t\n\texport namespace ScrollView {\t\t\n\t\t/** !#en Enum for ScrollView event type.\n\t\t!#zh 滚动视图事件类型 */\n\t\texport enum EventType {\t\t\t\n\t\t\tSCROLL_TO_TOP = 0,\n\t\t\tSCROLL_TO_BOTTOM = 0,\n\t\t\tSCROLL_TO_LEFT = 0,\n\t\t\tSCROLL_TO_RIGHT = 0,\n\t\t\tSCROLLING = 0,\n\t\t\tBOUNCE_TOP = 0,\n\t\t\tBOUNCE_BOTTOM = 0,\n\t\t\tBOUNCE_LEFT = 0,\n\t\t\tBOUNCE_RIGHT = 0,\n\t\t\tSCROLL_ENDED = 0,\n\t\t\tTOUCH_UP = 0,\n\t\t\tAUTOSCROLL_ENDED_WITH_THRESHOLD = 0,\n\t\t\tSCROLL_BEGAN = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Slider\n\t*****************************************************/\n\t\n\texport namespace Slider {\t\t\n\t\t/** !#en The Slider Direction\n\t\t!#zh 滑动器方向 */\n\t\texport enum Direction {\t\t\t\n\t\t\tHorizontal = 0,\n\t\t\tVertical = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Sprite\n\t*****************************************************/\n\t\n\texport namespace Sprite {\t\t\n\t\t/** !#en Enum for sprite type.\n\t\t!#zh Sprite 类型 */\n\t\texport enum Type {\t\t\t\n\t\t\tSIMPLE = 0,\n\t\t\tSLICED = 0,\n\t\t\tTILED = 0,\n\t\t\tFILLED = 0,\n\t\t\tMESH = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Sprite\n\t*****************************************************/\n\t\n\texport namespace Sprite {\t\t\n\t\t/** !#en Enum for fill type.\n\t\t!#zh 填充类型 */\n\t\texport enum FillType {\t\t\t\n\t\t\tHORIZONTAL = 0,\n\t\t\tVERTICAL = 0,\n\t\t\tRADIAL = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Sprite\n\t*****************************************************/\n\t\n\texport namespace Sprite {\t\t\n\t\t/** !#en Sprite Size can track trimmed size, raw size or none.\n\t\t!#zh 精灵尺寸调整模式 */\n\t\texport enum SizeMode {\t\t\t\n\t\t\tCUSTOM = 0,\n\t\t\tTRIMMED = 0,\n\t\t\tRAW = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Sprite\n\t*****************************************************/\n\t\n\texport namespace Sprite {\t\t\n\t\t/** !#en Sprite state can choice the normal or grayscale.\n\t\t!#zh 精灵颜色通道模式。 */\n\t\texport enum State {\t\t\t\n\t\t\tNORMAL = 0,\n\t\t\tGRAY = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Widget\n\t*****************************************************/\n\t\n\texport namespace Widget {\t\t\n\t\t/** !#en Enum for Widget's alignment mode, indicating when the widget should refresh.\n\t\t!#zh Widget 的对齐模式，表示 Widget 应该何时刷新。 */\n\t\texport enum AlignMode {\t\t\t\n\t\t\tONCE = 0,\n\t\t\tON_WINDOW_RESIZE = 0,\n\t\t\tALWAYS = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Event\n\t*****************************************************/\n\t\n\texport namespace Event {\t\t\n\t\t/** !#en The Custom event\n\t\t!#zh 自定义事件 */\n\t\texport class EventCustom extends Event {\t\t\t\n\t\t\t/**\n\t\t\t\n\t\t\t@param type The name of the event (case-sensitive), e.g. \"click\", \"fire\", or \"submit\"\n\t\t\t@param bubbles A boolean indicating whether the event bubbles up through the tree or not \n\t\t\t*/\n\t\t\tconstructor(type: string, bubbles: boolean);\t\t\t\n\t\t\t/** !#en A reference to the detailed data of the event\n\t\t\t!#zh 事件的详细数据 */\n\t\t\tdetail: any;\t\t\t\n\t\t\t/**\n\t\t\t!#en Sets user data\n\t\t\t!#zh 设置用户数据\n\t\t\t@param data data \n\t\t\t*/\n\t\t\tsetUserData(data: any): void;\t\t\t\n\t\t\t/**\n\t\t\t!#en Gets user data\n\t\t\t!#zh 获取用户数据 \n\t\t\t*/\n\t\t\tgetUserData(): any;\t\t\t\n\t\t\t/**\n\t\t\t!#en Gets event name\n\t\t\t!#zh 获取事件名称 \n\t\t\t*/\n\t\t\tgetEventName(): string;\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* SystemEvent\n\t*****************************************************/\n\t\n\texport namespace SystemEvent {\t\t\n\t\t/** !#en The event type supported by SystemEvent\n\t\t!#zh SystemEvent 支持的事件类型 */\n\t\texport class EventType {\t\t\t\n\t\t\t/** !#en The event type for press the key down event, you can use its value directly: 'keydown'\n\t\t\t!#zh 当按下按键时触发的事件 */\n\t\t\tstatic KEY_DOWN: string;\t\t\t\n\t\t\t/** !#en The event type for press the key up event, you can use its value directly: 'keyup'\n\t\t\t!#zh 当松开按键时触发的事件 */\n\t\t\tstatic KEY_UP: string;\t\t\t\n\t\t\t/** !#en The event type for press the devicemotion event, you can use its value directly: 'devicemotion'\n\t\t\t!#zh 重力感应 */\n\t\t\tstatic DEVICEMOTION: string;\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Graphics\n\t*****************************************************/\n\t\n\texport namespace Graphics {\t\t\n\t\t/** !#en Enum for LineCap.\n\t\t!#zh 线段末端属性 */\n\t\texport enum LineCap {\t\t\t\n\t\t\tBUTT = 0,\n\t\t\tROUND = 0,\n\t\t\tSQUARE = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Graphics\n\t*****************************************************/\n\t\n\texport namespace Graphics {\t\t\n\t\t/** !#en Enum for LineJoin.\n\t\t!#zh 线段拐角属性 */\n\t\texport enum LineJoin {\t\t\t\n\t\t\tBEVEL = 0,\n\t\t\tROUND = 0,\n\t\t\tMITER = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* PhysicsManager\n\t*****************************************************/\n\t\n\texport namespace PhysicsManager {\t\t\n\t\t/** !#en\n\t\tThe draw bits for drawing physics debug information.<br>\n\t\texample:<br>\n\t\t```js\n\t\tcc.director.getPhysicsManager().debugDrawFlags =\n\t\t // cc.PhysicsManager.DrawBits.e_aabbBit |\n\t\t // cc.PhysicsManager.DrawBits.e_pairBit |\n\t\t // cc.PhysicsManager.DrawBits.e_centerOfMassBit |\n\t\t cc.PhysicsManager.DrawBits.e_jointBit |\n\t\t cc.PhysicsManager.DrawBits.e_shapeBit;\n\t\t```\n\t\t!#zh\n\t\t指定物理系统需要绘制哪些调试信息。<br>\n\t\texample:<br>\n\t\t```js\n\t\tcc.director.getPhysicsManager().debugDrawFlags =\n\t\t // cc.PhysicsManager.DrawBits.e_aabbBit |\n\t\t // cc.PhysicsManager.DrawBits.e_pairBit |\n\t\t // cc.PhysicsManager.DrawBits.e_centerOfMassBit |\n\t\t cc.PhysicsManager.DrawBits.e_jointBit |\n\t\t cc.PhysicsManager.DrawBits.e_shapeBit;\n\t\t``` */\n\t\texport enum DrawBits {\t\t\t\n\t\t\te_aabbBit = 0,\n\t\t\te_jointBit = 0,\n\t\t\te_shapeBit = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* MeshRenderer\n\t*****************************************************/\n\t\n\texport namespace MeshRenderer {\t\t\n\t\t/** !#en Shadow projection mode\n\t\t\n\t\t!#ch 阴影投射方式 */\n\t\texport enum ShadowCastingMode {\t\t\t\n\t\t\tOFF = 0,\n\t\t\tON = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Pipeline\n\t*****************************************************/\n\t\n\texport namespace Pipeline {\t\t\n\t\t/** The downloader pipe, it can download several types of files:\n\t\t1. Text\n\t\t2. Image\n\t\t3. Script\n\t\t4. Audio\n\t\t5. Assets\n\t\tAll unknown type will be downloaded as plain text.\n\t\tYou can pass custom supported types in the constructor. */\n\t\texport class Downloader {\t\t\t\n\t\t\t/**\n\t\t\tConstructor of Downloader, you can pass custom supported types.\n\t\t\t@param extMap Custom supported types with corresponded handler\n\t\t\t\n\t\t\t@example \n\t\t\t```js\n\t\t\tvar downloader = new Downloader({\n\t\t\t     // This will match all url with `.scene` extension or all url with `scene` type\n\t\t\t     'scene' : function (url, callback) {}\n\t\t\t });\n\t\t\t``` \n\t\t\t*/\n\t\t\tconstructor(extMap: any);\t\t\t\n\t\t\t/**\n\t\t\tAdd custom supported types handler or modify existing type handler.\n\t\t\t@param extMap Custom supported types with corresponded handler \n\t\t\t*/\n\t\t\taddHandlers(extMap: any): void;\t\t\t\n\t\t\t/**\n\t\t\t!#en\n\t\t\tLoad subpackage with name.\n\t\t\t!#zh\n\t\t\t通过子包名加载子包代码。\n\t\t\t@param name Subpackage name\n\t\t\t@param completeCallback Callback invoked when subpackage loaded \n\t\t\t*/\n\t\t\tloadSubpackage(name: string, completeCallback?: (error: Error) => void): void;\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* Pipeline\n\t*****************************************************/\n\t\n\texport namespace Pipeline {\t\t\n\t\t/** The loader pipe, it can load several types of files:\n\t\t1. Images\n\t\t2. JSON\n\t\t3. Plist\n\t\t4. Audio\n\t\t5. Font\n\t\t6. Cocos Creator scene\n\t\tIt will not interfere with items of unknown type.\n\t\tYou can pass custom supported types in the constructor. */\n\t\texport class Loader {\t\t\t\n\t\t\t/**\n\t\t\tConstructor of Loader, you can pass custom supported types.\n\t\t\t@param extMap Custom supported types with corresponded handler\n\t\t\t\n\t\t\t@example \n\t\t\t```js\n\t\t\tvar loader = new Loader({\n\t\t\t   // This will match all url with `.scene` extension or all url with `scene` type\n\t\t\t   'scene' : function (url, callback) {}\n\t\t\t});\n\t\t\t``` \n\t\t\t*/\n\t\t\tconstructor(extMap: any);\t\t\t\n\t\t\t/**\n\t\t\tAdd custom supported types handler or modify existing type handler.\n\t\t\t@param extMap Custom supported types with corresponded handler \n\t\t\t*/\n\t\t\taddHandlers(extMap: any): void;\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* LoadingItems\n\t*****************************************************/\n\t\n\texport namespace LoadingItems {\t\t\n\t\t/** !#en The item states of the LoadingItems, its value could be LoadingItems.ItemState.WORKING | LoadingItems.ItemState.COMPLETET | LoadingItems.ItemState.ERROR\n\t\t!#zh LoadingItems 队列中的加载项状态，状态的值可能是 LoadingItems.ItemState.WORKING | LoadingItems.ItemState.COMPLETET | LoadingItems.ItemState.ERROR */\n\t\texport enum ItemState {\t\t\t\n\t\t\tWORKING = 0,\n\t\t\tCOMPLETET = 0,\n\t\t\tERROR = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* macro\n\t*****************************************************/\n\t\n\texport namespace macro {\t\t\n\t\t/** !#en Key map for keyboard event\n\t\t!#zh 键盘事件的按键值 */\n\t\texport enum KEY {\t\t\t\n\t\t\tnone = 0,\n\t\t\tback = 0,\n\t\t\tmenu = 0,\n\t\t\tbackspace = 0,\n\t\t\ttab = 0,\n\t\t\tenter = 0,\n\t\t\tshift = 0,\n\t\t\tctrl = 0,\n\t\t\talt = 0,\n\t\t\tpause = 0,\n\t\t\tcapslock = 0,\n\t\t\tescape = 0,\n\t\t\tspace = 0,\n\t\t\tpageup = 0,\n\t\t\tpagedown = 0,\n\t\t\tend = 0,\n\t\t\thome = 0,\n\t\t\tleft = 0,\n\t\t\tup = 0,\n\t\t\tright = 0,\n\t\t\tdown = 0,\n\t\t\tselect = 0,\n\t\t\tinsert = 0,\n\t\t\tDelete = 0,\n\t\t\ta = 0,\n\t\t\tb = 0,\n\t\t\tc = 0,\n\t\t\td = 0,\n\t\t\te = 0,\n\t\t\tf = 0,\n\t\t\tg = 0,\n\t\t\th = 0,\n\t\t\ti = 0,\n\t\t\tj = 0,\n\t\t\tk = 0,\n\t\t\tl = 0,\n\t\t\tm = 0,\n\t\t\tn = 0,\n\t\t\to = 0,\n\t\t\tp = 0,\n\t\t\tq = 0,\n\t\t\tr = 0,\n\t\t\ts = 0,\n\t\t\tt = 0,\n\t\t\tu = 0,\n\t\t\tv = 0,\n\t\t\tw = 0,\n\t\t\tx = 0,\n\t\t\ty = 0,\n\t\t\tz = 0,\n\t\t\tnum0 = 0,\n\t\t\tnum1 = 0,\n\t\t\tnum2 = 0,\n\t\t\tnum3 = 0,\n\t\t\tnum4 = 0,\n\t\t\tnum5 = 0,\n\t\t\tnum6 = 0,\n\t\t\tnum7 = 0,\n\t\t\tnum8 = 0,\n\t\t\tnum9 = 0,\n\t\t\t'*' = 0,\n\t\t\t'+' = 0,\n\t\t\t'-' = 0,\n\t\t\tnumdel = 0,\n\t\t\t'/' = 0,\n\t\t\tf1 = 0,\n\t\t\tf2 = 0,\n\t\t\tf3 = 0,\n\t\t\tf4 = 0,\n\t\t\tf5 = 0,\n\t\t\tf6 = 0,\n\t\t\tf7 = 0,\n\t\t\tf8 = 0,\n\t\t\tf9 = 0,\n\t\t\tf10 = 0,\n\t\t\tf11 = 0,\n\t\t\tf12 = 0,\n\t\t\tnumlock = 0,\n\t\t\tscrolllock = 0,\n\t\t\t';' = 0,\n\t\t\tsemicolon = 0,\n\t\t\tequal = 0,\n\t\t\t'=' = 0,\n\t\t\t',' = 0,\n\t\t\tcomma = 0,\n\t\t\tdash = 0,\n\t\t\t'.' = 0,\n\t\t\tperiod = 0,\n\t\t\tforwardslash = 0,\n\t\t\tgrave = 0,\n\t\t\t'[' = 0,\n\t\t\topenbracket = 0,\n\t\t\tbackslash = 0,\n\t\t\t']' = 0,\n\t\t\tclosebracket = 0,\n\t\t\tquote = 0,\n\t\t\tdpadLeft = 0,\n\t\t\tdpadRight = 0,\n\t\t\tdpadUp = 0,\n\t\t\tdpadDown = 0,\n\t\t\tdpadCenter = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* macro\n\t*****************************************************/\n\t\n\texport namespace macro {\t\t\n\t\t/** Image formats */\n\t\texport enum ImageFormat {\t\t\t\n\t\t\tJPG = 0,\n\t\t\tPNG = 0,\n\t\t\tTIFF = 0,\n\t\t\tWEBP = 0,\n\t\t\tPVR = 0,\n\t\t\tETC = 0,\n\t\t\tS3TC = 0,\n\t\t\tATITC = 0,\n\t\t\tTGA = 0,\n\t\t\tRAWDATA = 0,\n\t\t\tUNKNOWN = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* macro\n\t*****************************************************/\n\t\n\texport namespace macro {\t\t\n\t\t/** !#en\n\t\tEnum for blend factor\n\t\tRefer to: http://www.andersriggelsen.dk/glblendfunc.php\n\t\t!#zh\n\t\t混合因子\n\t\t可参考: http://www.andersriggelsen.dk/glblendfunc.php */\n\t\texport enum BlendFactor {\t\t\t\n\t\t\tONE = 0,\n\t\t\tZERO = 0,\n\t\t\tSRC_ALPHA = 0,\n\t\t\tSRC_COLOR = 0,\n\t\t\tDST_ALPHA = 0,\n\t\t\tDST_COLOR = 0,\n\t\t\tONE_MINUS_SRC_ALPHA = 0,\n\t\t\tONE_MINUS_SRC_COLOR = 0,\n\t\t\tONE_MINUS_DST_ALPHA = 0,\n\t\t\tONE_MINUS_DST_COLOR = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* macro\n\t*****************************************************/\n\t\n\texport namespace macro {\t\t\n\t\t/** undefined */\n\t\texport enum TextAlignment {\t\t\t\n\t\t\tLEFT = 0,\n\t\t\tCENTER = 0,\n\t\t\tRIGHT = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* sys\n\t*****************************************************/\n\t\n\texport namespace sys {\t\t\n\t\t/** !#en\n\t\tNetwork type enumeration\n\t\t!#zh\n\t\t网络类型枚举 */\n\t\texport enum NetworkType {\t\t\t\n\t\t\tNONE = 0,\n\t\t\tLAN = 0,\n\t\t\tWWAN = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* primitive\n\t*****************************************************/\n\t\n\texport namespace primitive {\t\t\n\t\t/** undefined */\n\t\texport enum PolyhedronType {\t\t\t\n\t\t\tTetrahedron = 0,\n\t\t\tOctahedron = 0,\n\t\t\tDodecahedron = 0,\n\t\t\tIcosahedron = 0,\n\t\t\tRhombicuboctahedron = 0,\n\t\t\tTriangularPrism = 0,\n\t\t\tPentagonalPrism = 0,\n\t\t\tHexagonalPrism = 0,\n\t\t\tSquarePyramid = 0,\n\t\t\tPentagonalPyramid = 0,\n\t\t\tTriangularDipyramid = 0,\n\t\t\tPentagonalDipyramid = 0,\n\t\t\tElongatedSquareDipyramid = 0,\n\t\t\tElongatedPentagonalDipyramid = 0,\n\t\t\tElongatedPentagonalCupola = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* primitive\n\t*****************************************************/\n\t\n\texport namespace primitive {\t\t\n\t\t/** undefined */\n\t\texport class VertexData {\t\t\t\n\t\t\tpositions: number[];\t\t\t\n\t\t\tnormals: number[];\t\t\t\n\t\t\tuvs: number[];\t\t\t\n\t\t\tindices: number[];\t\t\t\n\t\t\tminPos: Vec3;\t\t\t\n\t\t\tmaxPos: Vec3;\t\t\t\n\t\t\tboundingRadius: number;\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* EditBox\n\t*****************************************************/\n\t\n\texport namespace EditBox {\t\t\n\t\t/** !#en Enum for keyboard return types\n\t\t!#zh 键盘的返回键类型 */\n\t\texport enum KeyboardReturnType {\t\t\t\n\t\t\tDEFAULT = 0,\n\t\t\tDONE = 0,\n\t\t\tSEND = 0,\n\t\t\tSEARCH = 0,\n\t\t\tGO = 0,\n\t\t\tNEXT = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* EditBox\n\t*****************************************************/\n\t\n\texport namespace EditBox {\t\t\n\t\t/** !#en The EditBox's InputMode defines the type of text that the user is allowed to enter.\n\t\t!#zh 输入模式 */\n\t\texport enum InputMode {\t\t\t\n\t\t\tANY = 0,\n\t\t\tEMAIL_ADDR = 0,\n\t\t\tNUMERIC = 0,\n\t\t\tPHONE_NUMBER = 0,\n\t\t\tURL = 0,\n\t\t\tDECIMAL = 0,\n\t\t\tSINGLE_LINE = 0,\t\t\n\t\t}\t\n\t}\n\t\t\n\t/****************************************************\n\t* EditBox\n\t*****************************************************/\n\t\n\texport namespace EditBox {\t\t\n\t\t/** !#en Enum for the EditBox's input flags\n\t\t!#zh 定义了一些用于设置文本显示和文本格式化的标志位。 */\n\t\texport enum InputFlag {\t\t\t\n\t\t\tPASSWORD = 0,\n\t\t\tSENSITIVE = 0,\n\t\t\tINITIAL_CAPS_WORD = 0,\n\t\t\tINITIAL_CAPS_SENTENCE = 0,\n\t\t\tINITIAL_CAPS_ALL_CHARACTERS = 0,\n\t\t\tDEFAULT = 0,\t\t\n\t\t}\t\n\t}\n\t\n}\n\n/** !#en\nAnySDK is a third party solution that offers game developers SDK integration without making changes to the SDK's features or parameters.It can do all of this while remaining invisible to your end user.Our goal is to handle all the tedious SDK integration work for you so that you can use your time to focus on the game itself.No matter if it’s the channel SDK, user system, payment system, ad system, statistics system, sharing system or any other type of SDK: we’ll take care of it for you.\n!#zh\nAnySDK 为 CP 提供一套第三方 SDK 接入解决方案，整个接入过程，不改变任何 SDK 的功能、特性、参数等，对于最终玩家而言是完全透明无感知的。\n目的是让 CP 商能有更多时间更专注于游戏本身的品质，所有 SDK 的接入工作统统交给我们吧。第三方 SDK 包括了渠道SDK、用户系统、支付系统、广告系统、统计系统、分享系统等等。 */\ndeclare namespace anysdk {\t\n\t/** !#en\n\tagent manager of plugin\n\t!#zh\n\t插件管理对象 */\n\texport var agentManager: AgentManager;\t\n\t/** !#en\n\tagent manager of plugin\n\t!#zh\n\t插件管理类 */\n\texport class AgentManager {\t\t\n\t\t/**\n\t\t!#en\n\t\tAppKey appSecret and privateKey are the only three parameters generated\n\t\tafter the packing tool client finishes creating the game.\n\t\tThe oauthLoginServer parameter is the API address provided by the game service\n\t\tto login verification\n\t\t!#zh\n\t\tappKey、appSecret、privateKey是通过 AnySDK 客户端工具创建游戏后生成的。\n\t\toauthLoginServer参数是游戏服务提供的用来做登陆验证转发的接口地址。\n\t\t@param appKey appKey\n\t\t@param appSecret appSecret\n\t\t@param privateKey privateKey\n\t\t@param oauthLoginServer oauthLoginServer \n\t\t*/\n\t\tinit(appKey: string, appSecret: string, privateKey: string, oauthLoginServer: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tload all plugins, the operation includes SDK`s initialization\n\t\t!#zh\n\t\t加载所有插件，该操作包含了 SDKs 初始化\n\t\t@param callback callback\n\t\t@param target The object to bind to. \n\t\t*/\n\t\tloadAllPlugins(callback: Function, target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tunload all plugins\n\t\t!#zh\n\t\t卸载插件 \n\t\t*/\n\t\tunloadAllPlugins(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget user system plugin\n\t\t!#zh\n\t\t获取用户系统插件 \n\t\t*/\n\t\tgetUserPlugin(): ProtocolUser;\t\t\n\t\t/**\n\t\t!#en\n\t\tget IAP system plugins\n\t\t!#zh\n\t\t获取支付系统插件 \n\t\t*/\n\t\tgetIAPPlugins(): ProtocolIAP[];\t\t\n\t\t/**\n\t\t!#en\n\t\tget IAP system plugin\n\t\t!#zh\n\t\t获取支付系统插件 \n\t\t*/\n\t\tgetIAPPlugin(): ProtocolIAP;\t\t\n\t\t/**\n\t\t!#en\n\t\tget social system plugin\n\t\t!#zh\n\t\t获取社交系统插件 \n\t\t*/\n\t\tgetSocialPlugin(): ProtocolSocial;\t\t\n\t\t/**\n\t\t!#en\n\t\tget share system plugin\n\t\t!#zh\n\t\t获取分享系统插件 \n\t\t*/\n\t\tgetSharePlugin(): ProtocolShare;\t\t\n\t\t/**\n\t\t!#en\n\t\tget analytics system plugin\n\t\t!#zh\n\t\t获取统计系统插件 \n\t\t*/\n\t\tgetAnalyticsPlugin(): ProtocolAnalytics;\t\t\n\t\t/**\n\t\t!#en\n\t\tget ads system plugin\n\t\t!#zh\n\t\t获取广告系统插件 \n\t\t*/\n\t\tgetAdsPlugin(): ProtocolAds;\t\t\n\t\t/**\n\t\t!#en\n\t\tget push system plugin\n\t\t!#zh\n\t\t获取推送系统插件 \n\t\t*/\n\t\tgetPushPlugin(): ProtocolPush;\t\t\n\t\t/**\n\t\t!#en\n\t\tget REC system plugin\n\t\t!#zh\n\t\t获取录屏系统插件 \n\t\t*/\n\t\tgetRECPlugin(): ProtocolREC;\t\t\n\t\t/**\n\t\t!#en\n\t\tget crash system plugin\n\t\t!#zh\n\t\t获取崩溃分析系统插件 \n\t\t*/\n\t\tgetCrashPlugin(): ProtocolCrash;\t\t\n\t\t/**\n\t\t!#en\n\t\tget ad track system plugin\n\t\t!#zh\n\t\t获取广告追踪系统插件 \n\t\t*/\n\t\tgetAdTrackingPlugin(): ProtocolAdTracking;\t\t\n\t\t/**\n\t\t!#en\n\t\tget custom system plugin\n\t\t!#zh\n\t\t获取自定义系统插件 \n\t\t*/\n\t\tgetCustomPlugin(): ProtocolCustom;\t\t\n\t\t/**\n\t\t!#en\n\t\tget custom parameter\n\t\t!#zh\n\t\t获取自定义参数 \n\t\t*/\n\t\tgetCustomParam(): string;\t\t\n\t\t/**\n\t\t!#en\n\t\tget channel id\n\t\t!#zh\n\t\t获取渠道唯一表示符 \n\t\t*/\n\t\tgetChannelId(): string;\t\t\n\t\t/**\n\t\t!#en\n\t\tget status of analytics\n\t\t!#zh\n\t\t获取统计状态 \n\t\t*/\n\t\tisAnaylticsEnabled(): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tset whether to analytics\n\t\t!#zh\n\t\t设置是否统计\n\t\t@param enabled enabled \n\t\t*/\n\t\tsetIsAnaylticsEnabled(enabled: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tdestory instance\n\t\t!#zh\n\t\t销毁单例 \n\t\t*/\n\t\tstatic end(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget instance\n\t\t!#zh\n\t\t获取单例 \n\t\t*/\n\t\tstatic getInstance(): AgentManager;\t\n\t}\t\n\t/** !#en\n\tplugin protocol\n\t!#zh\n\t插件协议 */\n\texport class PluginProtocol {\t\t\n\t\t/**\n\t\t!#en\n\t\tCheck whether the function is supported\n\t\t!#zh\n\t\t判断函数是否支持\n\t\t@param functionName functionName \n\t\t*/\n\t\tisFunctionSupported(functionName: string): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tget plugin name\n\t\t!#zh\n\t\t获取插件名称 \n\t\t*/\n\t\tgetPluginName(): string;\t\t\n\t\t/**\n\t\t!#en\n\t\tget plugin version\n\t\t!#zh\n\t\t获取插件版本 \n\t\t*/\n\t\tgetPluginVersion(): string;\t\t\n\t\t/**\n\t\t!#en\n\t\tget SDK version\n\t\t!#zh\n\t\t获取 SDK 版本 \n\t\t*/\n\t\tgetSDKVersion(): string;\t\t\n\t\t/**\n\t\t!#en\n\t\tvoid methods for reflections with parameter\n\t\t!#zh\n\t\t反射调用带参数的void方法\n\t\t@param funName funName\n\t\t@param args optional arguments \n\t\t*/\n\t\tcallFuncWithParam(funName: string, ...args: (any|PluginParam)[]): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tString methods for reflections with parameter\n\t\t!#zh\n\t\t反射调用带参数的 String 方法\n\t\t@param funName funName\n\t\t@param args optional arguments \n\t\t*/\n\t\tcallStringFuncWithParam(funName: string, ...args: (any|PluginParam)[]): string;\t\t\n\t\t/**\n\t\t!#en\n\t\tint methods for reflections with parameter\n\t\t!#zh\n\t\t反射调用带参数的 Int 方法\n\t\t@param funName funName\n\t\t@param args optional arguments \n\t\t*/\n\t\tcallIntFuncWithParam(funName: string, ...args: (any|PluginParam)[]): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tboolean methods for reflections with parameter\n\t\t!#zh\n\t\t反射调用带参数的 boolean 方法\n\t\t@param funName funName\n\t\t@param args optional arguments \n\t\t*/\n\t\tcallBoolFuncWithParam(funName: string, ...args: (any|PluginParam)[]): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tfloat methods for reflections with parameter\n\t\t!#zh\n\t\t反射调用带参数的 float 方法\n\t\t@param funName funName\n\t\t@param args optional arguments \n\t\t*/\n\t\tcallFloatFuncWithParam(funName: string, ...args: (any|PluginParam)[]): number;\t\n\t}\t\n\t/** !#en\n\tuser protocol\n\t!#zh\n\t用户系统协议接口 */\n\texport class ProtocolUser extends PluginProtocol {\t\t\n\t\t/**\n\t\t!#en\n\t\tlogin interface\n\t\t!#zh\n\t\t登录接口\n\t\t@param args optional arguments \n\t\t*/\n\t\tlogin(...args: (string|any)[]): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget status of login\n\t\t!#zh\n\t\t获取登录状态 \n\t\t*/\n\t\tisLogined(): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tget user ID\n\t\t!#zh\n\t\t获取用户唯一标示符 \n\t\t*/\n\t\tgetUserID(): string;\t\t\n\t\t/**\n\t\t!#en\n\t\tget plugin ID\n\t\t!#zh\n\t\t获取插件ID \n\t\t*/\n\t\tgetPluginId(): string;\t\t\n\t\t/**\n\t\t!#en\n\t\tset listener\n\t\t!#zh\n\t\t设置用户系统的监听\n\t\t@param listener listener\n\t\t@param target target \n\t\t*/\n\t\tsetListener(listener: Function, target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget listener\n\t\t!#zh\n\t\t获取用户系统的监听 \n\t\t*/\n\t\tgetListener(): Function;\t\t\n\t\t/**\n\t\t!#en\n\t\tlogout\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t登出，调用前需要判断属性是否存在 \n\t\t*/\n\t\tlogout(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tshow toolbar\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t显示悬浮窗，调用前需要判断属性是否存在\n\t\t@param place place \n\t\t*/\n\t\tshowToolBar(place: ToolBarPlace): void;\t\t\n\t\t/**\n\t\t!#en\n\t\thide toolbar\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t隐藏悬浮窗，调用前需要判断属性是否存在 \n\t\t*/\n\t\thideToolBar(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tenter platform\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t显示平台中心，调用前需要判断属性是否存在 \n\t\t*/\n\t\tenterPlatform(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tshow exit page\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t显示退出界面，调用前需要判断属性是否存在 \n\t\t*/\n\t\texit(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tshow pause page\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t显示暂停界面，调用前需要判断属性是否存在 \n\t\t*/\n\t\tpause(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReal-name registration\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t实名注册，调用前需要判断属性是否存在 \n\t\t*/\n\t\trealNameRegister(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tAnti-addiction query\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t防沉迷查询，调用前需要判断属性是否存在 \n\t\t*/\n\t\tantiAddictionQuery(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tsubmit game role information\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t提交角色信息，调用前需要判断属性是否存在\n\t\t@param data data \n\t\t*/\n\t\tsubmitLoginGameRole(data: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget user information\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t获取用户信息，调用前需要判断属性是否存在\n\t\t@param info info \n\t\t*/\n\t\tgetUserInfo(info: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tset login type\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t设置登录类型，调用前需要判断属性是否存在\n\t\t@param info info \n\t\t*/\n\t\tgetAvailableLoginType(info: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tset login type\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t设置登录类型，调用前需要判断属性是否存在\n\t\t@param loginType loginType \n\t\t*/\n\t\tsetLoginType(loginType: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tsend to desktop\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t发送到桌面，调用前需要判断属性是否存在 \n\t\t*/\n\t\tsendToDesktop(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\topen bbs\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t打开论坛，调用前需要判断属性是否存在 \n\t\t*/\n\t\topenBBS(): void;\t\n\t}\t\n\t/** !#en\n\tIAP protocol\n\t!#zh\n\t支付系统协议接口 */\n\texport class ProtocolIAP extends PluginProtocol {\t\t\n\t\t/**\n\t\t!#en\n\t\tpay interface\n\t\t!#zh\n\t\t支付接口\n\t\t@param info Type:map \n\t\t*/\n\t\tpayForProduct(info: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget order ID\n\t\t!#zh\n\t\t获取订单ID \n\t\t*/\n\t\tgetOrderId(): string;\t\t\n\t\t/**\n\t\t!#en\n\t\treset the pay status\n\t\t!#zh\n\t\t重置支付状态 \n\t\t*/\n\t\tstatic resetPayState(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget plugin ID\n\t\t!#zh\n\t\t获取插件ID \n\t\t*/\n\t\tgetPluginId(): string;\t\t\n\t\t/**\n\t\t!#en\n\t\tset listener\n\t\t!#zh\n\t\t设置支付系统的监听\n\t\t@param listener listener\n\t\t@param target target \n\t\t*/\n\t\tsetListener(listener: Function, target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget listener\n\t\t!#zh\n\t\t获取支付系统的监听 \n\t\t*/\n\t\tgetListener(): Function;\t\n\t}\t\n\t/** !#en\n\tanalytics protocol\n\t!#zh\n\t统计系统协议接口 */\n\texport class ProtocolAnalytics extends PluginProtocol {\t\t\n\t\t/**\n\t\t!#en\n\t\tStart a new session.\n\t\t!#zh\n\t\t启动会话 \n\t\t*/\n\t\tstartSession(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\t Stop a session.\n\t\t!#zh\n\t\t关闭会话 \n\t\t*/\n\t\tstopSession(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSet the timeout for expiring a session.\n\t\t!#zh\n\t\t设置会话超时时间\n\t\t@param millis Type: long \n\t\t*/\n\t\tsetSessionContinueMillis(millis: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tlog an error\n\t\t!#zh\n\t\t捕捉异常\n\t\t@param errorId errorId\n\t\t@param message message \n\t\t*/\n\t\tlogError(errorId: string, message: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tlog an event.\n\t\t!#zh\n\t\t捕捉事件\n\t\t@param errorId errorId\n\t\t@param args optional arguments Type: map \n\t\t*/\n\t\tlogEvent(errorId: string, ...args: any[]): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tTrack an event begin.\n\t\t!#zh\n\t\t统计事件开始\n\t\t@param eventId eventId \n\t\t*/\n\t\tlogTimedEventBegin(eventId: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tTrack an event end.\n\t\t!#zh\n\t\t统计事件结束\n\t\t@param eventId eventId \n\t\t*/\n\t\tlogTimedEventEnd(eventId: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tset Whether to catch uncaught exceptions to server.\n\t\t!#zh\n\t\t设置是否开启自动异常捕捉\n\t\t@param enabled enabled \n\t\t*/\n\t\tsetCaptureUncaughtException(enabled: boolean): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tanalytics account information\n\t\t!#zh\n\t\t统计玩家帐户信息\n\t\t@param paramMap Type: map \n\t\t*/\n\t\tsetAccount(paramMap: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\ttrack user to request payment\n\t\t!#zh\n\t\t跟踪用户支付请求\n\t\t@param paramMap Type: map \n\t\t*/\n\t\tonChargeRequest(paramMap: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\ttrack Successful payment\n\t\t!#zh\n\t\t追踪用户支付成功\n\t\t@param orderID orderID \n\t\t*/\n\t\tonChargeSuccess(orderID: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\ttrack failed payment\n\t\t!#zh\n\t\t追踪用户支付失败\n\t\t@param paramMap Type: map \n\t\t*/\n\t\tonChargeFail(paramMap: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\ttrack Successful payment\n\t\t!#zh\n\t\t统计玩家支付成功\n\t\t@param paramMap Type: map \n\t\t*/\n\t\tonChargeOnlySuccess(paramMap: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\ttrack user purchase\n\t\t!#zh\n\t\t统计玩家消费\n\t\t@param paramMap Type: map \n\t\t*/\n\t\tonPurchase(paramMap: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\ttrack user to use goods\n\t\t!#zh\n\t\t统计玩家使用道具\n\t\t@param paramMap Type: map \n\t\t*/\n\t\tonUse(paramMap: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\ttrack user to reward goods\n\t\t!#zh\n\t\t统计玩家获取奖励\n\t\t@param paramMap Type: map \n\t\t*/\n\t\tonReward(paramMap: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\t start level\n\t\t!#zh\n\t\t开始关卡\n\t\t@param paramMap Type: map \n\t\t*/\n\t\tstartLevel(paramMap: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tfinish level\n\t\t!#zh\n\t\t结束关卡\n\t\t@param levelID levelID \n\t\t*/\n\t\tfinishLevel(levelID: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tfailed level\n\t\t!#zh\n\t\t关卡失败\n\t\t@param paramMap Type: map \n\t\t*/\n\t\tfailLevel(paramMap: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tstart task\n\t\t!#zh\n\t\t开始任务\n\t\t@param paramMap Type: map \n\t\t*/\n\t\tstartTask(paramMap: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tfinish task\n\t\t!#zh\n\t\t完成任务\n\t\t@param taskID taskID \n\t\t*/\n\t\tfinishTask(taskID: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tfailed task\n\t\t!#zh\n\t\t任务失败\n\t\t@param paramMap Type: map \n\t\t*/\n\t\tfailTask(paramMap: any): void;\t\n\t}\t\n\t/** !#en\n\tshare protocol\n\t!#zh\n\t分享系统协议接口 */\n\texport class ProtocolShare extends PluginProtocol {\t\t\n\t\t/**\n\t\t!#en\n\t\tshare interface\n\t\t!#zh\n\t\t分享\n\t\t@param info Type: map \n\t\t*/\n\t\tshare(info: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tset listener\n\t\t!#zh\n\t\t设置分享系统的监听\n\t\t@param listener listener\n\t\t@param target target \n\t\t*/\n\t\tsetListener(listener: Function, target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget listener\n\t\t!#zh\n\t\t获取分享系统的监听 \n\t\t*/\n\t\tgetListener(): Function;\t\n\t}\t\n\t/** !#en\n\tads protocol\n\t!#zh\n\t广告系统协议接口 */\n\texport class ProtocolAds extends PluginProtocol {\t\t\n\t\t/**\n\t\t!#en\n\t\thide ads view\n\t\t!#zh\n\t\t隐藏广告\n\t\t@param adstype adstype\n\t\t@param idx idx \n\t\t*/\n\t\thideAds(adstype: AdsType, idx: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tpreload ads view\n\t\t!#zh\n\t\t预加载广告\n\t\t@param adstype adstype\n\t\t@param idx idx \n\t\t*/\n\t\tpreloadAds(adstype: AdsType, idx: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tquery points\n\t\t!#zh\n\t\t查询分数 \n\t\t*/\n\t\tqueryPoints(): number;\t\t\n\t\t/**\n\t\t!#en\n\t\tget whether the ads type is supported\n\t\t!#zh\n\t\t获取广告类型是否支持\n\t\t@param arg0 arg0 \n\t\t*/\n\t\tisAdTypeSupported(arg0: AdsType): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tspend point\n\t\t!#zh\n\t\t消费分数\n\t\t@param points points \n\t\t*/\n\t\tspendPoints(points: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tset listener\n\t\t!#zh\n\t\t设置广告系统的监听\n\t\t@param listener listener\n\t\t@param target target \n\t\t*/\n\t\tsetListener(listener: Function, target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget listener\n\t\t!#zh\n\t\t获取广告系统的监听 \n\t\t*/\n\t\tgetListener(): Function;\t\n\t}\t\n\t/** !#en\n\tsocial protocol\n\t!#zh\n\t社交系统协议接口 */\n\texport class ProtocolSocial extends PluginProtocol {\t\t\n\t\t/**\n\t\t!#en\n\t\tsign in\n\t\t!#zh\n\t\t登录 \n\t\t*/\n\t\tsignIn(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\t sign out\n\t\t!#zh\n\t\t登出 \n\t\t*/\n\t\tsignOut(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tsubmit score\n\t\t!#zh\n\t\t提交分数\n\t\t@param leadboardID leadboardID\n\t\t@param score Type: long \n\t\t*/\n\t\tsubmitScore(leadboardID: string, score: number): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tshow the id of Leaderboard page\n\t\t!#zh\n\t\t根据唯一标识符显示排行榜\n\t\t@param leaderboardID leaderboardID \n\t\t*/\n\t\tshowLeaderboard(leaderboardID: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tshow the page of achievements\n\t\t!#zh\n\t\t显示成就榜 \n\t\t*/\n\t\tshowAchievements(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tunlock achievement\n\t\t!#zh\n\t\t解锁成就\n\t\t@param info Type: map \n\t\t*/\n\t\tshare(info: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tset listener\n\t\t!#zh\n\t\t设置社交系统的监听\n\t\t@param listener listener\n\t\t@param target target \n\t\t*/\n\t\tsetListener(listener: Function, target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget listener\n\t\t!#zh\n\t\t获取社交系统的监听 \n\t\t*/\n\t\tgetListener(): Function;\t\t\n\t\t/**\n\t\t!#en\n\t\tget friends info\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t获取好友信息，调用前需要判断属性是否存在 \n\t\t*/\n\t\tpauseRecording(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tinteract\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t订阅，调用前需要判断属性是否存在 \n\t\t*/\n\t\tinteract(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tsubscribe\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t关注，调用前需要判断属性是否存在 \n\t\t*/\n\t\tsubscribe(): void;\t\n\t}\t\n\t/** !#en\n\tpush protocol\n\t!#zh\n\t推送系统协议接口 */\n\texport class ProtocolPush extends PluginProtocol {\t\t\n\t\t/**\n\t\t!#en\n\t\tstart Push services\n\t\t!#zh\n\t\t启动推送服务 \n\t\t*/\n\t\tstartPush(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tclose Push services\n\t\t!#zh\n\t\t暂停推送服务 \n\t\t*/\n\t\tclosePush(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tdelete alias\n\t\t!#zh\n\t\t删除别名\n\t\t@param alias alias \n\t\t*/\n\t\tdelAlias(alias: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tset alias\n\t\t!#zh\n\t\t设置别名\n\t\t@param alias alias \n\t\t*/\n\t\tsetAlias(alias: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tdelete tags\n\t\t!#zh\n\t\t删除标签\n\t\t@param tags Type: list \n\t\t*/\n\t\tdelTags(tags: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tset tags\n\t\t!#zh\n\t\t设置标签\n\t\t@param tags Type: list \n\t\t*/\n\t\tsetTags(tags: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tset listener\n\t\t!#zh\n\t\t设置推送系统的监听\n\t\t@param listener listener\n\t\t@param target target \n\t\t*/\n\t\tsetListener(listener: Function, target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget listener\n\t\t!#zh\n\t\t获取推送系统的监听 \n\t\t*/\n\t\tgetListener(): Function;\t\n\t}\t\n\t/** !#en\n\tcrash protocol\n\t!#zh\n\t崩溃分析系统协议接口 */\n\texport class ProtocolCrash extends PluginProtocol {\t\t\n\t\t/**\n\t\t!#en\n\t\tset user identifier\n\t\t!#zh\n\t\t统计用户唯一标识符\n\t\t@param identifier identifier \n\t\t*/\n\t\tsetUserIdentifier(identifier: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tThe uploader captured in exception information\n\t\t!#zh\n\t\t上报异常信息\n\t\t@param message message\n\t\t@param exception exception \n\t\t*/\n\t\treportException(message: string, exception: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tcustomize logging\n\t\t!#zh\n\t\t自定义日志记录\n\t\t@param breadcrumb breadcrumb \n\t\t*/\n\t\tleaveBreadcrumb(breadcrumb: string): void;\t\n\t}\t\n\t/** !#en\n\tREC protocol\n\t!#zh\n\t录屏系统协议接口 */\n\texport class ProtocolREC extends PluginProtocol {\t\t\n\t\t/**\n\t\t!#en\n\t\tshare video\n\t\t!#zh\n\t\t分享视频\n\t\t@param info Type: map \n\t\t*/\n\t\tshare(info: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tStart to record video\n\t\t!#zh\n\t\t开始录制视频 \n\t\t*/\n\t\tstartRecording(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tStart to record video\n\t\t!#zh\n\t\t结束录制视频 \n\t\t*/\n\t\tstopRecording(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tset listener\n\t\t!#zh\n\t\t设置录屏系统的监听\n\t\t@param listener listener\n\t\t@param target target \n\t\t*/\n\t\tsetListener(listener: Function, target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget listener\n\t\t!#zh\n\t\t获取录屏系统的监听 \n\t\t*/\n\t\tgetListener(): Function;\t\t\n\t\t/**\n\t\t!#en\n\t\tpause to record video\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t暂停录制视频，调用前需要判断属性是否存在 \n\t\t*/\n\t\tpauseRecording(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tresume to record video\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t恢复录制视频，调用前需要判断属性是否存在 \n\t\t*/\n\t\tresumeRecording(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget whether the device is isAvailable\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t获取设备是否可用，调用前需要判断属性是否存在 \n\t\t*/\n\t\tisAvailable(): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tget status of recording\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t获取录制状态，调用前需要判断属性是否存在 \n\t\t*/\n\t\tisRecording(): boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tshow toolbar\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t显示悬浮窗，调用前需要判断属性是否存在 \n\t\t*/\n\t\tshowToolBar(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\thide toolbar\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t隐藏悬浮窗，调用前需要判断属性是否存在 \n\t\t*/\n\t\thideToolBar(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tshow video center\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t显示视频中心，调用前需要判断属性是否存在 \n\t\t*/\n\t\tshowVideoCenter(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tenter platform\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t显示平台中心，调用前需要判断属性是否存在 \n\t\t*/\n\t\tenterPlatform(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSet the video data, it is recommended to check whether are recorded firstly\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t设置视频相关数据，建议先检查是否是正在录制，调用前需要判断属性是否存在\n\t\t@param info Type: map \n\t\t*/\n\t\tsetMetaData(info: any): void;\t\n\t}\t\n\t/** !#en\n\tad tracking protocol\n\t!#zh\n\t广告追踪系统协议接口 */\n\texport class ProtocolAdTracking extends PluginProtocol {\t\t\n\t\t/**\n\t\t!#en\n\t\tCall this method if you want to track register events as happening during a section.\n\t\t!#zh\n\t\t统计用户注册信息\n\t\t@param productInfo Type: map \n\t\t*/\n\t\tonPay(productInfo: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tCall this method if you want to track register events as happening during a section.\n\t\t!#zh\n\t\t统计用户注册信息\n\t\t@param userInfo Type: map \n\t\t*/\n\t\tonLogin(userInfo: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tCall this method if you want to track register events as happening during a section.\n\t\t!#zh\n\t\t统计用户注册信息\n\t\t@param userId userId \n\t\t*/\n\t\tonRegister(userId: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tCall this method if you want to track custom events with parameters as happening during a section.\n\t\t!#zh\n\t\t统计自定义事件\n\t\t@param eventId eventId\n\t\t@param paramMap Type: map \n\t\t*/\n\t\ttrackEvent(eventId: string, paramMap: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tCall this method with parameters if you want to create role as happening during a section.\n\t\t!#zh\n\t\t统计创建角色事件，调用前需要判断属性是否存在\n\t\t@param userInfo Type: map \n\t\t*/\n\t\tonCreateRole(userInfo: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tCall this method if you want to track levelup events with parameters as happening during a section.\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t统计角色升级事件，调用前需要判断属性是否存在\n\t\t@param info Type: map \n\t\t*/\n\t\tonLevelUp(info: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tInvoke this method with parameters if you want to start to pay as happening during a section.\n\t\tBefore to invoke, you need to verdict whether this properties existed\n\t\t!#zh\n\t\t统计开始充值事件，调用前需要判断属性是否存在\n\t\t@param info Type: map \n\t\t*/\n\t\tonStartToPay(info: any): void;\t\n\t}\t\n\t/** !#en\n\tcustom protocol\n\t!#zh\n\t自定义系统协议接口 */\n\texport class ProtocolCustom extends PluginProtocol {\t\t\n\t\t/**\n\t\t!#en\n\t\tset listener\n\t\t!#zh\n\t\t设置自定义系统的监听\n\t\t@param listener listener\n\t\t@param target target \n\t\t*/\n\t\tsetListener(listener: Function, target: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tget listener\n\t\t!#zh\n\t\t获取自定义系统的监听 \n\t\t*/\n\t\tgetListener(): Function;\t\n\t}\t\n\t/** !#en\n\tData structure class\n\t!#zh\n\t数据结构类 */\n\texport class PluginParam {\t\t\n\t\t/**\n\t\t!#en\n\t\tcreate plugin parameters\n\t\t!#zh\n\t\t创建对象\n\t\t@param parameters parameters \n\t\t*/\n\t\tstatic create(parameters: number|string|any): PluginParam;\t\n\t}\t\n\t/** !#en The callback of user system\n\t!#zh 用户系统回调 */\n\texport enum UserActionResultCode {\t\t\n\t\tkInitSuccess = 0,\n\t\tkInitFail = 0,\n\t\tkLoginSuccess = 0,\n\t\tkLoginNetworkError = 0,\n\t\tkLoginNoNeed = 0,\n\t\tkLoginFail = 0,\n\t\tkLoginCancel = 0,\n\t\tkLogoutSuccess = 0,\n\t\tkLogoutFail = 0,\n\t\tkPlatformEnter = 0,\n\t\tkPlatformBack = 0,\n\t\tkPausePage = 0,\n\t\tkExitPage = 0,\n\t\tkAntiAddictionQuery = 0,\n\t\tkRealNameRegister = 0,\n\t\tkAccountSwitchSuccess = 0,\n\t\tkAccountSwitchFail = 0,\n\t\tkOpenShop = 0,\n\t\tkAccountSwitchCancel = 0,\n\t\tkUserExtension = 0,\n\t\tkSendToDesktopSuccess = 0,\n\t\tkSendToDesktopFail = 0,\n\t\tkGetAvailableLoginTypeSuccess = 0,\n\t\tkGetAvailableLoginTypeFail = 0,\n\t\tkGetUserInfoSuccess = 0,\n\t\tkGetUserInfoFail = 0,\n\t\tkOpenBBSSuccess = 0,\n\t\tkOpenBBSFail = 0,\t\n\t}\t\n\t/** !#en The toolbar position of user type\n\t!#zh 用户系统悬浮窗位置 */\n\texport enum ToolBarPlace {\t\t\n\t\tkToolBarTopLeft = 0,\n\t\tkToolBarTopRight = 0,\n\t\tkToolBarMidLeft = 0,\n\t\tkToolBarMidRight = 0,\n\t\tkToolBarBottomLeft = 0,\n\t\tkToolBarBottomRight = 0,\t\n\t}\t\n\t/** !#en The callback of requesting reStringge\n\t!#zh 支付系统支付请求回调 */\n\texport enum PayResultCode {\t\t\n\t\tkPaySuccess = 0,\n\t\tkPayFail = 0,\n\t\tkPayCancel = 0,\n\t\tkPayNetworkError = 0,\n\t\tkPayProductionInforIncomplete = 0,\n\t\tkPayInitSuccess = 0,\n\t\tkPayInitFail = 0,\n\t\tkPayNowPaying = 0,\n\t\tkPayReStringgeSuccess = 0,\n\t\tkPayExtension = 0,\n\t\tkPayNeedLoginAgain = 0,\n\t\tkRequestSuccess = 0,\n\t\tkRequestFail = 0,\t\n\t}\t\n\t/** !#en The enum of account type\n\t!#zh 统计系统的账号类型 */\n\texport enum AccountType {\t\t\n\t\tANONYMOUS = 0,\n\t\tREGISTED = 0,\n\t\tSINA_WEIBO = 0,\n\t\tTENCENT_WEIBO = 0,\n\t\tQQ = 0,\n\t\tND91 = 0,\t\n\t}\t\n\t/** !#en The enum of account operation\n\t!#zh 统计系统的账号操作 */\n\texport enum AccountOperate {\t\t\n\t\tLOGIN = 0,\n\t\tLOGOUT = 0,\n\t\tREGISTER = 0,\t\n\t}\t\n\t/** !#en The enum of gender\n\t!#zh 统计系统的账号性别 */\n\texport enum AccountGender {\t\t\n\t\tMALE = 0,\n\t\tFEMALE = 0,\n\t\tUNKNOWN = 0,\t\n\t}\t\n\t/** !#en The enum of task type\n\t!#zh 统计系统的任务类型 */\n\texport enum TaskType {\t\t\n\t\tGUIDE_LINE = 0,\n\t\tMAIN_LINE = 0,\n\t\tBRANCH_LINE = 0,\n\t\tDAILY = 0,\n\t\tACTIVITY = 0,\n\t\tOTHER = 0,\t\n\t}\t\n\t/** !#en The callback of share system\n\t!#zh 分享系统回调 */\n\texport enum ShareResultCode {\t\t\n\t\tkShareSuccess = 0,\n\t\tkShareFail = 0,\n\t\tkShareCancel = 0,\n\t\tkShareNetworkError = 0,\n\t\tkShareExtension = 0,\t\n\t}\t\n\t/** !#en The callback of social system\n\t!#zh 社交系统回调 */\n\texport enum SocialRetCode {\t\t\n\t\tkScoreSubmitSucceed = 0,\n\t\tkScoreSubmitfail = 0,\n\t\tkAchUnlockSucceed = 0,\n\t\tkAchUnlockFail = 0,\n\t\tkSocialSignInSucceed = 0,\n\t\tkSocialSignInFail = 0,\n\t\tkSocialSignOutSucceed = 0,\n\t\tkSocialSignOutFail = 0,\n\t\tkSocialGetGameFriends = 0,\n\t\tkSocialExtensionCode = 0,\n\t\tkSocialGetFriendsInfoSuccess = 0,\n\t\tkSocialGetFriendsInfoFail = 0,\n\t\tkSocialAlreadySubscription = 0,\n\t\tkSocialNoSubscription = 0,\n\t\tkSocialSubscriptionFail = 0,\t\n\t}\t\n\t/** !#en The callback of ads system\n\t!#zh 广告系统回调 */\n\texport enum AdsResultCode {\t\t\n\t\tkAdsReceived = 0,\n\t\tkAdsShown = 0,\n\t\tkAdsDismissed = 0,\n\t\tkPointsSpendSucceed = 0,\n\t\tkPointsSpendFailed = 0,\n\t\tkNetworkError = 0,\n\t\tkUnknownError = 0,\n\t\tkOfferWallOnPointsChanged = 0,\n\t\tkRewardedVideoWithReward = 0,\n\t\tkInAppPurchaseFinished = 0,\n\t\tkAdsClicked = 0,\n\t\tkAdsExtension = 0,\t\n\t}\t\n\t/** !#en The enum of ads position\n\t!#zh 广告位置 */\n\texport enum AdsPos {\t\t\n\t\tkPosCenter = 0,\n\t\tkPosTop = 0,\n\t\tkPosTopLeft = 0,\n\t\tkPosTopRight = 0,\n\t\tkPosBottom = 0,\n\t\tkPosBottomLeft = 0,\n\t\tkPosBottomRight = 0,\t\n\t}\t\n\t/** !#en The enum of ads type\n\t!#zh 广告类型 */\n\texport enum AdsType {\t\t\n\t\tAD_TYPE_BANNER = 0,\n\t\tAD_TYPE_FULLSCREEN = 0,\n\t\tAD_TYPE_MOREAPP = 0,\n\t\tAD_TYPE_OFFERWALL = 0,\n\t\tAD_TYPE_REWARDEDVIDEO = 0,\n\t\tAD_TYPE_NATIVEEXPRESS = 0,\n\t\tAD_TYPE_NATIVEADVANCED = 0,\t\n\t}\t\n\t/** !#en The callback of push system\n\t!#zh 推送系统回调 */\n\texport enum PushActionResultCode {\t\t\n\t\tkPushReceiveMessage = 0,\n\t\tkPushExtensionCode = 0,\t\n\t}\t\n\t/** !#en The callback of custom system\n\t!#zh 自定义系统回调 */\n\texport enum CustomResultCode {\t\t\n\t\tkCustomExtension = 0,\t\n\t}\t\n\t/** !#en The callback of REC system\n\t!#zh 录屏系统回调 */\n\texport enum RECResultCode {\t\t\n\t\tkRECInitSuccess = 0,\n\t\tkRECInitFail = 0,\n\t\tkRECStartRecording = 0,\n\t\tkRECStopRecording = 0,\n\t\tkRECPauseRecording = 0,\n\t\tkRECResumeRecording = 0,\n\t\tkRECEnterSDKPage = 0,\n\t\tkRECQuitSDKPage = 0,\n\t\tkRECShareSuccess = 0,\n\t\tkRECShareFail = 0,\n\t\tkRECExtension = 0,\t\n\t}\n}\n\n/** !#en\nThe global main namespace of DragonBones, all classes, functions,\nproperties and constants of DragonBones are defined in this namespace\n!#zh\nDragonBones 的全局的命名空间，\n与 DragonBones 相关的所有的类，函数，属性，常量都在这个命名空间中定义。 */\ndeclare namespace dragonBones {\t\n\t/** !#en\n\tThe Armature Display of DragonBones <br/>\n\t<br/>\n\t(Armature Display has a reference to a DragonBonesAsset and stores the state for ArmatureDisplay instance,\n\twhich consists of the current pose's bone SRT, slot colors, and which slot attachments are visible. <br/>\n\tMultiple Armature Display can use the same DragonBonesAsset which includes all animations, skins, and attachments.) <br/>\n\t!#zh\n\tDragonBones 骨骼动画 <br/>\n\t<br/>\n\t(Armature Display 具有对骨骼数据的引用并且存储了骨骼实例的状态，\n\t它由当前的骨骼动作，slot 颜色，和可见的 slot attachments 组成。<br/>\n\t多个 Armature Display 可以使用相同的骨骼数据，其中包括所有的动画，皮肤和 attachments。)<br/> */\n\texport class ArmatureDisplay extends cc.RenderComponent {\t\t\n\t\t/** !#en\n\t\tThe DragonBones data contains the armatures information (bind pose bones, slots, draw order,\n\t\tattachments, skins, etc) and animations but does not hold any state.<br/>\n\t\tMultiple ArmatureDisplay can share the same DragonBones data.\n\t\t!#zh\n\t\t骨骼数据包含了骨骼信息（绑定骨骼动作，slots，渲染顺序，\n\t\tattachments，皮肤等等）和动画但不持有任何状态。<br/>\n\t\t多个 ArmatureDisplay 可以共用相同的骨骼数据。 */\n\t\tdragonAsset: DragonBonesAsset;\t\t\n\t\t/** !#en\n\t\tThe atlas asset for the DragonBones.\n\t\t!#zh\n\t\t骨骼数据所需的 Atlas Texture 数据。 */\n\t\tdragonAtlasAsset: DragonBonesAtlasAsset;\t\t\n\t\t/** !#en The name of current armature.\n\t\t!#zh 当前的 Armature 名称。 */\n\t\tarmatureName: string;\t\t\n\t\t/** !#en The name of current playing animation.\n\t\t!#zh 当前播放的动画名称。 */\n\t\tanimationName: string;\t\t\n\t\t_defaultArmatureIndex: number;\t\t\n\t\t/** !#en The time scale of this armature.\n\t\t!#zh 当前骨骼中所有动画的时间缩放率。 */\n\t\ttimeScale: number;\t\t\n\t\t/** !#en The play times of the default animation.\n\t\t     -1 means using the value of config file;\n\t\t     0 means repeat for ever\n\t\t     >0 means repeat times\n\t\t!#zh 播放默认动画的循环次数\n\t\t     -1 表示使用配置文件中的默认值;\n\t\t     0 表示无限循环\n\t\t     >0 表示循环次数 */\n\t\tplayTimes: number;\t\t\n\t\t/** !#en Indicates whether to enable premultiplied alpha.\n\t\tYou should disable this option when image's transparent area appears to have opaque pixels,\n\t\tor enable this option when image's half transparent area appears to be darken.\n\t\t!#zh 是否启用贴图预乘。\n\t\t当图片的透明区域出现色块时需要关闭该选项，当图片的半透明区域颜色变黑时需要启用该选项。 */\n\t\tpremultipliedAlpha: boolean;\t\t\n\t\t/** !#en Indicates whether open debug bones.\n\t\t!#zh 是否显示 bone 的 debug 信息。 */\n\t\tdebugBones: boolean;\t\t\n\t\t/** !#en Enabled batch model, if skeleton is complex, do not enable batch, or will lower performance.\n\t\t!#zh 开启合批，如果渲染大量相同纹理，且结构简单的骨骼动画，开启合批可以降低drawcall，否则请不要开启，cpu消耗会上升。 */\n\t\tenableBatch: boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tThe key of dragonbones cache data, which is regard as 'dragonbonesName', when you want to change dragonbones cloth.\n\t\t!#zh\n\t\t缓存龙骨数据的key值，换装的时会使用到该值，作为dragonbonesName使用\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet factory = dragonBones.CCFactory.getInstance();\n\t\tlet needChangeSlot = needChangeArmature.armature().getSlot(\"changeSlotName\");\n\t\tfactory.replaceSlotDisplay(toChangeArmature.getArmatureKey(), \"armatureName\", \"slotName\", \"displayName\", needChangeSlot);\n\t\t``` \n\t\t*/\n\t\tgetArmatureKey(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tIt's best to set cache mode before set property 'dragonAsset', or will waste some cpu time.\n\t\tIf set the mode in editor, then no need to worry about order problem.\n\t\t!#zh\n\t\t若想切换渲染模式，最好在设置'dragonAsset'之前，先设置好渲染模式，否则有运行时开销。\n\t\t若在编辑中设置渲染模式，则无需担心设置次序的问题。\n\t\t@param cacheMode cacheMode\n\t\t\n\t\t@example \n\t\t```js\n\t\tarmatureDisplay.setAnimationCacheMode(dragonBones.ArmatureDisplay.AnimationCacheMode.SHARED_CACHE);\n\t\t``` \n\t\t*/\n\t\tsetAnimationCacheMode(cacheMode: ArmatureDisplay.AnimationCacheMode): void;\t\t\n\t\t/**\n\t\t!#en Whether in cached mode.\n\t\t!#zh 当前是否处于缓存模式。 \n\t\t*/\n\t\tisAnimationCached(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tPlay the specified animation.\n\t\tParameter animName specify the animation name.\n\t\tParameter playTimes specify the repeat times of the animation.\n\t\t-1 means use the value of the config file.\n\t\t0 means play the animation for ever.\n\t\t>0 means repeat times.\n\t\t!#zh\n\t\t播放指定的动画.\n\t\tanimName 指定播放动画的名称。\n\t\tplayTimes 指定播放动画的次数。\n\t\t-1 为使用配置文件中的次数。\n\t\t0 为无限循环播放。\n\t\t>0 为动画的重复次数。\n\t\t@param animName animName\n\t\t@param playTimes playTimes \n\t\t*/\n\t\tplayAnimation(animName: string, playTimes: number): dragonBones.AnimationState;\t\t\n\t\t/**\n\t\t!#en\n\t\tUpdate an animation cache.\n\t\t!#zh\n\t\t更新某个动画缓存。\n\t\t@param animName animName \n\t\t*/\n\t\tupdateAnimationCache(animName: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the all armature names in the DragonBones Data.\n\t\t!#zh\n\t\t获取 DragonBones 数据中所有的 armature 名称 \n\t\t*/\n\t\tgetArmatureNames(): any[];\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the all animation names of specified armature.\n\t\t!#zh\n\t\t获取指定的 armature 的所有动画名称。\n\t\t@param armatureName armatureName \n\t\t*/\n\t\tgetAnimationNames(armatureName: string): any[];\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd event listener for the DragonBones Event, the same to addEventListener.\n\t\t!#zh\n\t\t添加 DragonBones 事件监听器，与 addEventListener 作用相同。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param listener The callback that will be invoked when the event is dispatched.\n\t\t@param target The target (this object) to invoke the callback, can be null \n\t\t*/\n\t\ton(type: string, listener: (event: cc.Event) => void, target?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemove the event listener for the DragonBones Event, the same to removeEventListener.\n\t\t!#zh\n\t\t移除 DragonBones 事件监听器，与 removeEventListener 作用相同。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param listener listener\n\t\t@param target target \n\t\t*/\n\t\toff(type: string, listener?: Function, target?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd DragonBones one-time event listener, the callback will remove itself after the first time it is triggered.\n\t\t!#zh\n\t\t添加 DragonBones 一次性事件监听器，回调会在第一时间被触发后删除自身。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param listener The callback that will be invoked when the event is dispatched.\n\t\t@param target The target (this object) to invoke the callback, can be null \n\t\t*/\n\t\tonce(type: string, listener: (event: cc.Event) => void, target?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tAdd event listener for the DragonBones Event.\n\t\t!#zh\n\t\t添加 DragonBones 事件监听器。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param listener The callback that will be invoked when the event is dispatched.\n\t\t@param target The target (this object) to invoke the callback, can be null \n\t\t*/\n\t\taddEventListener(type: string, listener: (event: cc.Event) => void, target?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tRemove the event listener for the DragonBones Event.\n\t\t!#zh\n\t\t移除 DragonBones 事件监听器。\n\t\t@param type A string representing the event type to listen for.\n\t\t@param listener listener\n\t\t@param target target \n\t\t*/\n\t\tremoveEventListener(type: string, listener?: Function, target?: any): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tBuild the armature for specified name.\n\t\t!#zh\n\t\t构建指定名称的 armature 对象\n\t\t@param armatureName armatureName\n\t\t@param node node \n\t\t*/\n\t\tbuildArmature(armatureName: string, node: cc.Node): ArmatureDisplay;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet the current armature object of the ArmatureDisplay.\n\t\t!#zh\n\t\t获取 ArmatureDisplay 当前使用的 Armature 对象 \n\t\t*/\n\t\tarmature(): any;\t\n\t}\t\n\t/** undefined */\n\texport class CCFactory extends BaseFactory {\t\t\n\t\t/**\n\t\t\n\t\t\n\t\t@example \n\t\t```js\n\t\tlet factory = dragonBones.CCFactory.getInstance();\n\t\t``` \n\t\t*/\n\t\tstatic getInstance(): CCFactory;\t\n\t}\t\n\t/** !#en The skeleton data of dragonBones.\n\t!#zh dragonBones 的 骨骼数据。 */\n\texport class DragonBonesAsset extends cc.Asset {\t\t\n\t\t/** !#en See http://developer.egret.com/cn/github/egret-docs/DB/dbLibs/dataFormat/index.html\n\t\t!#zh 可查看 DragonBones 官方文档 http://developer.egret.com/cn/github/egret-docs/DB/dbLibs/dataFormat/index.html */\n\t\tdragonBonesJson: string;\t\n\t}\t\n\t/** !#en The skeleton atlas data of dragonBones.\n\t!#zh dragonBones 的骨骼纹理数据。 */\n\texport class DragonBonesAtlasAsset extends cc.Asset {\t\t\n\t\tatlasJson: string;\t\t\n\t\ttexture: cc.Texture2D;\t\n\t}\t\n\t/****************************************************\n\t* ArmatureDisplay\n\t*****************************************************/\n\t\n\texport namespace ArmatureDisplay {\t\t\n\t\t/** !#en Enum for cache mode type.\n\t\t!#zh Dragonbones渲染类型 */\n\t\texport enum AnimationCacheMode {\t\t\t\n\t\t\tREALTIME = 0,\n\t\t\tSHARED_CACHE = 0,\n\t\t\tPRIVATE_CACHE = 0,\t\t\n\t\t}\t\n\t}\n\t\n}\n\n/** !#en\nThe global main namespace of Spine, all classes, functions,\nproperties and constants of Spine are defined in this namespace\n!#zh\nSpine 的全局的命名空间，\n与 Spine 相关的所有的类，函数，属性，常量都在这个命名空间中定义。 */\ndeclare namespace sp {\t\n\t/** !#en\n\tThe skeleton of Spine <br/>\n\t<br/>\n\t(Skeleton has a reference to a SkeletonData and stores the state for skeleton instance,\n\twhich consists of the current pose's bone SRT, slot colors, and which slot attachments are visible. <br/>\n\tMultiple skeletons can use the same SkeletonData which includes all animations, skins, and attachments.) <br/>\n\t!#zh\n\tSpine 骨骼动画 <br/>\n\t<br/>\n\t(Skeleton 具有对骨骼数据的引用并且存储了骨骼实例的状态，\n\t它由当前的骨骼动作，slot 颜色，和可见的 slot attachments 组成。<br/>\n\t多个 Skeleton 可以使用相同的骨骼数据，其中包括所有的动画，皮肤和 attachments。 */\n\texport class Skeleton extends cc.RenderComponent {\t\t\n\t\t/** !#en The skeletal animation is paused?\n\t\t!#zh 该骨骼动画是否暂停。 */\n\t\tpaused: boolean;\t\t\n\t\t/** !#en\n\t\tThe skeleton data contains the skeleton information (bind pose bones, slots, draw order,\n\t\tattachments, skins, etc) and animations but does not hold any state.<br/>\n\t\tMultiple skeletons can share the same skeleton data.\n\t\t!#zh\n\t\t骨骼数据包含了骨骼信息（绑定骨骼动作，slots，渲染顺序，\n\t\tattachments，皮肤等等）和动画但不持有任何状态。<br/>\n\t\t多个 Skeleton 可以共用相同的骨骼数据。 */\n\t\tskeletonData: SkeletonData;\t\t\n\t\t/** !#en The name of default skin.\n\t\t!#zh 默认的皮肤名称。 */\n\t\tdefaultSkin: string;\t\t\n\t\t/** !#en The name of default animation.\n\t\t!#zh 默认的动画名称。 */\n\t\tdefaultAnimation: string;\t\t\n\t\t/** !#en The name of current playing animation.\n\t\t!#zh 当前播放的动画名称。 */\n\t\tanimation: string;\t\t\n\t\t_defaultSkinIndex: number;\t\t\n\t\t/** !#en TODO\n\t\t!#zh 是否循环播放当前骨骼动画。 */\n\t\tloop: boolean;\t\t\n\t\t/** !#en Indicates whether to enable premultiplied alpha.\n\t\tYou should disable this option when image's transparent area appears to have opaque pixels,\n\t\tor enable this option when image's half transparent area appears to be darken.\n\t\t!#zh 是否启用贴图预乘。\n\t\t当图片的透明区域出现色块时需要关闭该选项，当图片的半透明区域颜色变黑时需要启用该选项。 */\n\t\tpremultipliedAlpha: boolean;\t\t\n\t\t/** !#en The time scale of this skeleton.\n\t\t!#zh 当前骨骼中所有动画的时间缩放率。 */\n\t\ttimeScale: number;\t\t\n\t\t/** !#en Indicates whether open debug slots.\n\t\t!#zh 是否显示 slot 的 debug 信息。 */\n\t\tdebugSlots: boolean;\t\t\n\t\t/** !#en Indicates whether open debug bones.\n\t\t!#zh 是否显示 bone 的 debug 信息。 */\n\t\tdebugBones: boolean;\t\t\n\t\t/** !#en Enabled two color tint.\n\t\t!#zh 是否启用染色效果。 */\n\t\tuseTint: boolean;\t\t\n\t\t/** !#en Enabled batch model, if skeleton is complex, do not enable batch, or will lower performance.\n\t\t!#zh 开启合批，如果渲染大量相同纹理，且结构简单的骨骼动画，开启合批可以降低drawcall，否则请不要开启，cpu消耗会上升。 */\n\t\tenableBatch: boolean;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets runtime skeleton data to sp.Skeleton.<br>\n\t\tThis method is different from the `skeletonData` property. This method is passed in the raw data provided by the Spine runtime, and the skeletonData type is the asset type provided by Creator.\n\t\t!#zh\n\t\t设置底层运行时用到的 SkeletonData。<br>\n\t\t这个接口有别于 `skeletonData` 属性，这个接口传入的是 Spine runtime 提供的原始数据，而 skeletonData 的类型是 Creator 提供的资源类型。\n\t\t@param skeletonData skeletonData \n\t\t*/\n\t\tsetSkeletonData(skeletonData: sp.spine.SkeletonData): void;\t\t\n\t\t/**\n\t\t!#en Sets slots visible range.\n\t\t!#zh 设置骨骼插槽可视范围。\n\t\t@param startSlotIndex startSlotIndex\n\t\t@param endSlotIndex endSlotIndex \n\t\t*/\n\t\tsetSlotsRange(startSlotIndex: number, endSlotIndex: number): void;\t\t\n\t\t/**\n\t\t!#en Sets animation state data.<br>\n\t\tThe parameter type is {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.AnimationStateData.\n\t\t!#zh 设置动画状态数据。<br>\n\t\t参数是 {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.AnimationStateData。\n\t\t@param stateData stateData \n\t\t*/\n\t\tsetAnimationStateData(stateData: sp.spine.AnimationStateData): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tIt's best to set cache mode before set property 'dragonAsset', or will waste some cpu time.\n\t\tIf set the mode in editor, then no need to worry about order problem.\n\t\t!#zh\n\t\t若想切换渲染模式，最好在设置'dragonAsset'之前，先设置好渲染模式，否则有运行时开销。\n\t\t若在编辑中设置渲染模式，则无需担心设置次序的问题。\n\t\t@param cacheMode cacheMode\n\t\t\n\t\t@example \n\t\t```js\n\t\tskeleton.setAnimationCacheMode(sp.Skeleton.AnimationCacheMode.SHARED_CACHE);\n\t\t``` \n\t\t*/\n\t\tsetAnimationCacheMode(cacheMode: Skeleton.AnimationCacheMode): void;\t\t\n\t\t/**\n\t\t!#en Whether in cached mode.\n\t\t!#zh 当前是否处于缓存模式。 \n\t\t*/\n\t\tisAnimationCached(): void;\t\t\n\t\t/**\n\t\t!#en Computes the world SRT from the local SRT for each bone.\n\t\t!#zh 重新更新所有骨骼的世界 Transform，\n\t\t当获取 bone 的数值未更新时，即可使用该函数进行更新数值。\n\t\t\n\t\t@example \n\t\t```js\n\t\tvar bone = spine.findBone('head');\n\t\tcc.log(bone.worldX); // return 0;\n\t\tspine.updateWorldTransform();\n\t\tbone = spine.findBone('head');\n\t\tcc.log(bone.worldX); // return -23.12;\n\t\t``` \n\t\t*/\n\t\tupdateWorldTransform(): void;\t\t\n\t\t/**\n\t\t!#en Sets the bones and slots to the setup pose.\n\t\t!#zh 还原到起始动作 \n\t\t*/\n\t\tsetToSetupPose(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the bones to the setup pose,\n\t\tusing the values from the `BoneData` list in the `SkeletonData`.\n\t\t!#zh\n\t\t设置 bone 到起始动作\n\t\t使用 SkeletonData 中的 BoneData 列表中的值。 \n\t\t*/\n\t\tsetBonesToSetupPose(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the slots to the setup pose,\n\t\tusing the values from the `SlotData` list in the `SkeletonData`.\n\t\t!#zh\n\t\t设置 slot 到起始动作。\n\t\t使用 SkeletonData 中的 SlotData 列表中的值。 \n\t\t*/\n\t\tsetSlotsToSetupPose(): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tUpdate an animation cache.\n\t\t!#zh\n\t\t更新某个动画缓存。\n\t\t@param animName animName \n\t\t*/\n\t\tupdateAnimationCache(animName: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tFinds a bone by name.\n\t\tThis does a string comparison for every bone.<br>\n\t\tReturns a {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.Bone object.\n\t\t!#zh\n\t\t通过名称查找 bone。\n\t\t这里对每个 bone 的名称进行了对比。<br>\n\t\t返回一个 {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.Bone 对象。\n\t\t@param boneName boneName \n\t\t*/\n\t\tfindBone(boneName: string): sp.spine.Bone;\t\t\n\t\t/**\n\t\t!#en\n\t\tFinds a slot by name. This does a string comparison for every slot.<br>\n\t\tReturns a {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.Slot object.\n\t\t!#zh\n\t\t通过名称查找 slot。这里对每个 slot 的名称进行了比较。<br>\n\t\t返回一个 {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.Slot 对象。\n\t\t@param slotName slotName \n\t\t*/\n\t\tfindSlot(slotName: string): sp.spine.Slot;\t\t\n\t\t/**\n\t\t!#en\n\t\tFinds a skin by name and makes it the active skin.\n\t\tThis does a string comparison for every skin.<br>\n\t\tNote that setting the skin does not change which attachments are visible.<br>\n\t\tReturns a {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.Skin object.\n\t\t!#zh\n\t\t按名称查找皮肤，激活该皮肤。这里对每个皮肤的名称进行了比较。<br>\n\t\t注意：设置皮肤不会改变 attachment 的可见性。<br>\n\t\t返回一个 {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.Skin 对象。\n\t\t@param skinName skinName \n\t\t*/\n\t\tsetSkin(skinName: string): void;\t\t\n\t\t/**\n\t\t!#en\n\t\tReturns the attachment for the slot and attachment name.\n\t\tThe skeleton looks first in its skin, then in the skeleton data’s default skin.<br>\n\t\tReturns a {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.Attachment object.\n\t\t!#zh\n\t\t通过 slot 和 attachment 的名称获取 attachment。Skeleton 优先查找它的皮肤，然后才是 Skeleton Data 中默认的皮肤。<br>\n\t\t返回一个 {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.Attachment 对象。\n\t\t@param slotName slotName\n\t\t@param attachmentName attachmentName \n\t\t*/\n\t\tgetAttachment(slotName: string, attachmentName: string): sp.spine.Attachment;\t\t\n\t\t/**\n\t\t!#en\n\t\tSets the attachment for the slot and attachment name.\n\t\tThe skeleton looks first in its skin, then in the skeleton data’s default skin.\n\t\t!#zh\n\t\t通过 slot 和 attachment 的名字来设置 attachment。\n\t\tSkeleton 优先查找它的皮肤，然后才是 Skeleton Data 中默认的皮肤。\n\t\t@param slotName slotName\n\t\t@param attachmentName attachmentName \n\t\t*/\n\t\tsetAttachment(slotName: string, attachmentName: string): void;\t\t\n\t\t/**\n\t\tReturn the renderer of attachment.\n\t\t@param regionAttachment regionAttachment \n\t\t*/\n\t\tgetTextureAtlas(regionAttachment: sp.spine.RegionAttachment|spine.BoundingBoxAttachment): sp.spine.TextureAtlasRegion;\t\t\n\t\t/**\n\t\t!#en\n\t\tMix applies all keyframe values,\n\t\tinterpolated for the specified time and mixed with the current values.\n\t\t!#zh 为所有关键帧设定混合及混合时间（从当前值开始差值）。\n\t\t@param fromAnimation fromAnimation\n\t\t@param toAnimation toAnimation\n\t\t@param duration duration \n\t\t*/\n\t\tsetMix(fromAnimation: string, toAnimation: string, duration: number): void;\t\t\n\t\t/**\n\t\t!#en Set the current animation. Any queued animations are cleared.<br>\n\t\tReturns a {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.TrackEntry object.\n\t\t!#zh 设置当前动画。队列中的任何的动画将被清除。<br>\n\t\t返回一个 {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.TrackEntry 对象。\n\t\t@param trackIndex trackIndex\n\t\t@param name name\n\t\t@param loop loop \n\t\t*/\n\t\tsetAnimation(trackIndex: number, name: string, loop: boolean): sp.spine.TrackEntry;\t\t\n\t\t/**\n\t\t!#en Adds an animation to be played delay seconds after the current or last queued animation.<br>\n\t\tReturns a {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.TrackEntry object.\n\t\t!#zh 添加一个动画到动画队列尾部，还可以延迟指定的秒数。<br>\n\t\t返回一个 {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.TrackEntry 对象。\n\t\t@param trackIndex trackIndex\n\t\t@param name name\n\t\t@param loop loop\n\t\t@param delay delay \n\t\t*/\n\t\taddAnimation(trackIndex: number, name: string, loop: boolean, delay?: number): sp.spine.TrackEntry;\t\t\n\t\t/**\n\t\t!#en Find animation with specified name.\n\t\t!#zh 查找指定名称的动画\n\t\t@param name name \n\t\t*/\n\t\tfindAnimation(name: string): sp.spine.Animation;\t\t\n\t\t/**\n\t\t!#en Returns track entry by trackIndex.<br>\n\t\tReturns a {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.TrackEntry object.\n\t\t!#zh 通过 track 索引获取 TrackEntry。<br>\n\t\t返回一个 {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.TrackEntry 对象。\n\t\t@param trackIndex trackIndex \n\t\t*/\n\t\tgetCurrent(trackIndex: any): sp.spine.TrackEntry;\t\t\n\t\t/**\n\t\t!#en Clears all tracks of animation state.\n\t\t!#zh 清除所有 track 的动画状态。 \n\t\t*/\n\t\tclearTracks(): void;\t\t\n\t\t/**\n\t\t!#en Clears track of animation state by trackIndex.\n\t\t!#zh 清除出指定 track 的动画状态。\n\t\t@param trackIndex trackIndex \n\t\t*/\n\t\tclearTrack(trackIndex: number): void;\t\t\n\t\t/**\n\t\t!#en Set the start event listener.\n\t\t!#zh 用来设置开始播放动画的事件监听。\n\t\t@param listener listener \n\t\t*/\n\t\tsetStartListener(listener: Function): void;\t\t\n\t\t/**\n\t\t!#en Set the interrupt event listener.\n\t\t!#zh 用来设置动画被打断的事件监听。\n\t\t@param listener listener \n\t\t*/\n\t\tsetInterruptListener(listener: Function): void;\t\t\n\t\t/**\n\t\t!#en Set the end event listener.\n\t\t!#zh 用来设置动画播放完后的事件监听。\n\t\t@param listener listener \n\t\t*/\n\t\tsetEndListener(listener: Function): void;\t\t\n\t\t/**\n\t\t!#en Set the dispose event listener.\n\t\t!#zh 用来设置动画将被销毁的事件监听。\n\t\t@param listener listener \n\t\t*/\n\t\tsetDisposeListener(listener: Function): void;\t\t\n\t\t/**\n\t\t!#en Set the complete event listener.\n\t\t!#zh 用来设置动画播放一次循环结束后的事件监听。\n\t\t@param listener listener \n\t\t*/\n\t\tsetCompleteListener(listener: Function): void;\t\t\n\t\t/**\n\t\t!#en Set the animation event listener.\n\t\t!#zh 用来设置动画播放过程中帧事件的监听。\n\t\t@param listener listener \n\t\t*/\n\t\tsetEventListener(listener: Function): void;\t\t\n\t\t/**\n\t\t!#en Set the start event listener for specified TrackEntry.\n\t\t!#zh 用来为指定的 TrackEntry 设置动画开始播放的事件监听。\n\t\t@param entry entry\n\t\t@param listener listener \n\t\t*/\n\t\tsetTrackStartListener(entry: sp.spine.TrackEntry, listener: Function): void;\t\t\n\t\t/**\n\t\t!#en Set the interrupt event listener for specified TrackEntry.\n\t\t!#zh 用来为指定的 TrackEntry 设置动画被打断的事件监听。\n\t\t@param entry entry\n\t\t@param listener listener \n\t\t*/\n\t\tsetTrackInterruptListener(entry: sp.spine.TrackEntry, listener: Function): void;\t\t\n\t\t/**\n\t\t!#en Set the end event listener for specified TrackEntry.\n\t\t!#zh 用来为指定的 TrackEntry 设置动画播放结束的事件监听。\n\t\t@param entry entry\n\t\t@param listener listener \n\t\t*/\n\t\tsetTrackEndListener(entry: sp.spine.TrackEntry, listener: Function): void;\t\t\n\t\t/**\n\t\t!#en Set the dispose event listener for specified TrackEntry.\n\t\t!#zh 用来为指定的 TrackEntry 设置动画即将被销毁的事件监听。\n\t\t@param entry entry\n\t\t@param listener listener \n\t\t*/\n\t\tsetTrackDisposeListener(entry: sp.spine.TrackEntry, listener: Function): void;\t\t\n\t\t/**\n\t\t!#en Set the complete event listener for specified TrackEntry.\n\t\t!#zh 用来为指定的 TrackEntry 设置动画一次循环播放结束的事件监听。\n\t\t@param entry entry\n\t\t@param listener listener \n\t\t*/\n\t\tsetTrackCompleteListener(entry: sp.spine.TrackEntry, listener: (entry: sp.spine.TrackEntry, loopCount: number) => void): void;\t\t\n\t\t/**\n\t\t!#en Set the event listener for specified TrackEntry.\n\t\t!#zh 用来为指定的 TrackEntry 设置动画帧事件的监听。\n\t\t@param entry entry\n\t\t@param listener listener \n\t\t*/\n\t\tsetTrackEventListener(entry: sp.spine.TrackEntry, listener: Function): void;\t\t\n\t\t/**\n\t\t!#en Get the animation state object\n\t\t!#zh 获取 \n\t\t*/\n\t\tsetTrackEventListener(): sp.spine.AnimationState;\t\n\t}\t\n\t/** !#en The event type of spine skeleton animation.\n\t!#zh 骨骼动画事件类型。 */\n\texport enum AnimationEventType {\t\t\n\t\tSTART = 0,\n\t\tEND = 0,\n\t\tCOMPLETE = 0,\n\t\tEVENT = 0,\t\n\t}\t\n\t/** !#en The skeleton data of spine.\n\t!#zh Spine 的 骨骼数据。 */\n\texport class SkeletonData extends cc.Asset {\t\t\n\t\t/** !#en See http://en.esotericsoftware.com/spine-json-format\n\t\t!#zh 可查看 Spine 官方文档 http://zh.esotericsoftware.com/spine-json-format */\n\t\tskeletonJson: any;\t\t\n\t\tatlasText: string;\t\t\n\t\ttextures: cc.Texture2D[];\t\t\n\t\t/** !#en\n\t\tA scale can be specified on the JSON or binary loader which will scale the bone positions,\n\t\timage sizes, and animation translations.\n\t\tThis can be useful when using different sized images than were used when designing the skeleton\n\t\tin Spine. For example, if using images that are half the size than were used in Spine,\n\t\ta scale of 0.5 can be used. This is commonly used for games that can run with either low or high\n\t\tresolution texture atlases.\n\t\tsee http://en.esotericsoftware.com/spine-using-runtimes#Scaling\n\t\t!#zh 可查看 Spine 官方文档： http://zh.esotericsoftware.com/spine-using-runtimes#Scaling */\n\t\tscale: number;\t\t\n\t\t/**\n\t\t!#en Get the included SkeletonData used in spine runtime.<br>\n\t\tReturns a {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.SkeletonData object.\n\t\t!#zh 获取 Spine Runtime 使用的 SkeletonData。<br>\n\t\t返回一个 {{#crossLinkModule \"sp.spine\"}}sp.spine{{/crossLinkModule}}.SkeletonData 对象。\n\t\t@param quiet quiet \n\t\t*/\n\t\tgetRuntimeData(quiet?: boolean): sp.spine.SkeletonData;\t\n\t}\t\n\t/****************************************************\n\t* Skeleton\n\t*****************************************************/\n\t\n\texport namespace Skeleton {\t\t\n\t\t/** !#en Enum for animation cache mode type.\n\t\t!#zh Spine动画缓存类型 */\n\t\texport enum AnimationCacheMode {\t\t\t\n\t\t\tREALTIME = 0,\n\t\t\tSHARED_CACHE = 0,\n\t\t\tPRIVATE_CACHE = 0,\t\t\n\t\t}\t\n\t}\n\t\n}\n\n/** !#en\n`sp.spine` is the namespace for official Spine Runtime, which officially implemented and maintained by Spine.<br>\nPlease refer to the official documentation for its detailed usage: [http://en.esotericsoftware.com/spine-using-runtimes](http://en.esotericsoftware.com/spine-using-runtimes)\n!#zh\nsp.spine 模块是 Spine 官方运行库的 API 入口，由 Spine 官方统一实现和维护，具体用法请参考：[http://zh.esotericsoftware.com/spine-using-runtimes](http://zh.esotericsoftware.com/spine-using-runtimes) */\ndeclare namespace sp.spine {\n}\n\n/** !#en Some JavaScript decorators which can be accessed with \"cc._decorator\".\n!#zh 一些 JavaScript 装饰器，目前可以通过 \"cc._decorator\" 来访问。\n（这些 API 仍不完全稳定，有可能随着 JavaScript 装饰器的标准实现而调整） */\ndeclare namespace cc._decorator {\t\n\t/**\n\t!#en\n\tDeclare the standard [ES6 Class](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes)\n\tas CCClass, please see [Class](../../../manual/en/scripting/class.html) for details.\n\t!#zh\n\t将标准写法的 [ES6 Class](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes) 声明为 CCClass，具体用法请参阅[类型定义](../../../manual/zh/scripting/class.html)。\n\t@param name The class name used for serialization.\n\t\n\t@example \n\t```js\n\tconst {ccclass} = cc._decorator;\n\t\n\t// define a CCClass, omit the name\n\t&#64;ccclass\n\tclass NewScript extends cc.Component {\n\t    // ...\n\t}\n\t\n\t// define a CCClass with a name\n\t&#64;ccclass('LoginData')\n\tclass LoginData {\n\t    // ...\n\t}\n\t``` \n\t*/\n\texport function ccclass(name?: string): Function;\n\texport function ccclass(_class?: Function): void;\t\n\t/**\n\t!#en\n\tDeclare property for [CCClass](../../../manual/en/scripting/reference/attributes.html).\n\t!#zh\n\t定义 [CCClass](../../../manual/zh/scripting/reference/attributes.html) 所用的属性。\n\t@param options an object with some property attributes\n\t\n\t@example \n\t```js\n\tconst {ccclass, property} = cc._decorator;\n\t\n\t&#64;ccclass\n\tclass NewScript extends cc.Component {\n\t    &#64;property({\n\t        type: cc.Node\n\t    })\n\t    targetNode1 = null;\n\t\n\t    &#64;property(cc.Node)\n\t    targetNode2 = null;\n\t\n\t    &#64;property(cc.Button)\n\t    targetButton = null;\n\t\n\t    &#64;property\n\t    _width = 100;\n\t\n\t    &#64;property\n\t    get width () {\n\t        return this._width;\n\t    }\n\t\n\t    &#64;property\n\t    set width (value) {\n\t        this._width = value;\n\t    }\n\t\n\t    &#64;property\n\t    offset = new cc.Vec2(100, 100);\n\t\n\t    &#64;property(cc.Vec2)\n\t    offsets = [];\n\t\n\t    &#64;property(cc.SpriteFrame)\n\t    frame = null;\n\t}\n\t\n\t// above is equivalent to (上面的代码相当于):\n\t\n\tvar NewScript = cc.Class({\n\t    properties: {\n\t        targetNode1: {\n\t            default: null,\n\t            type: cc.Node\n\t        },\n\t\n\t        targetNode2: {\n\t            default: null,\n\t            type: cc.Node\n\t        },\n\t\n\t        targetButton: {\n\t            default: null,\n\t            type: cc.Button\n\t        },\n\t\n\t        _width: 100,\n\t\n\t        width: {\n\t            get () {\n\t                return this._width;\n\t            },\n\t            set (value) {\n\t                this._width = value;\n\t            }\n\t        },\n\t\n\t        offset: new cc.Vec2(100, 100)\n\t\n\t        offsets: {\n\t            default: [],\n\t            type: cc.Vec2\n\t        }\n\t\n\t        frame: {\n\t            default: null,\n\t            type: cc.SpriteFrame\n\t        },\n\t    }\n\t});\n\t``` \n\t*/\n\texport function property(options?: {type?: any; visible?: boolean|(() => boolean); displayName?: string; tooltip?: string; multiline?: boolean; readonly?: boolean; min?: number; max?: number; step?: number; range?: number[]; slide?: boolean; serializable?: boolean; formerlySerializedAs?: string; editorOnly?: boolean; override?: boolean; animatable?: boolean} | any[]|Function|cc.ValueType|number|string|boolean): Function;\n\texport function property(_target: Object, _key: any, _desc?: any): void;\t\n\t/**\n\t!#en\n\tMakes a CCClass that inherit from component execute in edit mode.<br>\n\tBy default, all components are only executed in play mode,\n\twhich means they will not have their callback functions executed while the Editor is in edit mode.\n\t!#zh\n\t允许继承自 Component 的 CCClass 在编辑器里执行。<br>\n\t默认情况下，所有 Component 都只会在运行时才会执行，也就是说它们的生命周期回调不会在编辑器里触发。\n\t\n\t@example \n\t```js\n\tconst {ccclass, executeInEditMode} = cc._decorator;\n\t\n\t&#64;ccclass\n\t&#64;executeInEditMode\n\tclass NewScript extends cc.Component {\n\t    // ...\n\t}\n\t``` \n\t*/\n\texport function executeInEditMode(): Function;\n\texport function executeInEditMode(_class: Function): void;\t\n\t/**\n\t!#en\n\tAutomatically add required component as a dependency for the CCClass that inherit from component.\n\t!#zh\n\t为声明为 CCClass 的组件添加依赖的其它组件。当组件添加到节点上时，如果依赖的组件不存在，引擎将会自动将依赖组件添加到同一个节点，防止脚本出错。该设置在运行时同样有效。\n\t@param requiredComponent requiredComponent\n\t\n\t@example \n\t```js\n\tconst {ccclass, requireComponent} = cc._decorator;\n\t\n\t&#64;ccclass\n\t&#64;requireComponent(cc.Sprite)\n\tclass SpriteCtrl extends cc.Component {\n\t    // ...\n\t}\n\t``` \n\t*/\n\texport function requireComponent(requiredComponent: typeof cc.Component): Function;\t\n\t/**\n\t!#en\n\tThe menu path to register a component to the editors \"Component\" menu. Eg. \"Rendering/CameraCtrl\".\n\t!#zh\n\t将当前组件添加到组件菜单中，方便用户查找。例如 \"Rendering/CameraCtrl\"。\n\t@param path The path is the menu represented like a pathname.\n\t                       For example the menu could be \"Rendering/CameraCtrl\".\n\t\n\t@example \n\t```js\n\tconst {ccclass, menu} = cc._decorator;\n\t\n\t&#64;ccclass\n\t&#64;menu(\"Rendering/CameraCtrl\")\n\tclass NewScript extends cc.Component {\n\t    // ...\n\t}\n\t``` \n\t*/\n\texport function menu(path: string): Function;\t\n\t/**\n\t!#en\n\tThe execution order of lifecycle methods for Component.\n\tThose less than 0 will execute before while those greater than 0 will execute after.\n\tThe order will only affect onLoad, onEnable, start, update and lateUpdate while onDisable and onDestroy will not be affected.\n\t!#zh\n\t设置脚本生命周期方法调用的优先级。优先级小于 0 的组件将会优先执行，优先级大于 0 的组件将会延后执行。优先级仅会影响 onLoad, onEnable, start, update 和 lateUpdate，而 onDisable 和 onDestroy 不受影响。\n\t@param order The execution order of lifecycle methods for Component. Those less than 0 will execute before while those greater than 0 will execute after.\n\t\n\t@example \n\t```js\n\tconst {ccclass, executionOrder} = cc._decorator;\n\t\n\t&#64;ccclass\n\t&#64;executionOrder(1)\n\tclass CameraCtrl extends cc.Component {\n\t    // ...\n\t}\n\t``` \n\t*/\n\texport function executionOrder(order: number): Function;\t\n\t/**\n\t!#en\n\tPrevents Component of the same type (or subtype) to be added more than once to a Node.\n\t!#zh\n\t防止多个相同类型（或子类型）的组件被添加到同一个节点。\n\t\n\t@example \n\t```js\n\tconst {ccclass, disallowMultiple} = cc._decorator;\n\t\n\t&#64;ccclass\n\t&#64;disallowMultiple\n\tclass CameraCtrl extends cc.Component {\n\t    // ...\n\t}\n\t``` \n\t*/\n\texport function disallowMultiple(): Function;\n\texport function disallowMultiple(_class: Function): void;\t\n\t/**\n\t!#en\n\tIf specified, the editor's scene view will keep updating this node in 60 fps when it is selected, otherwise, it will update only if necessary.<br>\n\tThis property is only available if executeInEditMode is true.\n\t!#zh\n\t当指定了 \"executeInEditMode\" 以后，playOnFocus 可以在选中当前组件所在的节点时，提高编辑器的场景刷新频率到 60 FPS，否则场景就只会在必要的时候进行重绘。\n\t\n\t@example \n\t```js\n\tconst {ccclass, playOnFocus, executeInEditMode} = cc._decorator;\n\t\n\t&#64;ccclass\n\t&#64;executeInEditMode\n\t&#64;playOnFocus\n\tclass CameraCtrl extends cc.Component {\n\t    // ...\n\t}\n\t``` \n\t*/\n\texport function playOnFocus(): Function;\n\texport function playOnFocus(_class: Function): void;\t\n\t/**\n\t!#en\n\tSpecifying the url of the custom html to draw the component in **Properties**.\n\t!#zh\n\t自定义当前组件在 **属性检查器** 中渲染时所用的网页 url。\n\t@param url url\n\t\n\t@example \n\t```js\n\tconst {ccclass, inspector} = cc._decorator;\n\t\n\t&#64;ccclass\n\t&#64;inspector(\"packages://inspector/inspectors/comps/camera-ctrl.js\")\n\tclass NewScript extends cc.Component {\n\t    // ...\n\t}\n\t``` \n\t*/\n\texport function inspector(path: string): Function;\t\n\t/**\n\t!#en\n\tThe custom documentation URL.\n\t!#zh\n\t指定当前组件的帮助文档的 url，设置过后，在 **属性检查器** 中就会出现一个帮助图标，用户点击将打开指定的网页。\n\t@param url url\n\t\n\t@example \n\t```js\n\tconst {ccclass, help} = cc._decorator;\n\t\n\t&#64;ccclass\n\t&#64;help(\"app://docs/html/components/spine.html\")\n\tclass NewScript extends cc.Component {\n\t    // ...\n\t}\n\t``` \n\t*/\n\texport function help(path: string): Function;\t\n\t/**\n\tNOTE:<br>\n\tThe old mixins implemented in cc.Class(ES5) behaves exact the same as multiple inheritance.\n\tBut since ES6, class constructor can't be function-called and class methods become non-enumerable,\n\tso we can not mix in ES6 Classes.<br>\n\tSee:<br>\n\t[https://esdiscuss.org/topic/traits-are-now-impossible-in-es6-until-es7-since-rev32](https://esdiscuss.org/topic/traits-are-now-impossible-in-es6-until-es7-since-rev32)<br>\n\tOne possible solution (but IDE unfriendly):<br>\n\t[http://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes](http://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/)<br>\n\t<br>\n\tNOTE:<br>\n\tYou must manually call mixins constructor, this is different from cc.Class(ES5).\n\t@param ctor constructors to mix, only support ES5 constructors or classes defined by using `cc.Class`,\n\t                            not support ES6 Classes.\n\t\n\t@example \n\t```js\n\tconst {ccclass, mixins} = cc._decorator;\n\t\n\tclass Animal { ... }\n\t\n\tconst Fly = cc.Class({\n\t    constructor () { ... }\n\t});\n\t\n\t&#64;ccclass\n\t&#64;mixins(cc.EventTarget, Fly)\n\tclass Bird extends Animal {\n\t    constructor () {\n\t        super();\n\t\n\t        // You must manually call mixins constructor, this is different from cc.Class(ES5)\n\t        cc.EventTarget.call(this);\n\t        Fly.call(this);\n\t    }\n\t    // ...\n\t}\n\t``` \n\t*/\n\texport function mixins(ctor: Function, ...rest: Function[]): Function;\n}\n\n/** This module provides some JavaScript utilities.\nAll members can be accessed with \"cc.js\". */\ndeclare namespace cc.js {\t\n\t/**\n\tCheck the obj whether is number or not\n\tIf a number is created by using 'new Number(10086)', the typeof it will be \"object\"...\n\tThen you can use this function if you care about this case.\n\t@param obj obj \n\t*/\n\texport function isNumber(obj: any): boolean;\t\n\t/**\n\tCheck the obj whether is string or not.\n\tIf a string is created by using 'new String(\"blabla\")', the typeof it will be \"object\"...\n\tThen you can use this function if you care about this case.\n\t@param obj obj \n\t*/\n\texport function isString(obj: any): boolean;\t\n\t/**\n\tCopy all properties not defined in obj from arguments[1...n]\n\t@param obj object to extend its properties\n\t@param sourceObj source object to copy properties from \n\t*/\n\texport function addon(obj: any, ...sourceObj: any[]): any;\t\n\t/**\n\tcopy all properties from arguments[1...n] to obj\n\t@param obj obj\n\t@param sourceObj sourceObj \n\t*/\n\texport function mixin(obj: any, ...sourceObj: any[]): any;\t\n\t/**\n\tDerive the class from the supplied base class.\n\tBoth classes are just native javascript constructors, not created by cc.Class, so\n\tusually you will want to inherit using {{#crossLink \"cc/Class:method\"}}cc.Class {{/crossLink}} instead.\n\t@param cls cls\n\t@param base the baseclass to inherit \n\t*/\n\texport function extend(cls: Function, base: Function): Function;\t\n\t/**\n\tGet super class\n\t@param ctor the constructor of subclass \n\t*/\n\texport function getSuper(ctor: Function): Function;\t\n\t/**\n\tChecks whether subclass is child of superclass or equals to superclass\n\t@param subclass subclass\n\t@param superclass superclass \n\t*/\n\texport function isChildClassOf(subclass: Function, superclass: Function): boolean;\t\n\t/**\n\tRemoves all enumerable properties from object\n\t@param obj obj \n\t*/\n\texport function clear(obj: any): void;\t\n\t/**\n\tChecks whether obj is an empty object\n\t@param obj obj \n\t*/\n\texport function isEmptyObject(obj: any): void;\t\n\t/**\n\tGet property descriptor in object and all its ancestors\n\t@param obj obj\n\t@param name name \n\t*/\n\texport function getPropertyDescriptor(obj: any, name: string): any;\t\n\t/**\n\tDefine value, just help to call Object.defineProperty.<br>\n\tThe configurable will be true.\n\t@param obj obj\n\t@param prop prop\n\t@param value value\n\t@param writable writable\n\t@param enumerable enumerable \n\t*/\n\texport function value(obj: any, prop: string, value: any, writable?: boolean, enumerable?: boolean): void;\t\n\t/**\n\tDefine get set accessor, just help to call Object.defineProperty(...)\n\t@param obj obj\n\t@param prop prop\n\t@param getter getter\n\t@param setter setter\n\t@param enumerable enumerable\n\t@param configurable configurable \n\t*/\n\texport function getset(obj: any, prop: string, getter: Function, setter?: Function, enumerable?: boolean, configurable?: boolean): void;\t\n\t/**\n\tDefine get accessor, just help to call Object.defineProperty(...)\n\t@param obj obj\n\t@param prop prop\n\t@param getter getter\n\t@param enumerable enumerable\n\t@param configurable configurable \n\t*/\n\texport function get(obj: any, prop: string, getter: Function, enumerable?: boolean, configurable?: boolean): void;\t\n\t/**\n\tDefine set accessor, just help to call Object.defineProperty(...)\n\t@param obj obj\n\t@param prop prop\n\t@param setter setter\n\t@param enumerable enumerable\n\t@param configurable configurable \n\t*/\n\texport function set(obj: any, prop: string, setter: Function, enumerable?: boolean, configurable?: boolean): void;\t\n\t/**\n\tGet class name of the object, if object is just a {} (and which class named 'Object'), it will return \"\".\n\t(modified from <a href=\"http://stackoverflow.com/questions/1249531/how-to-get-a-javascript-objects-class\">the code from this stackoverflow post</a>)\n\t@param objOrCtor instance or constructor \n\t*/\n\texport function getClassName(objOrCtor: any|Function): string;\t\n\t/** !#en All classes registered in the engine, indexed by ID.\n\t!#zh 引擎中已注册的所有类型，通过 ID 进行索引。 */\n\texport var _registeredClassIds: any;\t\n\t/** !#en All classes registered in the engine, indexed by name.\n\t!#zh 引擎中已注册的所有类型，通过名称进行索引。 */\n\texport var _registeredClassNames: any;\t\n\t/**\n\tRegister the class by specified name manually\n\t@param className className\n\t@param constructor constructor \n\t*/\n\texport function setClassName(className: string, constructor: Function): void;\t\n\t/**\n\tUnregister a class from fireball.\n\t\n\tIf you dont need a registered class anymore, you should unregister the class so that Fireball will not keep its reference anymore.\n\tPlease note that its still your responsibility to free other references to the class.\n\t@param constructor the class you will want to unregister, any number of classes can be added \n\t*/\n\texport function unregisterClass(...constructor: Function[]): void;\t\n\t/**\n\tGet the registered class by name\n\t@param classname classname \n\t*/\n\texport function getClassByName(classname: string): Function;\t\n\t/**\n\tDefines a polyfill field for obsoleted codes.\n\t@param obj YourObject or YourClass.prototype\n\t@param obsoleted \"OldParam\" or \"YourClass.OldParam\"\n\t@param newExpr \"NewParam\" or \"YourClass.NewParam\"\n\t@param writable writable \n\t*/\n\texport function obsolete(obj: any, obsoleted: string, newExpr: string, writable?: boolean): void;\t\n\t/**\n\tDefines all polyfill fields for obsoleted codes corresponding to the enumerable properties of props.\n\t@param obj YourObject or YourClass.prototype\n\t@param objName \"YourObject\" or \"YourClass\"\n\t@param props props\n\t@param writable writable \n\t*/\n\texport function obsoletes(obj: any, objName: any, props: any, writable?: boolean): void;\t\n\t/**\n\tA string tool to construct a string with format string.\n\t@param msg A JavaScript string containing zero or more substitution strings (%s).\n\t@param subst JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output.\n\t\n\t@example \n\t```js\n\tcc.js.formatStr(\"a: %s, b: %s\", a, b);\n\tcc.js.formatStr(a, b, c);\n\t``` \n\t*/\n\texport function formatStr(msg: string|any, ...subst: any[]): string;\t\n\t/**\n\t!#en\n\tA simple wrapper of `Object.create(null)` which ensures the return object have no prototype (and thus no inherited members). So we can skip `hasOwnProperty` calls on property lookups. It is a worthwhile optimization than the `{}` literal when `hasOwnProperty` calls are necessary.\n\t!#zh\n\t该方法是对 `Object.create(null)` 的简单封装。`Object.create(null)` 用于创建无 prototype （也就无继承）的空对象。这样我们在该对象上查找属性时，就不用进行 `hasOwnProperty` 判断。在需要频繁判断 `hasOwnProperty` 时，使用这个方法性能会比 `{}` 更高。\n\t@param forceDictMode Apply the delete operator to newly created map object. This causes V8 to put the object in \"dictionary mode\" and disables creation of hidden classes which are very expensive for objects that are constantly changing shape. \n\t*/\n\texport function createMap(forceDictMode?: boolean): any;\t\n\t/** undefined */\n\texport class array {\t\t\n\t\t/**\n\t\tRemoves the array item at the specified index.\n\t\t@param array array\n\t\t@param index index \n\t\t*/\n\t\tstatic removeAt(array: any[], index: number): void;\t\t\n\t\t/**\n\t\tRemoves the array item at the specified index.\n\t\tIt's faster but the order of the array will be changed.\n\t\t@param array array\n\t\t@param index index \n\t\t*/\n\t\tstatic fastRemoveAt(array: any[], index: number): void;\t\t\n\t\t/**\n\t\tRemoves the first occurrence of a specific object from the array.\n\t\t@param array array\n\t\t@param value value \n\t\t*/\n\t\tstatic remove(array: any[], value: any): boolean;\t\t\n\t\t/**\n\t\tRemoves the first occurrence of a specific object from the array.\n\t\tIt's faster but the order of the array will be changed.\n\t\t@param array array\n\t\t@param value value \n\t\t*/\n\t\tstatic fastRemove(array: any[], value: number): void;\t\t\n\t\t/**\n\t\tVerify array's Type\n\t\t@param array array\n\t\t@param type type \n\t\t*/\n\t\tstatic verifyType(array: any[], type: Function): boolean;\t\t\n\t\t/**\n\t\tRemoves from array all values in minusArr. For each Value in minusArr, the first matching instance in array will be removed.\n\t\t@param array Source Array\n\t\t@param minusArr minus Array \n\t\t*/\n\t\tstatic removeArray(array: any[], minusArr: any[]): void;\t\t\n\t\t/**\n\t\tInserts some objects at index\n\t\t@param array array\n\t\t@param addObjs addObjs\n\t\t@param index index \n\t\t*/\n\t\tstatic appendObjectsAt(array: any[], addObjs: any[], index: number): any[];\t\t\n\t\t/**\n\t\tExact same function as Array.prototype.indexOf.<br>\n\t\tHACK: ugliy hack for Baidu mobile browser compatibility, stupid Baidu guys modify Array.prototype.indexOf for all pages loaded, their version changes strict comparison to non-strict comparison, it also ignores the second parameter of the original API, and this will cause event handler enter infinite loop.<br>\n\t\tBaidu developers, if you ever see this documentation, here is the standard: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf, Seriously!\n\t\t@param searchElement Element to locate in the array.\n\t\t@param fromIndex The index to start the search at \n\t\t*/\n\t\tstatic indexOf(searchElement: any, fromIndex?: number): number;\t\t\n\t\t/**\n\t\tDetermines whether the array contains a specific value.\n\t\t@param array array\n\t\t@param value value \n\t\t*/\n\t\tstatic contains(array: any[], value: any): boolean;\t\t\n\t\t/**\n\t\tCopy an array's item to a new array (its performance is better than Array.slice)\n\t\t@param array array \n\t\t*/\n\t\tstatic copy(array: any[]): any[];\t\n\t}\t\n\t/** !#en\n\tA fixed-length object pool designed for general type.<br>\n\tThe implementation of this object pool is very simple,\n\tit can helps you to improve your game performance for objects which need frequent release and recreate operations<br/>\n\t!#zh\n\t长度固定的对象缓存池，可以用来缓存各种对象类型。<br/>\n\t这个对象池的实现非常精简，它可以帮助您提高游戏性能，适用于优化对象的反复创建和销毁。 */\n\texport class Pool {\t\t\n\t\t/**\n\t\t!#en\n\t\tConstructor for creating an object pool for the specific object type.\n\t\tYou can pass a callback argument for process the cleanup logic when the object is recycled.\n\t\t!#zh\n\t\t使用构造函数来创建一个指定对象类型的对象池，您可以传递一个回调函数，用于处理对象回收时的清理逻辑。\n\t\t@param cleanupFunc the callback method used to process the cleanup logic when the object is recycled.\n\t\t@param size initializes the length of the array \n\t\t*/\n\t\tconstructor(cleanupFunc: (obj: any) => void, size: number);\n\t\tconstructor(size: number);\t\t\n\t\t/**\n\t\t!#en\n\t\tGet and initialize an object from pool. This method defaults to null and requires the user to implement it.\n\t\t!#zh\n\t\t获取并初始化对象池中的对象。这个方法默认为空，需要用户自己实现。\n\t\t@param params parameters to used to initialize the object \n\t\t*/\n\t\tget(...params: any[]): any;\t\t\n\t\t/** !#en\n\t\tThe current number of available objects, the default is 0, it will gradually increase with the recycle of the object,\n\t\tthe maximum will not exceed the size specified when the constructor is called.\n\t\t!#zh\n\t\t当前可用对象数量，一开始默认是 0，随着对象的回收会逐渐增大，最大不会超过调用构造函数时指定的 size。 */\n\t\tcount: number;\t\t\n\t\t/**\n\t\t!#en\n\t\tGet an object from pool, if no available object in the pool, null will be returned.\n\t\t!#zh\n\t\t获取对象池中的对象，如果对象池没有可用对象，则返回空。 \n\t\t*/\n\t\t_get(): any;\t\t\n\t\t/**\n\t\t!#en Put an object into the pool.\n\t\t!#zh 向对象池返还一个不再需要的对象。 \n\t\t*/\n\t\tput(): void;\t\t\n\t\t/**\n\t\t!#en Resize the pool.\n\t\t!#zh 设置对象池容量。 \n\t\t*/\n\t\tresize(): void;\t\n\t}\n}\n\n/** 一个创建 3D 物体顶点数据的基础模块，你可以通过 \"cc.primitive\" 来访问这个模块。 */\ndeclare namespace primitive {\t\n\t/**\n\t!#en Create box vertex data\n\t!#zh 创建长方体顶点数据\n\t@param width width\n\t@param height height\n\t@param length length\n\t@param opts opts \n\t*/\n\texport function box(width: number, height: number, length: number, opts: {widthSegments: number; heightSegments: number; lengthSegments: number; }): primitive.VertextData;\t\n\t/**\n\t!#en Create cone vertex data\n\t!#zh 创建圆锥体顶点数据\n\t@param radius radius\n\t@param height height\n\t@param opts opts \n\t*/\n\texport function cone(radius: number, height: number, opts: {radialSegments: number; heightSegments: number; capped: boolean; arc: number; }): primitive.VertextData;\t\n\t/**\n\t!#en Create cylinder vertex data\n\t!#zh 创建圆柱体顶点数据\n\t@param radiusTop radiusTop\n\t@param radiusBottom radiusBottom\n\t@param height height\n\t@param opts opts \n\t*/\n\texport function cylinder(radiusTop: number, radiusBottom: number, height: number, opts: {radialSegments: number; heightSegments: number; capped: boolean; arc: number; }): primitive.VertextData;\t\n\t/**\n\t!#en Create plane vertex data\n\t!#zh 创建平台顶点数据\n\t@param width width\n\t@param length length\n\t@param opts opts \n\t*/\n\texport function plane(width: number, length: number, opts: {widthSegments: number; lengthSegments: number; }): primitive.VertextData;\t\n\t/**\n\t!#en Create quad vertex data\n\t!#zh 创建面片顶点数据 \n\t*/\n\texport function quad(): primitive.VertextData;\t\n\t/**\n\t!#en Create sphere vertex data\n\t!#zh 创建球体顶点数据\n\t@param radius radius\n\t@param opts opts \n\t*/\n\texport function sphere(radius: number, opts: {segments: number; }): primitive.VertextData;\t\n\t/**\n\t!#en Create torus vertex data\n\t!#zh 创建圆环顶点数据\n\t@param radius radius\n\t@param tube tube\n\t@param opts opts \n\t*/\n\texport function torus(radius: number, tube: number, opts: {radialSegments: number; tubularSegments: number; arc: number; }): primitive.VertextData;\t\n\t/**\n\t!#en Create capsule vertex data\n\t!#zh 创建胶囊体顶点数据\n\t@param radiusTop radiusTop\n\t@param radiusBottom radiusBottom\n\t@param height height\n\t@param opts opts \n\t*/\n\texport function capsule(radiusTop: number, radiusBottom: number, height: number, opts: {sides: number; heightSegments: number; capped: boolean; arc: number; }): primitive.VertextData;\t\n\t/**\n\t!#en Create polyhedron vertex data\n\t!#zh 创建多面体顶点数据\n\t@param type type\n\t@param Size Size\n\t@param opts opts \n\t*/\n\texport function polyhedron(type: cc.primitive.PolyhedronType, Size: number, opts: {sizeX: number; sizeY: number; sizeZ: number; }): primitive.VertextData;\n}\ndeclare namespace dragonBones {\n    /**\n     * @internal\n     * @private\n     */\n    const webAssemblyModule: {\n        HEAP16: Int16Array;\n        _malloc(byteSize: number): number;\n        _free(pointer: number): void;\n        setDataBinary(data: DragonBonesData, binaryPointer: number, intBytesLength: number, floatBytesLength: number, frameIntBytesLength: number, frameFloatBytesLength: number, frameBytesLength: number, timelineBytesLength: number): void;\n    };\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * @internal\n     * @private\n     */\n    const enum BinaryOffset {\n        WeigthBoneCount = 0,\n        WeigthFloatOffset = 1,\n        WeigthBoneIndices = 2,\n        MeshVertexCount = 0,\n        MeshTriangleCount = 1,\n        MeshFloatOffset = 2,\n        MeshWeightOffset = 3,\n        MeshVertexIndices = 4,\n        TimelineScale = 0,\n        TimelineOffset = 1,\n        TimelineKeyFrameCount = 2,\n        TimelineFrameValueCount = 3,\n        TimelineFrameValueOffset = 4,\n        TimelineFrameOffset = 5,\n        FramePosition = 0,\n        FrameTweenType = 1,\n        FrameTweenEasingOrCurveSampleCount = 2,\n        FrameCurveSamples = 3,\n        DeformMeshOffset = 0,\n        DeformCount = 1,\n        DeformValueCount = 2,\n        DeformValueOffset = 3,\n        DeformFloatOffset = 4,\n    }\n    /**\n     * @internal\n     * @private\n     */\n    const enum ArmatureType {\n        Armature = 0,\n        MovieClip = 1,\n        Stage = 2,\n    }\n    /**\n     * @internal\n     * @private\n     */\n    const enum BoneType {\n        Bone = 0,\n        Surface = 1,\n    }\n    /**\n     * @private\n     */\n    const enum DisplayType {\n        Image = 0,\n        Armature = 1,\n        Mesh = 2,\n        BoundingBox = 3,\n    }\n    /**\n     * - Bounding box type.\n     * @version DragonBones 5.0\n     * @language en_US\n     */\n    /**\n     * - 边界框类型。\n     * @version DragonBones 5.0\n     * @language zh_CN\n     */\n    const enum BoundingBoxType {\n        Rectangle = 0,\n        Ellipse = 1,\n        Polygon = 2,\n    }\n    /**\n     * @internal\n     * @private\n     */\n    const enum ActionType {\n        Play = 0,\n        Frame = 10,\n        Sound = 11,\n    }\n    /**\n     * @internal\n     * @private\n     */\n    const enum BlendMode {\n        Normal = 0,\n        Add = 1,\n        Alpha = 2,\n        Darken = 3,\n        Difference = 4,\n        Erase = 5,\n        HardLight = 6,\n        Invert = 7,\n        Layer = 8,\n        Lighten = 9,\n        Multiply = 10,\n        Overlay = 11,\n        Screen = 12,\n        Subtract = 13,\n    }\n    /**\n     * @internal\n     * @private\n     */\n    const enum TweenType {\n        None = 0,\n        Line = 1,\n        Curve = 2,\n        QuadIn = 3,\n        QuadOut = 4,\n        QuadInOut = 5,\n    }\n    /**\n     * @internal\n     * @private\n     */\n    const enum TimelineType {\n        Action = 0,\n        ZOrder = 1,\n        BoneAll = 10,\n        BoneTranslate = 11,\n        BoneRotate = 12,\n        BoneScale = 13,\n        Surface = 50,\n        SlotDisplay = 20,\n        SlotColor = 21,\n        SlotFFD = 22,\n        IKConstraint = 30,\n        AnimationTime = 40,\n        AnimationWeight = 41,\n    }\n    /**\n     * - Offset mode.\n     * @version DragonBones 5.5\n     * @language en_US\n     */\n    /**\n     * - 偏移模式。\n     * @version DragonBones 5.5\n     * @language zh_CN\n     */\n    const enum OffsetMode {\n        None = 0,\n        Additive = 1,\n        Override = 2,\n    }\n    /**\n     * - Animation fade out mode.\n     * @version DragonBones 4.5\n     * @language en_US\n     */\n    /**\n     * - 动画淡出模式。\n     * @version DragonBones 4.5\n     * @language zh_CN\n     */\n    const enum AnimationFadeOutMode {\n        /**\n         * - Do not fade out of any animation states.\n         * @language en_US\n         */\n        /**\n         * - 不淡出任何的动画状态。\n         * @language zh_CN\n         */\n        None = 0,\n        /**\n         * - Fade out the animation states of the same layer.\n         * @language en_US\n         */\n        /**\n         * - 淡出同层的动画状态。\n         * @language zh_CN\n         */\n        SameLayer = 1,\n        /**\n         * - Fade out the animation states of the same group.\n         * @language en_US\n         */\n        /**\n         * - 淡出同组的动画状态。\n         * @language zh_CN\n         */\n        SameGroup = 2,\n        /**\n         * - Fade out the animation states of the same layer and group.\n         * @language en_US\n         */\n        /**\n         * - 淡出同层并且同组的动画状态。\n         * @language zh_CN\n         */\n        SameLayerAndGroup = 3,\n        /**\n         * - Fade out of all animation states.\n         * @language en_US\n         */\n        /**\n         * - 淡出所有的动画状态。\n         * @language zh_CN\n         */\n        All = 4,\n        /**\n         * - Does not replace the animation state with the same name.\n         * @language en_US\n         */\n        /**\n         * - 不替换同名的动画状态。\n         * @language zh_CN\n         */\n        Single = 5,\n    }\n    /**\n     * @private\n     */\n    interface Map<T> {\n        [key: string]: T;\n    }\n    /**\n     * @private\n     */\n    class DragonBones {\n        static readonly VERSION: string;\n        static yDown: boolean;\n        static debug: boolean;\n        static debugDraw: boolean;\n        static webAssembly: boolean;\n        private readonly _clock;\n        private readonly _events;\n        private readonly _objects;\n        private _eventManager;\n        constructor(eventManager: IEventDispatcher);\n        advanceTime(passedTime: number): void;\n        bufferEvent(value: EventObject): void;\n        bufferObject(object: BaseObject): void;\n        readonly clock: WorldClock;\n        readonly eventManager: IEventDispatcher;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The BaseObject is the base class for all objects in the DragonBones framework.\n     * All BaseObject instances are cached to the object pool to reduce the performance consumption of frequent requests for memory or memory recovery.\n     * @version DragonBones 4.5\n     * @language en_US\n     */\n    /**\n     * - 基础对象，通常 DragonBones 的对象都继承自该类。\n     * 所有基础对象的实例都会缓存到对象池，以减少频繁申请内存或内存回收的性能消耗。\n     * @version DragonBones 4.5\n     * @language zh_CN\n     */\n    abstract class BaseObject {\n        private static _hashCode;\n        private static _defaultMaxCount;\n        private static readonly _maxCountMap;\n        private static readonly _poolsMap;\n        private static _returnObject(object);\n        static toString(): string;\n        /**\n         * - Set the maximum cache count of the specify object pool.\n         * @param objectConstructor - The specify class. (Set all object pools max cache count if not set)\n         * @param maxCount - Max count.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 设置特定对象池的最大缓存数量。\n         * @param objectConstructor - 特定的类。 (不设置则设置所有对象池的最大缓存数量)\n         * @param maxCount - 最大缓存数量。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        static setMaxCount(objectConstructor: (typeof BaseObject) | null, maxCount: number): void;\n        /**\n         * - Clear the cached instances of a specify object pool.\n         * @param objectConstructor - Specify class. (Clear all cached instances if not set)\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 清除特定对象池的缓存实例。\n         * @param objectConstructor - 特定的类。 (不设置则清除所有缓存的实例)\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        static clearPool(objectConstructor?: (typeof BaseObject) | null): void;\n        /**\n         * - Get an instance of the specify class from object pool.\n         * @param objectConstructor - The specify class.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 从对象池中获取特定类的实例。\n         * @param objectConstructor - 特定的类。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        static borrowObject<T extends BaseObject>(objectConstructor: {\n            new (): T;\n        }): T;\n        /**\n         * - A unique identification number assigned to the object.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 分配给此实例的唯一标识号。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        readonly hashCode: number;\n        private _isInPool;\n        /**\n         * @private\n         */\n        protected abstract _onClear(): void;\n        /**\n         * - Clear the object and return it back to object pool。\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 清除该实例的所有数据并将其返还对象池。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        returnToPool(): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - 2D Transform matrix.\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 2D 转换矩阵。\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class Matrix {\n        /**\n         * - The value that affects the positioning of pixels along the x axis when scaling or rotating an image.\n         * @default 1.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 缩放或旋转图像时影响像素沿 x 轴定位的值。\n         * @default 1.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        a: number;\n        /**\n         * - The value that affects the positioning of pixels along the y axis when rotating or skewing an image.\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 旋转或倾斜图像时影响像素沿 y 轴定位的值。\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        b: number;\n        /**\n         * - The value that affects the positioning of pixels along the x axis when rotating or skewing an image.\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 旋转或倾斜图像时影响像素沿 x 轴定位的值。\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        c: number;\n        /**\n         * - The value that affects the positioning of pixels along the y axis when scaling or rotating an image.\n         * @default 1.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 缩放或旋转图像时影响像素沿 y 轴定位的值。\n         * @default 1.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        d: number;\n        /**\n         * - The distance by which to translate each point along the x axis.\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 沿 x 轴平移每个点的距离。\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        tx: number;\n        /**\n         * - The distance by which to translate each point along the y axis.\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 沿 y 轴平移每个点的距离。\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        ty: number;\n        /**\n         * @private\n         */\n        constructor(a?: number, b?: number, c?: number, d?: number, tx?: number, ty?: number);\n        toString(): string;\n        /**\n         * @private\n         */\n        copyFrom(value: Matrix): Matrix;\n        /**\n         * @private\n         */\n        copyFromArray(value: Array<number>, offset?: number): Matrix;\n        /**\n         * - Convert to unit matrix.\n         * The resulting matrix has the following properties: a=1, b=0, c=0, d=1, tx=0, ty=0.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 转换为单位矩阵。\n         * 该矩阵具有以下属性：a=1、b=0、c=0、d=1、tx=0、ty=0。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        identity(): Matrix;\n        /**\n         * - Multiplies the current matrix with another matrix.\n         * @param value - The matrix that needs to be multiplied.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 将当前矩阵与另一个矩阵相乘。\n         * @param value - 需要相乘的矩阵。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        concat(value: Matrix): Matrix;\n        /**\n         * - Convert to inverse matrix.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 转换为逆矩阵。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        invert(): Matrix;\n        /**\n         * - Apply a matrix transformation to a specific point.\n         * @param x - X coordinate.\n         * @param y - Y coordinate.\n         * @param result - The point after the transformation is applied.\n         * @param delta - Whether to ignore tx, ty's conversion to point.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 将矩阵转换应用于特定点。\n         * @param x - 横坐标。\n         * @param y - 纵坐标。\n         * @param result - 应用转换之后的点。\n         * @param delta - 是否忽略 tx，ty 对点的转换。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        transformPoint(x: number, y: number, result: {\n            x: number;\n            y: number;\n        }, delta?: boolean): void;\n        /**\n         * @private\n         */\n        transformRectangle(rectangle: {\n            x: number;\n            y: number;\n            width: number;\n            height: number;\n        }, delta?: boolean): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - 2D Transform.\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 2D 变换。\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class Transform {\n        /**\n         * @private\n         */\n        static readonly PI: number;\n        /**\n         * @private\n         */\n        static readonly PI_D: number;\n        /**\n         * @private\n         */\n        static readonly PI_H: number;\n        /**\n         * @private\n         */\n        static readonly PI_Q: number;\n        /**\n         * @private\n         */\n        static readonly RAD_DEG: number;\n        /**\n         * @private\n         */\n        static readonly DEG_RAD: number;\n        /**\n         * @private\n         */\n        static normalizeRadian(value: number): number;\n        /**\n         * - Horizontal translate.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 水平位移。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        x: number;\n        /**\n         * - Vertical translate.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 垂直位移。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        y: number;\n        /**\n         * - Skew. (In radians)\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 倾斜。 （以弧度为单位）\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        skew: number;\n        /**\n         * - rotation. (In radians)\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 旋转。 （以弧度为单位）\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        rotation: number;\n        /**\n         * - Horizontal Scaling.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 水平缩放。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        scaleX: number;\n        /**\n         * - Vertical scaling.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 垂直缩放。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        scaleY: number;\n        /**\n         * @private\n         */\n        constructor(x?: number, y?: number, skew?: number, rotation?: number, scaleX?: number, scaleY?: number);\n        toString(): string;\n        /**\n         * @private\n         */\n        copyFrom(value: Transform): Transform;\n        /**\n         * @private\n         */\n        identity(): Transform;\n        /**\n         * @private\n         */\n        add(value: Transform): Transform;\n        /**\n         * @private\n         */\n        minus(value: Transform): Transform;\n        /**\n         * @private\n         */\n        fromMatrix(matrix: Matrix): Transform;\n        /**\n         * @private\n         */\n        toMatrix(matrix: Matrix): Transform;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * @internal\n     * @private\n     */\n    class ColorTransform {\n        alphaMultiplier: number;\n        redMultiplier: number;\n        greenMultiplier: number;\n        blueMultiplier: number;\n        alphaOffset: number;\n        redOffset: number;\n        greenOffset: number;\n        blueOffset: number;\n        constructor(alphaMultiplier?: number, redMultiplier?: number, greenMultiplier?: number, blueMultiplier?: number, alphaOffset?: number, redOffset?: number, greenOffset?: number, blueOffset?: number);\n        copyFrom(value: ColorTransform): void;\n        identity(): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The Point object represents a location in a two-dimensional coordinate system.\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - Point 对象表示二维坐标系统中的某个位置。\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class Point {\n        /**\n         * - The horizontal coordinate.\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 该点的水平坐标。\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        x: number;\n        /**\n         * - The vertical coordinate.\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 该点的垂直坐标。\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        y: number;\n        /**\n         * - Creates a new point. If you pass no parameters to this method, a point is created at (0,0).\n         * @param x - The horizontal coordinate.\n         * @param y - The vertical coordinate.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 创建一个 egret.Point 对象.若不传入任何参数，将会创建一个位于（0，0）位置的点。\n         * @param x - 该对象的x属性值，默认为 0.0。\n         * @param y - 该对象的y属性值，默认为 0.0。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        constructor(x?: number, y?: number);\n        /**\n         * @private\n         */\n        copyFrom(value: Point): void;\n        /**\n         * @private\n         */\n        clear(): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - A Rectangle object is an area defined by its position, as indicated by its top-left corner point (x, y) and by its\n     * width and its height.<br/>\n     * The x, y, width, and height properties of the Rectangle class are independent of each other; changing the value of\n     * one property has no effect on the others. However, the right and bottom properties are integrally related to those\n     * four properties. For example, if you change the value of the right property, the value of the width property changes;\n     * if you change the bottom property, the value of the height property changes.\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - Rectangle 对象是按其位置（由它左上角的点 (x, y) 确定）以及宽度和高度定义的区域。<br/>\n     * Rectangle 类的 x、y、width 和 height 属性相互独立；更改一个属性的值不会影响其他属性。\n     * 但是，right 和 bottom 属性与这四个属性是整体相关的。例如，如果更改 right 属性的值，则 width\n     * 属性的值将发生变化；如果更改 bottom 属性，则 height 属性的值将发生变化。\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class Rectangle {\n        /**\n         * - The x coordinate of the top-left corner of the rectangle.\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 矩形左上角的 x 坐标。\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        x: number;\n        /**\n         * - The y coordinate of the top-left corner of the rectangle.\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 矩形左上角的 y 坐标。\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        y: number;\n        /**\n         * - The width of the rectangle, in pixels.\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 矩形的宽度（以像素为单位）。\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        width: number;\n        /**\n         * - 矩形的高度（以像素为单位）。\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - The height of the rectangle, in pixels.\n         * @default 0.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        height: number;\n        /**\n         * @private\n         */\n        constructor(x?: number, y?: number, width?: number, height?: number);\n        /**\n         * @private\n         */\n        copyFrom(value: Rectangle): void;\n        /**\n         * @private\n         */\n        clear(): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The user custom data.\n     * @version DragonBones 5.0\n     * @language en_US\n     */\n    /**\n     * - 用户自定义数据。\n     * @version DragonBones 5.0\n     * @language zh_CN\n     */\n    class UserData extends BaseObject {\n        static toString(): string;\n        /**\n         * - The custom int numbers.\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 自定义整数。\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        readonly ints: Array<number>;\n        /**\n         * - The custom float numbers.\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 自定义浮点数。\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        readonly floats: Array<number>;\n        /**\n         * - The custom strings.\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 自定义字符串。\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        readonly strings: Array<string>;\n        /**\n         * @inheritDoc\n         */\n        protected _onClear(): void;\n        /**\n         * @internal\n         * @private\n         */\n        addInt(value: number): void;\n        /**\n         * @internal\n         * @private\n         */\n        addFloat(value: number): void;\n        /**\n         * @internal\n         * @private\n         */\n        addString(value: string): void;\n        /**\n         * - Get the custom int number.\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 获取自定义整数。\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        getInt(index?: number): number;\n        /**\n         * - Get the custom float number.\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 获取自定义浮点数。\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        getFloat(index?: number): number;\n        /**\n         * - Get the custom string.\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 获取自定义字符串。\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        getString(index?: number): string;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class ActionData extends BaseObject {\n        static toString(): string;\n        type: ActionType;\n        name: string;\n        bone: BoneData | null;\n        slot: SlotData | null;\n        data: UserData | null;\n        protected _onClear(): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The DragonBones data.\n     * A DragonBones data contains multiple armature data.\n     * @see dragonBones.ArmatureData\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 龙骨数据。\n     * 一个龙骨数据包含多个骨架数据。\n     * @see dragonBones.ArmatureData\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class DragonBonesData extends BaseObject {\n        static toString(): string;\n        /**\n         * @private\n         */\n        autoSearch: boolean;\n        /**\n         * - The animation frame rate.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 动画帧频。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        frameRate: number;\n        /**\n         * - The data version.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 数据版本。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        version: string;\n        /**\n         * - The DragonBones data name.\n         * The name is consistent with the DragonBones project name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 龙骨数据名称。\n         * 该名称与龙骨项目名保持一致。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        name: string;\n        /**\n         * @private\n         */\n        stage: ArmatureData | null;\n        /**\n         * @internal\n         * @private\n         */\n        readonly frameIndices: Array<number>;\n        /**\n         * @internal\n         * @private\n         */\n        readonly cachedFrames: Array<number>;\n        /**\n         * - All armature data names.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 所有的骨架数据名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly armatureNames: Array<string>;\n        /**\n         * @private\n         */\n        readonly armatures: Map<ArmatureData>;\n        /**\n         * @internal\n         * @private\n         */\n        binary: ArrayBuffer;\n        /**\n         * @internal\n         * @private\n         */\n        intArray: Int16Array;\n        /**\n         * @internal\n         * @private\n         */\n        floatArray: Float32Array;\n        /**\n         * @internal\n         * @private\n         */\n        frameIntArray: Int16Array;\n        /**\n         * @internal\n         * @private\n         */\n        frameFloatArray: Float32Array;\n        /**\n         * @internal\n         * @private\n         */\n        frameArray: Int16Array;\n        /**\n         * @internal\n         * @private\n         */\n        timelineArray: Uint16Array;\n        /**\n         * @private\n         */\n        userData: UserData | null;\n        /**\n         * @inheritDoc\n         */\n        protected _onClear(): void;\n        /**\n         * @internal\n         * @private\n         */\n        addArmature(value: ArmatureData): void;\n        /**\n         * - Get a specific armature data.\n         * @param name - The armature data name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 获取特定的骨架数据。\n         * @param name - 骨架数据名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        getArmature(name: string): ArmatureData | null;\n        /**\n         * - Deprecated, please refer to {@link #dragonBones.BaseFactory#removeDragonBonesData()}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #dragonBones.BaseFactory#removeDragonBonesData()}。\n         * @deprecated\n         * @language zh_CN\n         */\n        dispose(): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The armature data.\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 骨架数据。\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class ArmatureData extends BaseObject {\n        static toString(): string;\n        /**\n         * @private\n         */\n        type: ArmatureType;\n        /**\n         * - The animation frame rate.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 动画帧率。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        frameRate: number;\n        /**\n         * @private\n         */\n        cacheFrameRate: number;\n        /**\n         * @private\n         */\n        scale: number;\n        /**\n         * - The armature name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 骨架名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        name: string;\n        /**\n         * @private\n         */\n        readonly aabb: Rectangle;\n        /**\n         * - The names of all the animation data.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 所有的动画数据名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly animationNames: Array<string>;\n        /**\n         * @private\n         */\n        readonly sortedBones: Array<BoneData>;\n        /**\n         * @private\n         */\n        readonly sortedSlots: Array<SlotData>;\n        /**\n         * @private\n         */\n        readonly defaultActions: Array<ActionData>;\n        /**\n         * @private\n         */\n        readonly actions: Array<ActionData>;\n        /**\n         * @private\n         */\n        readonly bones: Map<BoneData>;\n        /**\n         * @private\n         */\n        readonly slots: Map<SlotData>;\n        /**\n         * @private\n         */\n        readonly constraints: Map<ConstraintData>;\n        /**\n         * @private\n         */\n        readonly skins: Map<SkinData>;\n        /**\n         * @private\n         */\n        readonly animations: Map<AnimationData>;\n        /**\n         * - The default skin data.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 默认插槽数据。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        defaultSkin: SkinData | null;\n        /**\n         * - The default animation data.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 默认动画数据。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        defaultAnimation: AnimationData | null;\n        /**\n         * @private\n         */\n        canvas: CanvasData | null;\n        /**\n         * @private\n         */\n        userData: UserData | null;\n        /**\n         * @private\n         */\n        parent: DragonBonesData;\n        /**\n         * @inheritDoc\n         */\n        protected _onClear(): void;\n        /**\n         * @internal\n         * @private\n         */\n        sortBones(): void;\n        /**\n         * @internal\n         * @private\n         */\n        cacheFrames(frameRate: number): void;\n        /**\n         * @internal\n         * @private\n         */\n        setCacheFrame(globalTransformMatrix: Matrix, transform: Transform): number;\n        /**\n         * @internal\n         * @private\n         */\n        getCacheFrame(globalTransformMatrix: Matrix, transform: Transform, arrayOffset: number): void;\n        /**\n         * @internal\n         * @private\n         */\n        addBone(value: BoneData): void;\n        /**\n         * @internal\n         * @private\n         */\n        addSlot(value: SlotData): void;\n        /**\n         * @internal\n         * @private\n         */\n        addConstraint(value: ConstraintData): void;\n        /**\n         * @internal\n         * @private\n         */\n        addSkin(value: SkinData): void;\n        /**\n         * @internal\n         * @private\n         */\n        addAnimation(value: AnimationData): void;\n        /**\n         * @internal\n         * @private\n         */\n        addAction(value: ActionData, isDefault: boolean): void;\n        /**\n         * - Get a specific done data.\n         * @param name - The bone name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 获取特定的骨骼数据。\n         * @param name - 骨骼名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        getBone(name: string): BoneData | null;\n        /**\n         * - Get a specific slot data.\n         * @param name - The slot name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 获取特定的插槽数据。\n         * @param name - 插槽名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        getSlot(name: string): SlotData | null;\n        /**\n         * @private\n         */\n        getConstraint(name: string): ConstraintData | null;\n        /**\n         * - Get a specific skin data.\n         * @param name - The skin name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 获取特定皮肤数据。\n         * @param name - 皮肤名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        getSkin(name: string): SkinData | null;\n        /**\n         * @internal\n         * @private\n         */\n        getMesh(skinName: string, slotName: string, meshName: string): MeshDisplayData | null;\n        /**\n         * - Get a specific animation data.\n         * @param name - The animation name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 获取特定的动画数据。\n         * @param name - 动画名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        getAnimation(name: string): AnimationData | null;\n    }\n    /**\n     * - The bone data.\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 骨骼数据。\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class BoneData extends BaseObject {\n        static toString(): string;\n        /**\n         * @private\n         */\n        inheritTranslation: boolean;\n        /**\n         * @private\n         */\n        inheritRotation: boolean;\n        /**\n         * @private\n         */\n        inheritScale: boolean;\n        /**\n         * @private\n         */\n        inheritReflection: boolean;\n        /**\n         * @private\n         */\n        type: BoneType;\n        /**\n         * - The bone length.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 骨骼长度。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        length: number;\n        /**\n         * - The bone name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 骨骼名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        name: string;\n        /**\n         * @private\n         */\n        readonly transform: Transform;\n        /**\n         * @private\n         */\n        userData: UserData | null;\n        /**\n         * - The parent bone data.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 父骨骼数据。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        parent: BoneData | null;\n        /**\n         * @inheritDoc\n         */\n        protected _onClear(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class SurfaceData extends BoneData {\n        static toString(): string;\n        segmentX: number;\n        segmentY: number;\n        readonly vertices: Array<number>;\n        /**\n         * @inheritDoc\n         */\n        protected _onClear(): void;\n    }\n    /**\n     * - The slot data.\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 插槽数据。\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class SlotData extends BaseObject {\n        /**\n         * @internal\n         * @private\n         */\n        static readonly DEFAULT_COLOR: ColorTransform;\n        /**\n         * @internal\n         * @private\n         */\n        static createColor(): ColorTransform;\n        static toString(): string;\n        /**\n         * @private\n         */\n        blendMode: BlendMode;\n        /**\n         * @private\n         */\n        displayIndex: number;\n        /**\n         * @private\n         */\n        zOrder: number;\n        /**\n         * - The slot name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 插槽名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        name: string;\n        /**\n         * @private\n         */\n        color: ColorTransform;\n        /**\n         * @private\n         */\n        userData: UserData | null;\n        /**\n         * - The parent bone data.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 父骨骼数据。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        parent: BoneData;\n        /**\n         * @inheritDoc\n         */\n        protected _onClear(): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * @internal\n     * @private\n     */\n    abstract class ConstraintData extends BaseObject {\n        order: number;\n        name: string;\n        target: BoneData;\n        root: BoneData;\n        bone: BoneData | null;\n        protected _onClear(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class IKConstraintData extends ConstraintData {\n        static toString(): string;\n        scaleEnabled: boolean;\n        bendPositive: boolean;\n        weight: number;\n        protected _onClear(): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * @internal\n     * @private\n     */\n    class CanvasData extends BaseObject {\n        static toString(): string;\n        hasBackground: boolean;\n        color: number;\n        x: number;\n        y: number;\n        width: number;\n        height: number;\n        protected _onClear(): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The skin data, typically a armature data instance contains at least one skinData.\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 皮肤数据，通常一个骨架数据至少包含一个皮肤数据。\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class SkinData extends BaseObject {\n        static toString(): string;\n        /**\n         * - The skin name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 皮肤名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        name: string;\n        /**\n         * @private\n         */\n        readonly displays: Map<Array<DisplayData | null>>;\n        /**\n         * @private\n         */\n        parent: ArmatureData;\n        /**\n         * @inheritDoc\n         */\n        protected _onClear(): void;\n        /**\n         * @internal\n         * @private\n         */\n        addDisplay(slotName: string, value: DisplayData | null): void;\n        /**\n         * @private\n         */\n        getDisplay(slotName: string, displayName: string): DisplayData | null;\n        /**\n         * @private\n         */\n        getDisplays(slotName: string): Array<DisplayData | null> | null;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * @internal\n     * @private\n     */\n    abstract class DisplayData extends BaseObject {\n        type: DisplayType;\n        name: string;\n        path: string;\n        parent: SkinData;\n        readonly transform: Transform;\n        protected _onClear(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class ImageDisplayData extends DisplayData {\n        static toString(): string;\n        readonly pivot: Point;\n        texture: TextureData | null;\n        protected _onClear(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class ArmatureDisplayData extends DisplayData {\n        static toString(): string;\n        inheritAnimation: boolean;\n        readonly actions: Array<ActionData>;\n        armature: ArmatureData | null;\n        protected _onClear(): void;\n        /**\n         * @private\n         */\n        addAction(value: ActionData): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class MeshDisplayData extends DisplayData {\n        static toString(): string;\n        inheritDeform: boolean;\n        offset: number;\n        weight: WeightData | null;\n        glue: GlueData | null;\n        texture: TextureData | null;\n        protected _onClear(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class BoundingBoxDisplayData extends DisplayData {\n        static toString(): string;\n        boundingBox: BoundingBoxData | null;\n        protected _onClear(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class WeightData extends BaseObject {\n        static toString(): string;\n        count: number;\n        offset: number;\n        readonly bones: Array<BoneData>;\n        protected _onClear(): void;\n        addBone(value: BoneData): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class GlueData extends BaseObject {\n        static toString(): string;\n        readonly weights: Array<number>;\n        readonly meshes: Array<MeshDisplayData | null>;\n        protected _onClear(): void;\n        addMesh(value: MeshDisplayData | null): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The base class of bounding box data.\n     * @see dragonBones.RectangleData\n     * @see dragonBones.EllipseData\n     * @see dragonBones.PolygonData\n     * @version DragonBones 5.0\n     * @language en_US\n     */\n    /**\n     * - 边界框数据基类。\n     * @see dragonBones.RectangleData\n     * @see dragonBones.EllipseData\n     * @see dragonBones.PolygonData\n     * @version DragonBones 5.0\n     * @language zh_CN\n     */\n    abstract class BoundingBoxData extends BaseObject {\n        /**\n         * - The bounding box type.\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 边界框类型。\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        type: BoundingBoxType;\n        /**\n         * @private\n         */\n        color: number;\n        /**\n         * @private\n         */\n        width: number;\n        /**\n         * @private\n         */\n        height: number;\n        /**\n         * @private\n         */\n        protected _onClear(): void;\n        /**\n         * - Check whether the bounding box contains a specific point. (Local coordinate system)\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 检查边界框是否包含特定点。（本地坐标系）\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        abstract containsPoint(pX: number, pY: number): boolean;\n        /**\n         * - Check whether the bounding box intersects a specific segment. (Local coordinate system)\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 检查边界框是否与特定线段相交。（本地坐标系）\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        abstract intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA: {\n            x: number;\n            y: number;\n        } | null, intersectionPointB: {\n            x: number;\n            y: number;\n        } | null, normalRadians: {\n            x: number;\n            y: number;\n        } | null): number;\n    }\n    /**\n     * - The rectangle bounding box data.\n     * @version DragonBones 5.1\n     * @language en_US\n     */\n    /**\n     * - 矩形边界框数据。\n     * @version DragonBones 5.1\n     * @language zh_CN\n     */\n    class RectangleBoundingBoxData extends BoundingBoxData {\n        static toString(): string;\n        /**\n         * - Compute the bit code for a point (x, y) using the clip rectangle\n         */\n        private static _computeOutCode(x, y, xMin, yMin, xMax, yMax);\n        /**\n         * @private\n         */\n        static rectangleIntersectsSegment(xA: number, yA: number, xB: number, yB: number, xMin: number, yMin: number, xMax: number, yMax: number, intersectionPointA?: {\n            x: number;\n            y: number;\n        } | null, intersectionPointB?: {\n            x: number;\n            y: number;\n        } | null, normalRadians?: {\n            x: number;\n            y: number;\n        } | null): number;\n        /**\n         * @inheritDoc\n         * @private\n         */\n        protected _onClear(): void;\n        /**\n         * @inheritDoc\n         */\n        containsPoint(pX: number, pY: number): boolean;\n        /**\n         * @inheritDoc\n         */\n        intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: {\n            x: number;\n            y: number;\n        } | null, intersectionPointB?: {\n            x: number;\n            y: number;\n        } | null, normalRadians?: {\n            x: number;\n            y: number;\n        } | null): number;\n    }\n    /**\n     * - The ellipse bounding box data.\n     * @version DragonBones 5.1\n     * @language en_US\n     */\n    /**\n     * - 椭圆边界框数据。\n     * @version DragonBones 5.1\n     * @language zh_CN\n     */\n    class EllipseBoundingBoxData extends BoundingBoxData {\n        static toString(): string;\n        /**\n         * @private\n         */\n        static ellipseIntersectsSegment(xA: number, yA: number, xB: number, yB: number, xC: number, yC: number, widthH: number, heightH: number, intersectionPointA?: {\n            x: number;\n            y: number;\n        } | null, intersectionPointB?: {\n            x: number;\n            y: number;\n        } | null, normalRadians?: {\n            x: number;\n            y: number;\n        } | null): number;\n        /**\n         * @inheritDoc\n         * @private\n         */\n        protected _onClear(): void;\n        /**\n         * @inheritDoc\n         */\n        containsPoint(pX: number, pY: number): boolean;\n        /**\n         * @inheritDoc\n         */\n        intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: {\n            x: number;\n            y: number;\n        } | null, intersectionPointB?: {\n            x: number;\n            y: number;\n        } | null, normalRadians?: {\n            x: number;\n            y: number;\n        } | null): number;\n    }\n    /**\n     * - The polygon bounding box data.\n     * @version DragonBones 5.1\n     * @language en_US\n     */\n    /**\n     * - 多边形边界框数据。\n     * @version DragonBones 5.1\n     * @language zh_CN\n     */\n    class PolygonBoundingBoxData extends BoundingBoxData {\n        static toString(): string;\n        /**\n         * @private\n         */\n        static polygonIntersectsSegment(xA: number, yA: number, xB: number, yB: number, vertices: Array<number>, intersectionPointA?: {\n            x: number;\n            y: number;\n        } | null, intersectionPointB?: {\n            x: number;\n            y: number;\n        } | null, normalRadians?: {\n            x: number;\n            y: number;\n        } | null): number;\n        /**\n         * @private\n         */\n        x: number;\n        /**\n         * @private\n         */\n        y: number;\n        /**\n         * - The polygon vertices.\n         * @version DragonBones 5.1\n         * @language en_US\n         */\n        /**\n         * - 多边形顶点。\n         * @version DragonBones 5.1\n         * @language zh_CN\n         */\n        readonly vertices: Array<number>;\n        /**\n         * @private\n         */\n        weight: WeightData | null;\n        /**\n         * @inheritDoc\n         * @private\n         */\n        protected _onClear(): void;\n        /**\n         * @inheritDoc\n         */\n        containsPoint(pX: number, pY: number): boolean;\n        /**\n         * @inheritDoc\n         */\n        intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: {\n            x: number;\n            y: number;\n        } | null, intersectionPointB?: {\n            x: number;\n            y: number;\n        } | null, normalRadians?: {\n            x: number;\n            y: number;\n        } | null): number;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The animation data.\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 动画数据。\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class AnimationData extends BaseObject {\n        static toString(): string;\n        /**\n         * - FrameIntArray.\n         * @internal\n         * @private\n         */\n        frameIntOffset: number;\n        /**\n         * - FrameFloatArray.\n         * @internal\n         * @private\n         */\n        frameFloatOffset: number;\n        /**\n         * - FrameArray.\n         * @internal\n         * @private\n         */\n        frameOffset: number;\n        /**\n         * - The frame count of the animation.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 动画的帧数。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        frameCount: number;\n        /**\n         * - The play times of the animation. [0: Loop play, [1~N]: Play N times]\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 动画的播放次数。 [0: 无限循环播放, [1~N]: 循环播放 N 次]\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        playTimes: number;\n        /**\n         * - The duration of the animation. (In seconds)\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 动画的持续时间。 （以秒为单位）\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        duration: number;\n        /**\n         * @private\n         */\n        scale: number;\n        /**\n         * - The fade in time of the animation. (In seconds)\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 动画的淡入时间。 （以秒为单位）\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        fadeInTime: number;\n        /**\n         * @private\n         */\n        cacheFrameRate: number;\n        /**\n         * - The animation name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 动画名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        name: string;\n        /**\n         * @private\n         */\n        readonly cachedFrames: Array<boolean>;\n        /**\n         * @private\n         */\n        readonly boneTimelines: Map<Array<TimelineData>>;\n        /**\n         * @private\n         */\n        readonly surfaceTimelines: Map<Array<TimelineData>>;\n        /**\n         * @private\n         */\n        readonly slotTimelines: Map<Array<TimelineData>>;\n        /**\n         * @private\n         */\n        readonly constraintTimelines: Map<Array<TimelineData>>;\n        /**\n         * @private\n         */\n        readonly animationTimelines: Map<Array<TimelineData>>;\n        /**\n         * @private\n         */\n        readonly boneCachedFrameIndices: Map<Array<number>>;\n        /**\n         * @private\n         */\n        readonly slotCachedFrameIndices: Map<Array<number>>;\n        /**\n         * @private\n         */\n        actionTimeline: TimelineData | null;\n        /**\n         * @private\n         */\n        zOrderTimeline: TimelineData | null;\n        /**\n         * @private\n         */\n        parent: ArmatureData;\n        /**\n         * @inheritDoc\n         */\n        protected _onClear(): void;\n        /**\n         * @internal\n         * @private\n         */\n        cacheFrames(frameRate: number): void;\n        /**\n         * @private\n         */\n        addBoneTimeline(bone: BoneData, timeline: TimelineData): void;\n        /**\n         * @private\n         */\n        addSurfaceTimeline(surface: SurfaceData, timeline: TimelineData): void;\n        /**\n         * @private\n         */\n        addSlotTimeline(slot: SlotData, timeline: TimelineData): void;\n        /**\n         * @private\n         */\n        addConstraintTimeline(constraint: ConstraintData, timeline: TimelineData): void;\n        /**\n         * @private\n         */\n        addAnimationTimeline(name: string, timeline: TimelineData): void;\n        /**\n         * @private\n         */\n        getBoneTimelines(name: string): Array<TimelineData> | null;\n        /**\n         * @private\n         */\n        getSurfaceTimelines(name: string): Array<TimelineData> | null;\n        /**\n         * @private\n         */\n        getSlotTimelines(name: string): Array<TimelineData> | null;\n        /**\n         * @private\n         */\n        getConstraintTimelines(name: string): Array<TimelineData> | null;\n        /**\n         * @private\n         */\n        getAnimationTimelines(name: string): Array<TimelineData> | null;\n        /**\n         * @private\n         */\n        getBoneCachedFrameIndices(name: string): Array<number> | null;\n        /**\n         * @private\n         */\n        getSlotCachedFrameIndices(name: string): Array<number> | null;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class TimelineData extends BaseObject {\n        static toString(): string;\n        type: TimelineType;\n        offset: number;\n        frameIndicesOffset: number;\n        protected _onClear(): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The animation config is used to describe all the information needed to play an animation state.\n     * The API is still in the experimental phase and may encounter bugs or stability or compatibility issues when used.\n     * @see dragonBones.AnimationState\n     * @beta\n     * @version DragonBones 5.0\n     * @language en_US\n     */\n    /**\n     * - 动画配置用来描述播放一个动画状态所需要的全部信息。\n     * 该 API 仍在实验阶段，使用时可能遭遇 bug 或稳定性或兼容性问题。\n     * @see dragonBones.AnimationState\n     * @beta\n     * @version DragonBones 5.0\n     * @language zh_CN\n     */\n    class AnimationConfig extends BaseObject {\n        static toString(): string;\n        /**\n         * @private\n         */\n        pauseFadeOut: boolean;\n        /**\n         * - Fade out the pattern of other animation states when the animation state is fade in.\n         * This property is typically used to specify the substitution of multiple animation states blend.\n         * @default dragonBones.AnimationFadeOutMode.All\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 淡入动画状态时淡出其他动画状态的模式。\n         * 该属性通常用来指定多个动画状态混合时的相互替换关系。\n         * @default dragonBones.AnimationFadeOutMode.All\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        fadeOutMode: AnimationFadeOutMode;\n        /**\n         * @private\n         */\n        fadeOutTweenType: TweenType;\n        /**\n         * @private\n         */\n        fadeOutTime: number;\n        /**\n         * @private\n         */\n        pauseFadeIn: boolean;\n        /**\n         * @private\n         */\n        actionEnabled: boolean;\n        /**\n         * @private\n         */\n        additiveBlending: boolean;\n        /**\n         * - Whether the animation state has control over the display property of the slots.\n         * Sometimes blend a animation state does not want it to control the display properties of the slots,\n         * especially if other animation state are controlling the display properties of the slots.\n         * @default true\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 动画状态是否对插槽的显示对象属性有控制权。\n         * 有时混合一个动画状态并不希望其控制插槽的显示对象属性，\n         * 尤其是其他动画状态正在控制这些插槽的显示对象属性时。\n         * @default true\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        displayControl: boolean;\n        /**\n         * - Whether to reset the objects without animation to the armature pose when the animation state is start to play.\n         * This property should usually be set to false when blend multiple animation states.\n         * @default true\n         * @version DragonBones 5.1\n         * @language en_US\n         */\n        /**\n         * - 开始播放动画状态时是否将没有动画的对象重置为骨架初始值。\n         * 通常在混合多个动画状态时应该将该属性设置为 false。\n         * @default true\n         * @version DragonBones 5.1\n         * @language zh_CN\n         */\n        resetToPose: boolean;\n        /**\n         * @private\n         */\n        fadeInTweenType: TweenType;\n        /**\n         * - The play times. [0: Loop play, [1~N]: Play N times]\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 播放次数。 [0: 无限循环播放, [1~N]: 循环播放 N 次]\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        playTimes: number;\n        /**\n         * - The blend layer.\n         * High layer animation state will get the blend weight first.\n         * When the blend weight is assigned more than 1, the remaining animation states will no longer get the weight assigned.\n         * @readonly\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 混合图层。\n         * 图层高的动画状态会优先获取混合权重。\n         * 当混合权重分配超过 1 时，剩余的动画状态将不再获得权重分配。\n         * @readonly\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        layer: number;\n        /**\n         * - The start time of play. (In seconds)\n         * @default 0.0\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 播放的开始时间。 （以秒为单位）\n         * @default 0.0\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        position: number;\n        /**\n         * - The duration of play.\n         * [-1: Use the default value of the animation data, 0: Stop play, (0~N]: The duration] (In seconds)\n         * @default -1.0\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 播放的持续时间。\n         * [-1: 使用动画数据默认值, 0: 动画停止, (0~N]: 持续时间] （以秒为单位）\n         * @default -1.0\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        duration: number;\n        /**\n         * - The play speed.\n         * The value is an overlay relationship with {@link dragonBones.Animation#timeScale}.\n         * [(-N~0): Reverse play, 0: Stop play, (0~1): Slow play, 1: Normal play, (1~N): Fast play]\n         * @default 1.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 播放速度。\n         * 该值与 {@link dragonBones.Animation#timeScale} 是叠加关系。\n         * [(-N~0): 倒转播放, 0: 停止播放, (0~1): 慢速播放, 1: 正常播放, (1~N): 快速播放]\n         * @default 1.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        timeScale: number;\n        /**\n         * - The blend weight.\n         * @default 1.0\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 混合权重。\n         * @default 1.0\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        weight: number;\n        /**\n         * - The fade in time.\n         * [-1: Use the default value of the animation data, [0~N]: The fade in time] (In seconds)\n         * @default -1.0\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 淡入时间。\n         * [-1: 使用动画数据默认值, [0~N]: 淡入时间] （以秒为单位）\n         * @default -1.0\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        fadeInTime: number;\n        /**\n         * - The auto fade out time when the animation state play completed.\n         * [-1: Do not fade out automatically, [0~N]: The fade out time] (In seconds)\n         * @default -1.0\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 动画状态播放完成后的自动淡出时间。\n         * [-1: 不自动淡出, [0~N]: 淡出时间] （以秒为单位）\n         * @default -1.0\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        autoFadeOutTime: number;\n        /**\n         * - The name of the animation state. (Can be different from the name of the animation data)\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 动画状态名称。 （可以不同于动画数据）\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        name: string;\n        /**\n         * - The animation data name.\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 动画数据名称。\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        animation: string;\n        /**\n         * - The blend group name of the animation state.\n         * This property is typically used to specify the substitution of multiple animation states blend.\n         * @readonly\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 混合组名称。\n         * 该属性通常用来指定多个动画状态混合时的相互替换关系。\n         * @readonly\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        group: string;\n        /**\n         * @private\n         */\n        readonly boneMask: Array<string>;\n        /**\n         * @private\n         */\n        protected _onClear(): void;\n        /**\n         * @private\n         */\n        clear(): void;\n        /**\n         * @private\n         */\n        copyFrom(value: AnimationConfig): void;\n        /**\n         * @private\n         */\n        containsBoneMask(name: string): boolean;\n        /**\n         * @private\n         */\n        addBoneMask(armature: Armature, name: string, recursive?: boolean): void;\n        /**\n         * @private\n         */\n        removeBoneMask(armature: Armature, name: string, recursive?: boolean): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The texture atlas data.\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 贴图集数据。\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    abstract class TextureAtlasData extends BaseObject {\n        /**\n         * @private\n         */\n        autoSearch: boolean;\n        /**\n         * @private\n         */\n        width: number;\n        /**\n         * @private\n         */\n        height: number;\n        /**\n         * @private\n         */\n        scale: number;\n        /**\n         * - The texture atlas name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 贴图集名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        name: string;\n        /**\n         * - The image path of the texture atlas.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 贴图集图片路径。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        imagePath: string;\n        /**\n         * @private\n         */\n        readonly textures: Map<TextureData>;\n        /**\n         * @inheritDoc\n         */\n        protected _onClear(): void;\n        /**\n         * @private\n         */\n        copyFrom(value: TextureAtlasData): void;\n        /**\n         * @internal\n         * @private\n         */\n        abstract createTexture(): TextureData;\n        /**\n         * @internal\n         * @private\n         */\n        addTexture(value: TextureData): void;\n        /**\n         * @private\n         */\n        getTexture(name: string): TextureData | null;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    abstract class TextureData extends BaseObject {\n        static createRectangle(): Rectangle;\n        rotated: boolean;\n        name: string;\n        readonly region: Rectangle;\n        parent: TextureAtlasData;\n        frame: Rectangle | null;\n        protected _onClear(): void;\n        copyFrom(value: TextureData): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The armature proxy interface, the docking engine needs to implement it concretely.\n     * @see dragonBones.Armature\n     * @version DragonBones 5.0\n     * @language en_US\n     */\n    /**\n     * - 骨架代理接口，对接的引擎需要对其进行具体实现。\n     * @see dragonBones.Armature\n     * @version DragonBones 5.0\n     * @language zh_CN\n     */\n    interface IArmatureProxy extends IEventDispatcher {\n        /**\n         * @internal\n         * @private\n         */\n        dbInit(armature: Armature): void;\n        /**\n         * @internal\n         * @private\n         */\n        dbClear(): void;\n        /**\n         * @internal\n         * @private\n         */\n        dbUpdate(): void;\n        /**\n         * - Dispose the instance and the Armature instance. (The Armature instance will return to the object pool)\n         * @example\n         * <pre>\n         *     removeChild(armatureDisplay);\n         *     armatureDisplay.dispose();\n         * </pre>\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 释放该实例和骨架。 （骨架会回收到对象池）\n         * @example\n         * <pre>\n         *     removeChild(armatureDisplay);\n         *     armatureDisplay.dispose();\n         * </pre>\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        dispose(disposeProxy: boolean): void;\n        /**\n         * - The armature.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 骨架。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        readonly armature: Armature;\n        /**\n         * - The animation player.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 动画播放器。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly animation: Animation;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - Armature is the core of the skeleton animation system.\n     * @see dragonBones.ArmatureData\n     * @see dragonBones.Bone\n     * @see dragonBones.Slot\n     * @see dragonBones.Animation\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 骨架是骨骼动画系统的核心。\n     * @see dragonBones.ArmatureData\n     * @see dragonBones.Bone\n     * @see dragonBones.Slot\n     * @see dragonBones.Animation\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class Armature extends BaseObject implements IAnimatable {\n        static toString(): string;\n        private static _onSortSlots(a, b);\n        /**\n         * - Whether to inherit the animation control of the parent armature.\n         * True to try to have the child armature play an animation with the same name when the parent armature play the animation.\n         * @default true\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 是否继承父骨架的动画控制。\n         * 如果该值为 true，当父骨架播放动画时，会尝试让子骨架播放同名动画。\n         * @default true\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        inheritAnimation: boolean;\n        /**\n         * @private\n         */\n        userData: any;\n        private _lockUpdate;\n        private _bonesDirty;\n        private _slotsDirty;\n        private _zOrderDirty;\n        private _flipX;\n        private _flipY;\n        /**\n         * @internal\n         * @private\n         */\n        _cacheFrameIndex: number;\n        private readonly _bones;\n        private readonly _slots;\n        /**\n         * @internal\n         * @private\n         */\n        readonly _glueSlots: Array<Slot>;\n        /**\n         * @internal\n         * @private\n         */\n        readonly _constraints: Array<Constraint>;\n        private readonly _actions;\n        /**\n         * @internal\n         * @private\n         */\n        _armatureData: ArmatureData;\n        private _animation;\n        private _proxy;\n        private _display;\n        /**\n         * @internal\n         * @private\n         */\n        _replaceTextureAtlasData: TextureAtlasData | null;\n        private _replacedTexture;\n        /**\n         * @internal\n         * @private\n         */\n        _dragonBones: DragonBones;\n        private _clock;\n        /**\n         * @internal\n         * @private\n         */\n        _parent: Slot | null;\n        /**\n         * @private\n         */\n        protected _onClear(): void;\n        private _sortBones();\n        private _sortSlots();\n        /**\n         * @internal\n         * @private\n         */\n        _sortZOrder(slotIndices: Array<number> | Int16Array | null, offset: number): void;\n        /**\n         * @internal\n         * @private\n         */\n        _addBoneToBoneList(value: Bone): void;\n        /**\n         * @internal\n         * @private\n         */\n        _removeBoneFromBoneList(value: Bone): void;\n        /**\n         * @internal\n         * @private\n         */\n        _addSlotToSlotList(value: Slot): void;\n        /**\n         * @internal\n         * @private\n         */\n        _removeSlotFromSlotList(value: Slot): void;\n        /**\n         * @internal\n         * @private\n         */\n        _bufferAction(action: ActionData, append: boolean): void;\n        /**\n         * - Dispose the armature. (Return to the object pool)\n         * @example\n         * <pre>\n         *     removeChild(armature.display);\n         *     armature.dispose();\n         * </pre>\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 释放骨架。 （回收到对象池）\n         * @example\n         * <pre>\n         *     removeChild(armature.display);\n         *     armature.dispose();\n         * </pre>\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        dispose(): void;\n        /**\n         * @internal\n         * @private\n         */\n        init(armatureData: ArmatureData, proxy: IArmatureProxy, display: any, dragonBones: DragonBones): void;\n        /**\n         * @inheritDoc\n         */\n        advanceTime(passedTime: number): void;\n        /**\n         * - Forces a specific bone or its owning slot to update the transform or display property in the next frame.\n         * @param boneName - The bone name. (If not set, all bones will be update)\n         * @param updateSlot - Whether to update the bone's slots. (Default: false)\n         * @see dragonBones.Bone#invalidUpdate()\n         * @see dragonBones.Slot#invalidUpdate()\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 强制特定骨骼或其拥有的插槽在下一帧更新变换或显示属性。\n         * @param boneName - 骨骼名称。 （如果未设置，将更新所有骨骼）\n         * @param updateSlot - 是否更新骨骼的插槽。 （默认: false）\n         * @see dragonBones.Bone#invalidUpdate()\n         * @see dragonBones.Slot#invalidUpdate()\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        invalidUpdate(boneName?: string | null, updateSlot?: boolean): void;\n        /**\n         * - Check whether a specific point is inside a custom bounding box in a slot.\n         * The coordinate system of the point is the inner coordinate system of the armature.\n         * Custom bounding boxes need to be customized in Dragonbones Pro.\n         * @param x - The horizontal coordinate of the point.\n         * @param y - The vertical coordinate of the point.\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 检查特定点是否在某个插槽的自定义边界框内。\n         * 点的坐标系为骨架内坐标系。\n         * 自定义边界框需要在 DragonBones Pro 中自定义。\n         * @param x - 点的水平坐标。\n         * @param y - 点的垂直坐标。\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        containsPoint(x: number, y: number): Slot | null;\n        /**\n         * - Check whether a specific segment intersects a custom bounding box for a slot in the armature.\n         * The coordinate system of the segment and intersection is the inner coordinate system of the armature.\n         * Custom bounding boxes need to be customized in Dragonbones Pro.\n         * @param xA - The horizontal coordinate of the beginning of the segment.\n         * @param yA - The vertical coordinate of the beginning of the segment.\n         * @param xB - The horizontal coordinate of the end point of the segment.\n         * @param yB - The vertical coordinate of the end point of the segment.\n         * @param intersectionPointA - The first intersection at which a line segment intersects the bounding box from the beginning to the end. (If not set, the intersection point will not calculated)\n         * @param intersectionPointB - The first intersection at which a line segment intersects the bounding box from the end to the beginning. (If not set, the intersection point will not calculated)\n         * @param normalRadians - The normal radians of the tangent of the intersection boundary box. [x: Normal radian of the first intersection tangent, y: Normal radian of the second intersection tangent] (If not set, the normal will not calculated)\n         * @returns The slot of the first custom bounding box where the segment intersects from the start point to the end point.\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 检查特定线段是否与骨架的某个插槽的自定义边界框相交。\n         * 线段和交点的坐标系均为骨架内坐标系。\n         * 自定义边界框需要在 DragonBones Pro 中自定义。\n         * @param xA - 线段起点的水平坐标。\n         * @param yA - 线段起点的垂直坐标。\n         * @param xB - 线段终点的水平坐标。\n         * @param yB - 线段终点的垂直坐标。\n         * @param intersectionPointA - 线段从起点到终点与边界框相交的第一个交点。 （如果未设置，则不计算交点）\n         * @param intersectionPointB - 线段从终点到起点与边界框相交的第一个交点。 （如果未设置，则不计算交点）\n         * @param normalRadians - 交点边界框切线的法线弧度。 [x: 第一个交点切线的法线弧度, y: 第二个交点切线的法线弧度] （如果未设置，则不计算法线）\n         * @returns 线段从起点到终点相交的第一个自定义边界框的插槽。\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: {\n            x: number;\n            y: number;\n        } | null, intersectionPointB?: {\n            x: number;\n            y: number;\n        } | null, normalRadians?: {\n            x: number;\n            y: number;\n        } | null): Slot | null;\n        /**\n         * - Get a specific bone.\n         * @param name - The bone name.\n         * @see dragonBones.Bone\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 获取特定的骨骼。\n         * @param name - 骨骼名称。\n         * @see dragonBones.Bone\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        getBone(name: string): Bone | null;\n        /**\n         * - Get a specific bone by the display.\n         * @param display - The display object.\n         * @see dragonBones.Bone\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 通过显示对象获取特定的骨骼。\n         * @param display - 显示对象。\n         * @see dragonBones.Bone\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        getBoneByDisplay(display: any): Bone | null;\n        /**\n         * - Get a specific slot.\n         * @param name - The slot name.\n         * @see dragonBones.Slot\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 获取特定的插槽。\n         * @param name - 插槽名称。\n         * @see dragonBones.Slot\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        getSlot(name: string): Slot | null;\n        /**\n         * - Get a specific slot by the display.\n         * @param display - The display object.\n         * @see dragonBones.Slot\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 通过显示对象获取特定的插槽。\n         * @param display - 显示对象。\n         * @see dragonBones.Slot\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        getSlotByDisplay(display: any): Slot | null;\n        /**\n         * @deprecated\n         */\n        addBone(value: Bone, parentName: string): void;\n        /**\n         * @deprecated\n         */\n        addSlot(value: Slot, parentName: string): void;\n        /**\n         * @private\n         */\n        addConstraint(value: Constraint): void;\n        /**\n         * @deprecated\n         */\n        removeBone(value: Bone): void;\n        /**\n         * @deprecated\n         */\n        removeSlot(value: Slot): void;\n        /**\n         * - Get all bones.\n         * @see dragonBones.Bone\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 获取所有的骨骼。\n         * @see dragonBones.Bone\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        getBones(): Array<Bone>;\n        /**\n         * - Get all slots.\n         * @see dragonBones.Slot\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 获取所有的插槽。\n         * @see dragonBones.Slot\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        getSlots(): Array<Slot>;\n        /**\n         * - Whether to flip the armature horizontally.\n         * @version DragonBones 5.5\n         * @language en_US\n         */\n        /**\n         * - 是否将骨架水平翻转。\n         * @version DragonBones 5.5\n         * @language zh_CN\n         */\n        flipX: boolean;\n        /**\n         * - Whether to flip the armature vertically.\n         * @version DragonBones 5.5\n         * @language en_US\n         */\n        /**\n         * - 是否将骨架垂直翻转。\n         * @version DragonBones 5.5\n         * @language zh_CN\n         */\n        flipY: boolean;\n        /**\n         * - The animation cache frame rate, which turns on the animation cache when the set value is greater than 0.\n         * There is a certain amount of memory overhead to improve performance by caching animation data in memory.\n         * The frame rate should not be set too high, usually with the frame rate of the animation is similar and lower than the program running frame rate.\n         * When the animation cache is turned on, some features will fail, such as the offset property of bone.\n         * @example\n         * <pre>\n         *     armature.cacheFrameRate = 24;\n         * </pre>\n         * @see dragonBones.DragonBonesData#frameRate\n         * @see dragonBones.ArmatureData#frameRate\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 动画缓存帧率，当设置的值大于 0 的时，将会开启动画缓存。\n         * 通过将动画数据缓存在内存中来提高运行性能，会有一定的内存开销。\n         * 帧率不宜设置的过高，通常跟动画的帧率相当且低于程序运行的帧率。\n         * 开启动画缓存后，某些功能将会失效，比如骨骼的 offset 属性等。\n         * @example\n         * <pre>\n         *     armature.cacheFrameRate = 24;\n         * </pre>\n         * @see dragonBones.DragonBonesData#frameRate\n         * @see dragonBones.ArmatureData#frameRate\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        cacheFrameRate: number;\n        /**\n         * - The armature name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 骨架名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly name: string;\n        /**\n         * - The armature data.\n         * @see dragonBones.ArmatureData\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 骨架数据。\n         * @see dragonBones.ArmatureData\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        readonly armatureData: ArmatureData;\n        /**\n         * - The animation player.\n         * @see dragonBones.Animation\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 动画播放器。\n         * @see dragonBones.Animation\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly animation: Animation;\n        /**\n         * @pivate\n         */\n        readonly proxy: IArmatureProxy;\n        /**\n         * - The EventDispatcher instance of the armature.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 该骨架的 EventDispatcher 实例。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        readonly eventDispatcher: IEventDispatcher;\n        /**\n         * - The display container.\n         * The display of the slot is displayed as the parent.\n         * Depending on the rendering engine, the type will be different, usually the DisplayObjectContainer type.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 显示容器实例。\n         * 插槽的显示对象都会以此显示容器为父级。\n         * 根据渲染引擎的不同，类型会不同，通常是 DisplayObjectContainer 类型。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly display: any;\n        /**\n         * @private\n         */\n        replacedTexture: any;\n        /**\n         * @inheritDoc\n         */\n        clock: WorldClock | null;\n        /**\n         * - Get the parent slot which the armature belongs to.\n         * @see dragonBones.Slot\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 该骨架所属的父插槽。\n         * @see dragonBones.Slot\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        readonly parent: Slot | null;\n        /**\n         * @deprecated\n         * @private\n         */\n        replaceTexture(texture: any): void;\n        /**\n         * - Deprecated, please refer to {@link #eventDispatcher}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #eventDispatcher}。\n         * @deprecated\n         * @language zh_CN\n         */\n        hasEventListener(type: EventStringType): boolean;\n        /**\n         * - Deprecated, please refer to {@link #eventDispatcher}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #eventDispatcher}。\n         * @deprecated\n         * @language zh_CN\n         */\n        addEventListener(type: EventStringType, listener: Function, target: any): void;\n        /**\n         * - Deprecated, please refer to {@link #eventDispatcher}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #eventDispatcher}。\n         * @deprecated\n         * @language zh_CN\n         */\n        removeEventListener(type: EventStringType, listener: Function, target: any): void;\n        /**\n         * - Deprecated, please refer to {@link #cacheFrameRate}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #cacheFrameRate}。\n         * @deprecated\n         * @language zh_CN\n         */\n        enableAnimationCache(frameRate: number): void;\n        /**\n         * - Deprecated, please refer to {@link #display}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #display}。\n         * @deprecated\n         * @language zh_CN\n         */\n        getDisplay(): any;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The base class of the transform object.\n     * @see dragonBones.Transform\n     * @version DragonBones 4.5\n     * @language en_US\n     */\n    /**\n     * - 变换对象的基类。\n     * @see dragonBones.Transform\n     * @version DragonBones 4.5\n     * @language zh_CN\n     */\n    abstract class TransformObject extends BaseObject {\n        /**\n         * @private\n         */\n        protected static readonly _helpMatrix: Matrix;\n        /**\n         * @private\n         */\n        protected static readonly _helpTransform: Transform;\n        /**\n         * @private\n         */\n        protected static readonly _helpPoint: Point;\n        /**\n         * - A matrix relative to the armature coordinate system.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 相对于骨架坐标系的矩阵。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly globalTransformMatrix: Matrix;\n        /**\n         * - A transform relative to the armature coordinate system.\n         * @see #updateGlobalTransform()\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 相对于骨架坐标系的变换。\n         * @see #updateGlobalTransform()\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly global: Transform;\n        /**\n         * - The offset transform relative to the armature or the parent bone coordinate system.\n         * @see #dragonBones.Bone#invalidUpdate()\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 相对于骨架或父骨骼坐标系的偏移变换。\n         * @see #dragonBones.Bone#invalidUpdate()\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly offset: Transform;\n        /**\n         * @private\n         */\n        origin: Transform | null;\n        /**\n         * @private\n         */\n        userData: any;\n        /**\n         * @private\n         */\n        protected _globalDirty: boolean;\n        /**\n         * @internal\n         * @private\n         */\n        _armature: Armature;\n        /**\n         * @internal\n         * @private\n         */\n        _parent: Bone;\n        /**\n         * @private\n         */\n        protected _onClear(): void;\n        /**\n         * @internal\n         * @private\n         */\n        _setArmature(value: Armature | null): void;\n        /**\n         * @internal\n         * @private\n         */\n        _setParent(value: Bone | null): void;\n        /**\n         * - For performance considerations, rotation or scale in the {@link #global} attribute of the bone or slot is not always properly accessible,\n         * some engines do not rely on these attributes to update rendering, such as Egret.\n         * The use of this method ensures that the access to the {@link #global} property is correctly rotation or scale.\n         * @example\n         * <pre>\n         *     bone.updateGlobalTransform();\n         *     let rotation = bone.global.rotation;\n         * </pre>\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 出于性能的考虑，骨骼或插槽的 {@link #global} 属性中的旋转或缩放并不总是正确可访问的，有些引擎并不依赖这些属性更新渲染，比如 Egret。\n         * 使用此方法可以保证访问到 {@link #global} 属性中正确的旋转或缩放。\n         * @example\n         * <pre>\n         *     bone.updateGlobalTransform();\n         *     let rotation = bone.global.rotation;\n         * </pre>\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        updateGlobalTransform(): void;\n        /**\n         * - The armature to which it belongs.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 所属的骨架。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly armature: Armature;\n        /**\n         * - The parent bone to which it belongs.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 所属的父骨骼。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly parent: Bone;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - Bone is one of the most important logical units in the armature animation system,\n     * and is responsible for the realization of translate, rotation, scaling in the animations.\n     * A armature can contain multiple bones.\n     * @see dragonBones.BoneData\n     * @see dragonBones.Armature\n     * @see dragonBones.Slot\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 骨骼在骨骼动画体系中是最重要的逻辑单元之一，负责动画中的平移、旋转、缩放的实现。\n     * 一个骨架中可以包含多个骨骼。\n     * @see dragonBones.BoneData\n     * @see dragonBones.Armature\n     * @see dragonBones.Slot\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class Bone extends TransformObject {\n        static toString(): string;\n        /**\n         * - The offset mode.\n         * @see #offset\n         * @version DragonBones 5.5\n         * @language en_US\n         */\n        /**\n         * - 偏移模式。\n         * @see #offset\n         * @version DragonBones 5.5\n         * @language zh_CN\n         */\n        offsetMode: OffsetMode;\n        /**\n         * @internal\n         * @private\n         */\n        readonly animationPose: Transform;\n        /**\n         * @internal\n         * @private\n         */\n        _transformDirty: boolean;\n        /**\n         * @internal\n         * @private\n         */\n        _childrenTransformDirty: boolean;\n        protected _localDirty: boolean;\n        /**\n         * @internal\n         * @private\n         */\n        _hasConstraint: boolean;\n        private _visible;\n        protected _cachedFrameIndex: number;\n        /**\n         * @internal\n         * @private\n         */\n        readonly _blendState: BlendState;\n        /**\n         * @internal\n         * @private\n         */\n        _boneData: BoneData;\n        /**\n         * @internal\n         * @private\n         */\n        _cachedFrameIndices: Array<number> | null;\n        /**\n         * @inheritDoc\n         */\n        protected _onClear(): void;\n        /**\n         * @private\n         */\n        protected _updateGlobalTransformMatrix(isCache: boolean): void;\n        /**\n         * @inheritDoc\n         */\n        _setArmature(value: Armature | null): void;\n        /**\n         * @internal\n         * @private\n         */\n        init(boneData: BoneData): void;\n        /**\n         * @internal\n         * @private\n         */\n        update(cacheFrameIndex: number): void;\n        /**\n         * @internal\n         * @private\n         */\n        updateByConstraint(): void;\n        /**\n         * - Forces the bone to update the transform in the next frame.\n         * When the bone is not animated or its animation state is finished, the bone will not continue to update,\n         * and when the skeleton must be updated for some reason, the method needs to be called explicitly.\n         * @example\n         * <pre>\n         *     let bone = armature.getBone(\"arm\");\n         *     bone.offset.scaleX = 2.0;\n         *     bone.invalidUpdate();\n         * </pre>\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 强制骨骼在下一帧更新变换。\n         * 当该骨骼没有动画状态或其动画状态播放完成时，骨骼将不在继续更新，而此时由于某些原因必须更新骨骼时，则需要显式调用该方法。\n         * @example\n         * <pre>\n         *     let bone = armature.getBone(\"arm\");\n         *     bone.offset.scaleX = 2.0;\n         *     bone.invalidUpdate();\n         * </pre>\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        invalidUpdate(): void;\n        /**\n         * - Check whether the bone contains a specific bone or slot.\n         * @see dragonBones.Bone\n         * @see dragonBones.Slot\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 检查该骨骼是否包含特定的骨骼或插槽。\n         * @see dragonBones.Bone\n         * @see dragonBones.Slot\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        contains(value: TransformObject): boolean;\n        /**\n         * - The bone data.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 骨骼数据。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        readonly boneData: BoneData;\n        /**\n         * - The visible of all slots in the bone.\n         * @default true\n         * @see dragonBones.Slot#visible\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 此骨骼所有插槽的可见。\n         * @default true\n         * @see dragonBones.Slot#visible\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        visible: boolean;\n        /**\n         * - The bone name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 骨骼名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly name: string;\n        /**\n         * - Deprecated, please refer to {@link dragonBones.Armature#getBones()}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link dragonBones.Armature#getBones()}。\n         * @deprecated\n         * @language zh_CN\n         */\n        getBones(): Array<Bone>;\n        /**\n         * - Deprecated, please refer to {@link dragonBones.Armature#getSlots()}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link dragonBones.Armature#getSlots()}。\n         * @deprecated\n         * @language zh_CN\n         */\n        getSlots(): Array<Slot>;\n        /**\n         * - Deprecated, please refer to {@link dragonBones.Armature#getSlot()}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link dragonBones.Armature#getSlot()}。\n         * @deprecated\n         * @language zh_CN\n         */\n        readonly slot: Slot | null;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * @internal\n     * @private\n     */\n    class Surface extends Bone {\n        static toString(): string;\n        private _dX;\n        private _dY;\n        private _k;\n        private _kX;\n        private _kY;\n        /**\n         * For debug draw.\n         * @internal\n         * @private\n         */\n        readonly _vertices: Array<number>;\n        /**\n         * For timeline state.\n         * @internal\n         * @private\n         */\n        readonly _deformVertices: Array<number>;\n        /**\n         * x1, y1, x2, y2, x3, y3, x4, y4, d1X, d1Y, d2X, d2Y\n         */\n        private readonly _hullCache;\n        /**\n         * Inside [flag, a, b, c, d, tx, ty], Outside [flag, a, b, c, d, tx, ty]\n         */\n        private readonly _matrixCahce;\n        /**\n         * @inheritDoc\n         */\n        protected _onClear(): void;\n        private _getAffineTransform(x, y, lX, lY, aX, aY, bX, bY, cX, cY, transform, matrix, isDown);\n        private _updateVertices();\n        /**\n         * @private\n         */\n        protected _updateGlobalTransformMatrix(isCache: boolean): void;\n        _getGlobalTransformMatrix(x: number, y: number): Matrix;\n        init(surfaceData: SurfaceData): void;\n        /**\n         * @internal\n         * @private\n         */\n        update(cacheFrameIndex: number): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The slot attached to the armature, controls the display status and properties of the display object.\n     * A bone can contain multiple slots.\n     * A slot can contain multiple display objects, displaying only one of the display objects at a time,\n     * but you can toggle the display object into frame animation while the animation is playing.\n     * The display object can be a normal texture, or it can be a display of a child armature, a grid display object,\n     * and a custom other display object.\n     * @see dragonBones.Armature\n     * @see dragonBones.Bone\n     * @see dragonBones.SlotData\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 插槽附着在骨骼上，控制显示对象的显示状态和属性。\n     * 一个骨骼上可以包含多个插槽。\n     * 一个插槽中可以包含多个显示对象，同一时间只能显示其中的一个显示对象，但可以在动画播放的过程中切换显示对象实现帧动画。\n     * 显示对象可以是普通的图片纹理，也可以是子骨架的显示容器，网格显示对象，还可以是自定义的其他显示对象。\n     * @see dragonBones.Armature\n     * @see dragonBones.Bone\n     * @see dragonBones.SlotData\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    abstract class Slot extends TransformObject {\n        /**\n         * - Displays the animated state or mixed group name controlled by the object, set to null to be controlled by all animation states.\n         * @default null\n         * @see dragonBones.AnimationState#displayControl\n         * @see dragonBones.AnimationState#name\n         * @see dragonBones.AnimationState#group\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 显示对象受到控制的动画状态或混合组名称，设置为 null 则表示受所有的动画状态控制。\n         * @default null\n         * @see dragonBones.AnimationState#displayControl\n         * @see dragonBones.AnimationState#name\n         * @see dragonBones.AnimationState#group\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        displayController: string | null;\n        /**\n         * @private\n         */\n        protected _displayDirty: boolean;\n        /**\n         * @private\n         */\n        protected _zOrderDirty: boolean;\n        /**\n         * @private\n         */\n        protected _visibleDirty: boolean;\n        /**\n         * @private\n         */\n        protected _blendModeDirty: boolean;\n        /**\n         * @internal\n         * @private\n         */\n        _colorDirty: boolean;\n        /**\n         * @internal\n         * @private\n         */\n        _meshDirty: boolean;\n        /**\n         * @private\n         */\n        protected _transformDirty: boolean;\n        /**\n         * @private\n         */\n        protected _visible: boolean;\n        /**\n         * @private\n         */\n        protected _blendMode: BlendMode;\n        /**\n         * @private\n         */\n        protected _displayIndex: number;\n        /**\n         * @private\n         */\n        protected _animationDisplayIndex: number;\n        /**\n         * @internal\n         * @private\n         */\n        _zOrder: number;\n        /**\n         * @private\n         */\n        protected _cachedFrameIndex: number;\n        /**\n         * @internal\n         * @private\n         */\n        _pivotX: number;\n        /**\n         * @internal\n         * @private\n         */\n        _pivotY: number;\n        /**\n         * @private\n         */\n        protected readonly _localMatrix: Matrix;\n        /**\n         * @internal\n         * @private\n         */\n        readonly _colorTransform: ColorTransform;\n        /**\n         * @internal\n         * @private\n         */\n        readonly _deformVertices: Array<number>;\n        /**\n         * @private\n         */\n        readonly _displayDatas: Array<DisplayData | null>;\n        /**\n         * @private\n         */\n        protected readonly _displayList: Array<any | Armature>;\n        /**\n         * @private\n         */\n        protected readonly _meshBones: Array<Bone | null>;\n        /**\n         * @private\n         */\n        protected readonly _meshSlots: Array<Slot | null>;\n        /**\n         * @internal\n         * @private\n         */\n        _slotData: SlotData;\n        /**\n         * @private\n         */\n        protected _rawDisplayDatas: Array<DisplayData | null> | null;\n        /**\n         * @private\n         */\n        protected _displayData: DisplayData | null;\n        /**\n         * @private\n         */\n        protected _textureData: TextureData | null;\n        /**\n         * @internal\n         * @private\n         */\n        _meshData: MeshDisplayData | null;\n        /**\n         * @private\n         */\n        protected _boundingBoxData: BoundingBoxData | null;\n        /**\n         * @private\n         */\n        protected _rawDisplay: any;\n        /**\n         * @private\n         */\n        protected _meshDisplay: any;\n        /**\n         * @private\n         */\n        protected _display: any;\n        /**\n         * @private\n         */\n        protected _childArmature: Armature | null;\n        /**\n         * @internal\n         * @private\n         */\n        _cachedFrameIndices: Array<number> | null;\n        /**\n         * @inheritDoc\n         */\n        protected _onClear(): void;\n        /**\n         * @private\n         */\n        protected abstract _initDisplay(value: any, isRetain: boolean): void;\n        /**\n         * @private\n         */\n        protected abstract _disposeDisplay(value: any, isRelease: boolean): void;\n        /**\n         * @private\n         */\n        protected abstract _onUpdateDisplay(): void;\n        /**\n         * @private\n         */\n        protected abstract _addDisplay(): void;\n        /**\n         * @private\n         */\n        protected abstract _replaceDisplay(value: any): void;\n        /**\n         * @private\n         */\n        protected abstract _removeDisplay(): void;\n        /**\n         * @private\n         */\n        protected abstract _updateZOrder(): void;\n        /**\n         * @private\n         */\n        abstract _updateVisible(): void;\n        /**\n         * @private\n         */\n        protected abstract _updateBlendMode(): void;\n        /**\n         * @private\n         */\n        protected abstract _updateColor(): void;\n        /**\n         * @private\n         */\n        protected abstract _updateFrame(): void;\n        /**\n         * @private\n         */\n        protected abstract _updateMesh(): void;\n        /**\n         * @internal\n         * @private\n         */\n        abstract _updateGlueMesh(): void;\n        /**\n         * @private\n         */\n        protected abstract _updateTransform(): void;\n        /**\n         * @private\n         */\n        protected abstract _identityTransform(): void;\n        /**\n         * @private\n         */\n        protected _getDefaultRawDisplayData(): DisplayData | null;\n        /**\n         * @private\n         */\n        protected _updateDisplayData(): void;\n        /**\n         * @private\n         */\n        protected _updateDisplay(): void;\n        /**\n         * @private\n         */\n        protected _updateGlobalTransformMatrix(isCache: boolean): void;\n        /**\n         * @private\n         */\n        protected _isMeshBonesUpdate(): boolean;\n        /**\n         * @inheritDoc\n         */\n        _setArmature(value: Armature | null): void;\n        /**\n         * @internal\n         * @private\n         */\n        _setDisplayIndex(value: number, isAnimation?: boolean): boolean;\n        /**\n         * @internal\n         * @private\n         */\n        _setZorder(value: number): boolean;\n        /**\n         * @internal\n         * @private\n         */\n        _setColor(value: ColorTransform): boolean;\n        /**\n         * @internal\n         * @private\n         */\n        _setDisplayList(value: Array<any> | null): boolean;\n        /**\n         * @internal\n         * @private\n         */\n        init(slotData: SlotData, displayDatas: Array<DisplayData | null> | null, rawDisplay: any, meshDisplay: any): void;\n        /**\n         * @internal\n         * @private\n         */\n        update(cacheFrameIndex: number): void;\n        /**\n         * @private\n         */\n        updateTransformAndMatrix(): void;\n        /**\n         * @private\n         */\n        replaceDisplayData(value: DisplayData | null, displayIndex?: number): void;\n        /**\n         * - Check whether a specific point is inside a custom bounding box in the slot.\n         * The coordinate system of the point is the inner coordinate system of the armature.\n         * Custom bounding boxes need to be customized in Dragonbones Pro.\n         * @param x - The horizontal coordinate of the point.\n         * @param y - The vertical coordinate of the point.\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 检查特定点是否在插槽的自定义边界框内。\n         * 点的坐标系为骨架内坐标系。\n         * 自定义边界框需要在 DragonBones Pro 中自定义。\n         * @param x - 点的水平坐标。\n         * @param y - 点的垂直坐标。\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        containsPoint(x: number, y: number): boolean;\n        /**\n         * - Check whether a specific segment intersects a custom bounding box for the slot.\n         * The coordinate system of the segment and intersection is the inner coordinate system of the armature.\n         * Custom bounding boxes need to be customized in Dragonbones Pro.\n         * @param xA - The horizontal coordinate of the beginning of the segment.\n         * @param yA - The vertical coordinate of the beginning of the segment.\n         * @param xB - The horizontal coordinate of the end point of the segment.\n         * @param yB - The vertical coordinate of the end point of the segment.\n         * @param intersectionPointA - The first intersection at which a line segment intersects the bounding box from the beginning to the end. (If not set, the intersection point will not calculated)\n         * @param intersectionPointB - The first intersection at which a line segment intersects the bounding box from the end to the beginning. (If not set, the intersection point will not calculated)\n         * @param normalRadians - The normal radians of the tangent of the intersection boundary box. [x: Normal radian of the first intersection tangent, y: Normal radian of the second intersection tangent] (If not set, the normal will not calculated)\n         * @returns Intersection situation. [1: Disjoint and segments within the bounding box, 0: Disjoint, 1: Intersecting and having a nodal point and ending in the bounding box, 2: Intersecting and having a nodal point and starting at the bounding box, 3: Intersecting and having two intersections, N: Intersecting and having N intersections]\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 检查特定线段是否与插槽的自定义边界框相交。\n         * 线段和交点的坐标系均为骨架内坐标系。\n         * 自定义边界框需要在 DragonBones Pro 中自定义。\n         * @param xA - 线段起点的水平坐标。\n         * @param yA - 线段起点的垂直坐标。\n         * @param xB - 线段终点的水平坐标。\n         * @param yB - 线段终点的垂直坐标。\n         * @param intersectionPointA - 线段从起点到终点与边界框相交的第一个交点。 （如果未设置，则不计算交点）\n         * @param intersectionPointB - 线段从终点到起点与边界框相交的第一个交点。 （如果未设置，则不计算交点）\n         * @param normalRadians - 交点边界框切线的法线弧度。 [x: 第一个交点切线的法线弧度, y: 第二个交点切线的法线弧度] （如果未设置，则不计算法线）\n         * @returns 相交的情况。 [-1: 不相交且线段在包围盒内, 0: 不相交, 1: 相交且有一个交点且终点在包围盒内, 2: 相交且有一个交点且起点在包围盒内, 3: 相交且有两个交点, N: 相交且有 N 个交点]\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: {\n            x: number;\n            y: number;\n        } | null, intersectionPointB?: {\n            x: number;\n            y: number;\n        } | null, normalRadians?: {\n            x: number;\n            y: number;\n        } | null): number;\n        /**\n         * - Forces the slot to update the state of the display object in the next frame.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 强制插槽在下一帧更新显示对象的状态。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        invalidUpdate(): void;\n        /**\n         * - The visible of slot's display object.\n         * @default true\n         * @version DragonBones 5.6\n         * @language en_US\n         */\n        /**\n         * - 插槽的显示对象的可见。\n         * @default true\n         * @version DragonBones 5.6\n         * @language zh_CN\n         */\n        visible: boolean;\n        /**\n         * - The index of the display object displayed in the display list.\n         * @example\n         * <pre>\n         *     let slot = armature.getSlot(\"weapon\");\n         *     slot.displayIndex = 3;\n         *     slot.displayController = \"none\";\n         * </pre>\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 此时显示的显示对象在显示列表中的索引。\n         * @example\n         * <pre>\n         *     let slot = armature.getSlot(\"weapon\");\n         *     slot.displayIndex = 3;\n         *     slot.displayController = \"none\";\n         * </pre>\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        displayIndex: number;\n        /**\n         * - The slot name.\n         * @see dragonBones.SlotData#name\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 插槽名称。\n         * @see dragonBones.SlotData#name\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly name: string;\n        /**\n         * - Contains a display list of display objects or child armatures.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 包含显示对象或子骨架的显示列表。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        displayList: Array<any>;\n        /**\n         * - The slot data.\n         * @see dragonBones.SlotData\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 插槽数据。\n         * @see dragonBones.SlotData\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        readonly slotData: SlotData;\n        /**\n         * @private\n         */\n        rawDisplayDatas: Array<DisplayData | null> | null;\n        /**\n         * - The custom bounding box data for the slot at current time.\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 插槽此时的自定义包围盒数据。\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        readonly boundingBoxData: BoundingBoxData | null;\n        /**\n         * @private\n         */\n        readonly rawDisplay: any;\n        /**\n         * @private\n         */\n        readonly meshDisplay: any;\n        /**\n         * - The display object that the slot displays at this time.\n         * @example\n         * <pre>\n         *     let slot = armature.getSlot(\"text\");\n         *     slot.display = new yourEngine.TextField();\n         * </pre>\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 插槽此时显示的显示对象。\n         * @example\n         * <pre>\n         *     let slot = armature.getSlot(\"text\");\n         *     slot.display = new yourEngine.TextField();\n         * </pre>\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        display: any;\n        /**\n         * - The child armature that the slot displayed at current time.\n         * @example\n         * <pre>\n         *     let slot = armature.getSlot(\"weapon\");\n         *     slot.childArmature = factory.buildArmature(\"weapon_blabla\", \"weapon_blabla_project\");\n         * </pre>\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 插槽此时显示的子骨架。\n         * @example\n         * <pre>\n         *     let slot = armature.getSlot(\"weapon\");\n         *     slot.childArmature = factory.buildArmature(\"weapon_blabla\", \"weapon_blabla_project\");\n         * </pre>\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        childArmature: Armature | null;\n        /**\n         * - Deprecated, please refer to {@link #display}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #display}。\n         * @deprecated\n         * @language zh_CN\n         */\n        getDisplay(): any;\n        /**\n         * - Deprecated, please refer to {@link #display}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #display}。\n         * @deprecated\n         * @language zh_CN\n         */\n        setDisplay(value: any): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * @internal\n     * @private\n     */\n    abstract class Constraint extends BaseObject {\n        protected static readonly _helpMatrix: Matrix;\n        protected static readonly _helpTransform: Transform;\n        protected static readonly _helpPoint: Point;\n        /**\n         * - For timeline state.\n         * @internal\n         */\n        _constraintData: ConstraintData;\n        protected _armature: Armature;\n        /**\n         * - For sort bones.\n         * @internal\n         */\n        _target: Bone;\n        /**\n         * - For sort bones.\n         * @internal\n         */\n        _root: Bone;\n        protected _bone: Bone | null;\n        protected _onClear(): void;\n        abstract init(constraintData: ConstraintData, armature: Armature): void;\n        abstract update(): void;\n        abstract invalidUpdate(): void;\n        readonly name: string;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class IKConstraint extends Constraint {\n        static toString(): string;\n        private _scaleEnabled;\n        /**\n         * - For timeline state.\n         * @internal\n         */\n        _bendPositive: boolean;\n        /**\n         * - For timeline state.\n         * @internal\n         */\n        _weight: number;\n        protected _onClear(): void;\n        private _computeA();\n        private _computeB();\n        init(constraintData: ConstraintData, armature: Armature): void;\n        update(): void;\n        invalidUpdate(): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - Play animation interface. (Both Armature and Wordclock implement the interface)\n     * Any instance that implements the interface can be added to the Worldclock instance and advance time by Worldclock instance uniformly.\n     * @see dragonBones.WorldClock\n     * @see dragonBones.Armature\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 播放动画接口。 (Armature 和 WordClock 都实现了该接口)\n     * 任何实现了此接口的实例都可以添加到 WorldClock 实例中，由 WorldClock 实例统一更新时间。\n     * @see dragonBones.WorldClock\n     * @see dragonBones.Armature\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    interface IAnimatable {\n        /**\n         * - Advance time.\n         * @param passedTime - Passed time. (In seconds)\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 更新时间。\n         * @param passedTime - 前进的时间。 （以秒为单位）\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        advanceTime(passedTime: number): void;\n        /**\n         * - The Wordclock instance to which the current belongs.\n         * @example\n         * <pre>\n         *     armature.clock = factory.clock; // Add armature to clock.\n         *     armature.clock = null; // Remove armature from clock.\n         * </pre>\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 当前所属的 WordClock 实例。\n         * @example\n         * <pre>\n         *     armature.clock = factory.clock; // 将骨架添加到时钟。\n         *     armature.clock = null; // 将骨架从时钟移除。\n         * </pre>\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        clock: WorldClock | null;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - Worldclock provides clock support for animations, advance time for each IAnimatable object added to the instance.\n     * @see dragonBones.IAnimateble\n     * @see dragonBones.Armature\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - WorldClock 对动画提供时钟支持，为每个加入到该实例的 IAnimatable 对象更新时间。\n     * @see dragonBones.IAnimateble\n     * @see dragonBones.Armature\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class WorldClock implements IAnimatable {\n        /**\n         * - Current time. (In seconds)\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 当前的时间。 (以秒为单位)\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        time: number;\n        /**\n         * - The play speed, used to control animation speed-shift play.\n         * [0: Stop play, (0~1): Slow play, 1: Normal play, (1~N): Fast play]\n         * @default 1.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 播放速度，用于控制动画变速播放。\n         * [0: 停止播放, (0~1): 慢速播放, 1: 正常播放, (1~N): 快速播放]\n         * @default 1.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        timeScale: number;\n        private readonly _animatebles;\n        private _clock;\n        /**\n         * - Creating a Worldclock instance. Typically, you do not need to create Worldclock instance.\n         * When multiple Worldclock instances are running at different speeds, can achieving some specific animation effects, such as bullet time.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 创建一个 WorldClock 实例。通常并不需要创建 WorldClock 实例。\n         * 当多个 WorldClock 实例使用不同的速度运行时，可以实现一些特殊的动画效果，比如子弹时间等。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        constructor(time?: number);\n        /**\n         * - Advance time for all IAnimatable instances.\n         * @param passedTime - Passed time. [-1: Automatically calculates the time difference between the current frame and the previous frame, [0~N): Passed time] (In seconds)\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 为所有的 IAnimatable 实例更新时间。\n         * @param passedTime - 前进的时间。 [-1: 自动计算当前帧与上一帧的时间差, [0~N): 前进的时间] (以秒为单位)\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        advanceTime(passedTime: number): void;\n        /**\n         * - Check whether contains a specific instance of IAnimatable.\n         * @param value - The IAnimatable instance.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 检查是否包含特定的 IAnimatable 实例。\n         * @param value - IAnimatable 实例。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        contains(value: IAnimatable): boolean;\n        /**\n         * - Add IAnimatable instance.\n         * @param value - The IAnimatable instance.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 添加 IAnimatable 实例。\n         * @param value - IAnimatable 实例。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        add(value: IAnimatable): void;\n        /**\n         * - Removes a specified IAnimatable instance.\n         * @param value - The IAnimatable instance.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 移除特定的 IAnimatable 实例。\n         * @param value - IAnimatable 实例。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        remove(value: IAnimatable): void;\n        /**\n         * - Clear all IAnimatable instances.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 清除所有的 IAnimatable 实例。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        clear(): void;\n        /**\n         * @inheritDoc\n         */\n        clock: WorldClock | null;\n        /**\n         * - Deprecated, please refer to {@link dragonBones.BaseFactory#clock}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link dragonBones.BaseFactory#clock}。\n         * @deprecated\n         * @language zh_CN\n         */\n        static readonly clock: WorldClock;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The animation player is used to play the animation data and manage the animation states.\n     * @see dragonBones.AnimationData\n     * @see dragonBones.AnimationState\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 动画播放器用来播放动画数据和管理动画状态。\n     * @see dragonBones.AnimationData\n     * @see dragonBones.AnimationState\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class Animation extends BaseObject {\n        static toString(): string;\n        /**\n         * - The play speed of all animations. [0: Stop, (0~1): Slow, 1: Normal, (1~N): Fast]\n         * @default 1.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 所有动画的播放速度。 [0: 停止播放, (0~1): 慢速播放, 1: 正常播放, (1~N): 快速播放]\n         * @default 1.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        timeScale: number;\n        private _lockUpdate;\n        private _animationDirty;\n        private _inheritTimeScale;\n        private readonly _animationNames;\n        private readonly _animationStates;\n        private readonly _animations;\n        private _armature;\n        private _animationConfig;\n        private _lastAnimationState;\n        /**\n         * @private\n         */\n        protected _onClear(): void;\n        private _fadeOut(animationConfig);\n        /**\n         * @internal\n         * @private\n         */\n        init(armature: Armature): void;\n        /**\n         * @internal\n         * @private\n         */\n        advanceTime(passedTime: number): void;\n        /**\n         * - Clear all animations states.\n         * @see dragonBones.AnimationState\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 清除所有的动画状态。\n         * @see dragonBones.AnimationState\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        reset(): void;\n        /**\n         * - Pause a specific animation state.\n         * @param animationName - The name of animation state. (If not set, it will pause all animations)\n         * @see dragonBones.AnimationState\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 暂停指定动画状态的播放。\n         * @param animationName - 动画状态名称。 （如果未设置，则暂停所有动画）\n         * @see dragonBones.AnimationState\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        stop(animationName?: string | null): void;\n        /**\n         * - Play animation with a specific animation config.\n         * The API is still in the experimental phase and may encounter bugs or stability or compatibility issues when used.\n         * @param animationConfig - The animation config.\n         * @returns The playing animation state.\n         * @see dragonBones.AnimationConfig\n         * @beta\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 通过指定的动画配置来播放动画。\n         * 该 API 仍在实验阶段，使用时可能遭遇 bug 或稳定性或兼容性问题。\n         * @param animationConfig - 动画配置。\n         * @returns 播放的动画状态。\n         * @see dragonBones.AnimationConfig\n         * @beta\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        playConfig(animationConfig: AnimationConfig): AnimationState | null;\n        /**\n         * - Play a specific animation.\n         * @param animationName - The name of animation data. (If not set, The default animation will be played, or resume the animation playing from pause status, or replay the last playing animation)\n         * @param playTimes - Playing repeat times. [-1: Use default value of the animation data, 0: No end loop playing, [1~N]: Repeat N times] (default: -1)\n         * @returns The playing animation state.\n         * @example\n         * <pre>\n         *     armature.animation.play(\"walk\");\n         * </pre>\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 播放指定动画。\n         * @param animationName - 动画数据名称。 （如果未设置，则播放默认动画，或将暂停状态切换为播放状态，或重新播放之前播放的动画）\n         * @param playTimes - 循环播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] （默认: -1）\n         * @returns 播放的动画状态。\n         * @example\n         * <pre>\n         *     armature.animation.play(\"walk\");\n         * </pre>\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        play(animationName?: string | null, playTimes?: number): AnimationState | null;\n        /**\n         * - Fade in a specific animation.\n         * @param animationName - The name of animation data.\n         * @param fadeInTime - The fade in time. [-1: Use the default value of animation data, [0~N]: The fade in time (In seconds)] (Default: -1)\n         * @param playTimes - playing repeat times. [-1: Use the default value of animation data, 0: No end loop playing, [1~N]: Repeat N times] (Default: -1)\n         * @param layer - The blending layer, the animation states in high level layer will get the blending weights with high priority, when the total blending weights are more than 1.0, there will be no more weights can be allocated to the other animation states. (Default: 0)\n         * @param group - The blending group name, it is typically used to specify the substitution of multiple animation states blending. (Default: null)\n         * @param fadeOutMode - The fade out mode, which is typically used to specify alternate mode of multiple animation states blending. (Default: AnimationFadeOutMode.SameLayerAndGroup)\n         * @returns The playing animation state.\n         * @example\n         * <pre>\n         *     armature.animation.fadeIn(\"walk\", 0.3, 0, 0, \"normalGroup\").resetToPose = false;\n         *     armature.animation.fadeIn(\"attack\", 0.3, 1, 0, \"attackGroup\").resetToPose = false;\n         * </pre>\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 淡入播放指定的动画。\n         * @param animationName - 动画数据名称。\n         * @param fadeInTime - 淡入时间。 [-1: 使用动画数据默认值, [0~N]: 淡入时间 (以秒为单位)] （默认: -1）\n         * @param playTimes - 播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] （默认: -1）\n         * @param layer - 混合图层，图层高的动画状态会优先获取混合权重，当混合权重分配总和超过 1.0 时，剩余的动画状态将不能再获得权重分配。 （默认: 0）\n         * @param group - 混合组名称，该属性通常用来指定多个动画状态混合时的相互替换关系。 （默认: null）\n         * @param fadeOutMode - 淡出模式，该属性通常用来指定多个动画状态混合时的相互替换模式。 （默认: AnimationFadeOutMode.SameLayerAndGroup）\n         * @returns 播放的动画状态。\n         * @example\n         * <pre>\n         *     armature.animation.fadeIn(\"walk\", 0.3, 0, 0, \"normalGroup\").resetToPose = false;\n         *     armature.animation.fadeIn(\"attack\", 0.3, 1, 0, \"attackGroup\").resetToPose = false;\n         * </pre>\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        fadeIn(animationName: string, fadeInTime?: number, playTimes?: number, layer?: number, group?: string | null, fadeOutMode?: AnimationFadeOutMode): AnimationState | null;\n        /**\n         * - Play a specific animation from the specific time.\n         * @param animationName - The name of animation data.\n         * @param time - The start time point of playing. (In seconds)\n         * @param playTimes - Playing repeat times. [-1: Use the default value of animation data, 0: No end loop playing, [1~N]: Repeat N times] (Default: -1)\n         * @returns The played animation state.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 从指定时间开始播放指定的动画。\n         * @param animationName - 动画数据名称。\n         * @param time - 播放开始的时间。 (以秒为单位)\n         * @param playTimes - 循环播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] （默认: -1）\n         * @returns 播放的动画状态。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        gotoAndPlayByTime(animationName: string, time?: number, playTimes?: number): AnimationState | null;\n        /**\n         * - Play a specific animation from the specific frame.\n         * @param animationName - The name of animation data.\n         * @param frame - The start frame of playing.\n         * @param playTimes - Playing repeat times. [-1: Use the default value of animation data, 0: No end loop playing, [1~N]: Repeat N times] (Default: -1)\n         * @returns The played animation state.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 从指定帧开始播放指定的动画。\n         * @param animationName - 动画数据名称。\n         * @param frame - 播放开始的帧数。\n         * @param playTimes - 播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] （默认: -1）\n         * @returns 播放的动画状态。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        gotoAndPlayByFrame(animationName: string, frame?: number, playTimes?: number): AnimationState | null;\n        /**\n         * - Play a specific animation from the specific progress.\n         * @param animationName - The name of animation data.\n         * @param progress - The start progress value of playing.\n         * @param playTimes - Playing repeat times. [-1: Use the default value of animation data, 0: No end loop playing, [1~N]: Repeat N times] (Default: -1)\n         * @returns The played animation state.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 从指定进度开始播放指定的动画。\n         * @param animationName - 动画数据名称。\n         * @param progress - 开始播放的进度。\n         * @param playTimes - 播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] （默认: -1）\n         * @returns 播放的动画状态。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        gotoAndPlayByProgress(animationName: string, progress?: number, playTimes?: number): AnimationState | null;\n        /**\n         * - Stop a specific animation at the specific time.\n         * @param animationName - The name of animation data.\n         * @param time - The stop time. (In seconds)\n         * @returns The played animation state.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 在指定时间停止指定动画播放\n         * @param animationName - 动画数据名称。\n         * @param time - 停止的时间。 (以秒为单位)\n         * @returns 播放的动画状态。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        gotoAndStopByTime(animationName: string, time?: number): AnimationState | null;\n        /**\n         * - Stop a specific animation at the specific frame.\n         * @param animationName - The name of animation data.\n         * @param frame - The stop frame.\n         * @returns The played animation state.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 在指定帧停止指定动画的播放\n         * @param animationName - 动画数据名称。\n         * @param frame - 停止的帧数。\n         * @returns 播放的动画状态。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        gotoAndStopByFrame(animationName: string, frame?: number): AnimationState | null;\n        /**\n         * - Stop a specific animation at the specific progress.\n         * @param animationName - The name of animation data.\n         * @param progress - The stop progress value.\n         * @returns The played animation state.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 在指定的进度停止指定的动画播放。\n         * @param animationName - 动画数据名称。\n         * @param progress - 停止进度。\n         * @returns 播放的动画状态。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        gotoAndStopByProgress(animationName: string, progress?: number): AnimationState | null;\n        /**\n         * - Get a specific animation state.\n         * @param animationName - The name of animation state.\n         * @example\n         * <pre>\n         *     armature.animation.play(\"walk\");\n         *     let walkState = armature.animation.getState(\"walk\");\n         *     walkState.timeScale = 0.5;\n         * </pre>\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 获取指定的动画状态\n         * @param animationName - 动画状态名称。\n         * @example\n         * <pre>\n         *     armature.animation.play(\"walk\");\n         *     let walkState = armature.animation.getState(\"walk\");\n         *     walkState.timeScale = 0.5;\n         * </pre>\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        getState(animationName: string): AnimationState | null;\n        /**\n         * - Check whether a specific animation data is included.\n         * @param animationName - The name of animation data.\n         * @see dragonBones.AnimationData\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 检查是否包含指定的动画数据\n         * @param animationName - 动画数据名称。\n         * @see dragonBones.AnimationData\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        hasAnimation(animationName: string): boolean;\n        /**\n         * - Get all the animation states.\n         * @version DragonBones 5.1\n         * @language en_US\n         */\n        /**\n         * - 获取所有的动画状态\n         * @version DragonBones 5.1\n         * @language zh_CN\n         */\n        getStates(): Array<AnimationState>;\n        /**\n         * - Check whether there is an animation state is playing\n         * @see dragonBones.AnimationState\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 检查是否有动画状态正在播放\n         * @see dragonBones.AnimationState\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly isPlaying: boolean;\n        /**\n         * - Check whether all the animation states' playing were finished.\n         * @see dragonBones.AnimationState\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 检查是否所有的动画状态均已播放完毕。\n         * @see dragonBones.AnimationState\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly isCompleted: boolean;\n        /**\n         * - The name of the last playing animation state.\n         * @see #lastAnimationState\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 上一个播放的动画状态名称\n         * @see #lastAnimationState\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly lastAnimationName: string;\n        /**\n         * - The name of all animation data\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 所有动画数据的名称\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        readonly animationNames: Array<string>;\n        /**\n         * - All animation data.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 所有的动画数据。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        animations: Map<AnimationData>;\n        /**\n         * - An AnimationConfig instance that can be used quickly.\n         * @see dragonBones.AnimationConfig\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 一个可以快速使用的动画配置实例。\n         * @see dragonBones.AnimationConfig\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        readonly animationConfig: AnimationConfig;\n        /**\n         * - The last playing animation state\n         * @see dragonBones.AnimationState\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 上一个播放的动画状态\n         * @see dragonBones.AnimationState\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly lastAnimationState: AnimationState | null;\n        /**\n         * - Deprecated, please refer to {@link #play()} {@link #fadeIn()}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #play()} {@link #fadeIn()}。\n         * @deprecated\n         * @language zh_CN\n         */\n        gotoAndPlay(animationName: string, fadeInTime?: number, duration?: number, playTimes?: number, layer?: number, group?: string | null, fadeOutMode?: AnimationFadeOutMode, pauseFadeOut?: boolean, pauseFadeIn?: boolean): AnimationState | null;\n        /**\n         * - Deprecated, please refer to {@link #gotoAndStopByTime()}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #gotoAndStopByTime()}。\n         * @deprecated\n         * @language zh_CN\n         */\n        gotoAndStop(animationName: string, time?: number): AnimationState | null;\n        /**\n         * - Deprecated, please refer to {@link #animationNames}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #animationNames}。\n         * @deprecated\n         * @language zh_CN\n         */\n        readonly animationList: Array<string>;\n        /**\n         * - Deprecated, please refer to {@link #animationNames}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #animationNames}。\n         * @deprecated\n         * @language zh_CN\n         */\n        readonly animationDataList: Array<AnimationData>;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The animation state is generated when the animation data is played.\n     * @see dragonBones.Animation\n     * @see dragonBones.AnimationData\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 动画状态由播放动画数据时产生。\n     * @see dragonBones.Animation\n     * @see dragonBones.AnimationData\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    class AnimationState extends BaseObject {\n        static toString(): string;\n        /**\n         * @private\n         */\n        actionEnabled: boolean;\n        /**\n         * @private\n         */\n        additiveBlending: boolean;\n        /**\n         * - Whether the animation state has control over the display object properties of the slots.\n         * Sometimes blend a animation state does not want it to control the display object properties of the slots,\n         * especially if other animation state are controlling the display object properties of the slots.\n         * @default true\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 动画状态是否对插槽的显示对象属性有控制权。\n         * 有时混合一个动画状态并不希望其控制插槽的显示对象属性，\n         * 尤其是其他动画状态正在控制这些插槽的显示对象属性时。\n         * @default true\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        displayControl: boolean;\n        /**\n         * - Whether to reset the objects without animation to the armature pose when the animation state is start to play.\n         * This property should usually be set to false when blend multiple animation states.\n         * @default true\n         * @version DragonBones 5.1\n         * @language en_US\n         */\n        /**\n         * - 开始播放动画状态时是否将没有动画的对象重置为骨架初始值。\n         * 通常在混合多个动画状态时应该将该属性设置为 false。\n         * @default true\n         * @version DragonBones 5.1\n         * @language zh_CN\n         */\n        resetToPose: boolean;\n        /**\n         * - The play times. [0: Loop play, [1~N]: Play N times]\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 播放次数。 [0: 无限循环播放, [1~N]: 循环播放 N 次]\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        playTimes: number;\n        /**\n         * - The blend layer.\n         * High layer animation state will get the blend weight first.\n         * When the blend weight is assigned more than 1, the remaining animation states will no longer get the weight assigned.\n         * @readonly\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 混合图层。\n         * 图层高的动画状态会优先获取混合权重。\n         * 当混合权重分配超过 1 时，剩余的动画状态将不再获得权重分配。\n         * @readonly\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        layer: number;\n        /**\n         * - The play speed.\n         * The value is an overlay relationship with {@link dragonBones.Animation#timeScale}.\n         * [(-N~0): Reverse play, 0: Stop play, (0~1): Slow play, 1: Normal play, (1~N): Fast play]\n         * @default 1.0\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 播放速度。\n         * 该值与 {@link dragonBones.Animation#timeScale} 是叠加关系。\n         * [(-N~0): 倒转播放, 0: 停止播放, (0~1): 慢速播放, 1: 正常播放, (1~N): 快速播放]\n         * @default 1.0\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        timeScale: number;\n        /**\n         * - The blend weight.\n         * @default 1.0\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 混合权重。\n         * @default 1.0\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        weight: number;\n        /**\n         * - The auto fade out time when the animation state play completed.\n         * [-1: Do not fade out automatically, [0~N]: The fade out time] (In seconds)\n         * @default -1.0\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 动画状态播放完成后的自动淡出时间。\n         * [-1: 不自动淡出, [0~N]: 淡出时间] （以秒为单位）\n         * @default -1.0\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        autoFadeOutTime: number;\n        /**\n         * @private\n         */\n        fadeTotalTime: number;\n        /**\n         * - The name of the animation state. (Can be different from the name of the animation data)\n         * @readonly\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 动画状态名称。 （可以不同于动画数据）\n         * @readonly\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        name: string;\n        /**\n         * - The blend group name of the animation state.\n         * This property is typically used to specify the substitution of multiple animation states blend.\n         * @readonly\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 混合组名称。\n         * 该属性通常用来指定多个动画状态混合时的相互替换关系。\n         * @readonly\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        group: string;\n        private _timelineDirty;\n        /**\n         * - xx: Play Enabled, Fade Play Enabled\n         * @internal\n         * @private\n         */\n        _playheadState: number;\n        /**\n         * -1: Fade in, 0: Fade complete, 1: Fade out;\n         * @internal\n         * @private\n         */\n        _fadeState: number;\n        /**\n         * -1: Fade start, 0: Fading, 1: Fade complete;\n         * @internal\n         * @private\n         */\n        _subFadeState: number;\n        /**\n         * @internal\n         * @private\n         */\n        _position: number;\n        /**\n         * @internal\n         * @private\n         */\n        _duration: number;\n        private _fadeTime;\n        private _time;\n        /**\n         * @internal\n         * @private\n         */\n        _fadeProgress: number;\n        /**\n         * @internal\n         * @private\n         */\n        _weightResult: number;\n        /**\n         * @internal\n         * @private\n         */\n        readonly _blendState: BlendState;\n        private readonly _boneMask;\n        private readonly _boneTimelines;\n        private readonly _surfaceTimelines;\n        private readonly _slotTimelines;\n        private readonly _constraintTimelines;\n        private readonly _animationTimelines;\n        private readonly _poseTimelines;\n        private readonly _bonePoses;\n        /**\n         * @internal\n         * @private\n         */\n        _animationData: AnimationData;\n        private _armature;\n        /**\n         * @internal\n         * @private\n         */\n        _actionTimeline: ActionTimelineState;\n        private _zOrderTimeline;\n        /**\n         * @internal\n         * @private\n         */\n        _parent: AnimationState;\n        /**\n         * @private\n         */\n        protected _onClear(): void;\n        private _updateTimelines();\n        private _updateBoneAndSlotTimelines();\n        private _advanceFadeTime(passedTime);\n        /**\n         * @internal\n         * @private\n         */\n        init(armature: Armature, animationData: AnimationData, animationConfig: AnimationConfig): void;\n        /**\n         * @internal\n         * @private\n         */\n        advanceTime(passedTime: number, cacheFrameRate: number): void;\n        /**\n         * - Continue play.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 继续播放。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        play(): void;\n        /**\n         * - Stop play.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 暂停播放。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        stop(): void;\n        /**\n         * - Fade out the animation state.\n         * @param fadeOutTime - The fade out time. (In seconds)\n         * @param pausePlayhead - Whether to pause the animation playing when fade out.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 淡出动画状态。\n         * @param fadeOutTime - 淡出时间。 （以秒为单位）\n         * @param pausePlayhead - 淡出时是否暂停播放。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        fadeOut(fadeOutTime: number, pausePlayhead?: boolean): void;\n        /**\n         * - Check if a specific bone mask is included.\n         * @param name - The bone name.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 检查是否包含特定骨骼遮罩。\n         * @param name - 骨骼名称。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        containsBoneMask(name: string): boolean;\n        /**\n         * - Add a specific bone mask.\n         * @param name - The bone name.\n         * @param recursive - Whether or not to add a mask to the bone's sub-bone.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 添加特定的骨骼遮罩。\n         * @param name - 骨骼名称。\n         * @param recursive - 是否为该骨骼的子骨骼添加遮罩。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        addBoneMask(name: string, recursive?: boolean): void;\n        /**\n         * - Remove the mask of a specific bone.\n         * @param name - The bone name.\n         * @param recursive - Whether to remove the bone's sub-bone mask.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 删除特定骨骼的遮罩。\n         * @param name - 骨骼名称。\n         * @param recursive - 是否删除该骨骼的子骨骼遮罩。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        removeBoneMask(name: string, recursive?: boolean): void;\n        /**\n         * - Remove all bone masks.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 删除所有骨骼遮罩。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        removeAllBoneMask(): void;\n        /**\n         * - Whether the animation state is fading in.\n         * @version DragonBones 5.1\n         * @language en_US\n         */\n        /**\n         * - 是否正在淡入。\n         * @version DragonBones 5.1\n         * @language zh_CN\n         */\n        readonly isFadeIn: boolean;\n        /**\n         * - Whether the animation state is fading out.\n         * @version DragonBones 5.1\n         * @language en_US\n         */\n        /**\n         * - 是否正在淡出。\n         * @version DragonBones 5.1\n         * @language zh_CN\n         */\n        readonly isFadeOut: boolean;\n        /**\n         * - Whether the animation state is fade completed.\n         * @version DragonBones 5.1\n         * @language en_US\n         */\n        /**\n         * - 是否淡入或淡出完毕。\n         * @version DragonBones 5.1\n         * @language zh_CN\n         */\n        readonly isFadeComplete: boolean;\n        /**\n         * - Whether the animation state is playing.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 是否正在播放。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly isPlaying: boolean;\n        /**\n         * - Whether the animation state is play completed.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 是否播放完毕。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly isCompleted: boolean;\n        /**\n         * - The times has been played.\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 已经循环播放的次数。\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly currentPlayTimes: number;\n        /**\n         * - The total time. (In seconds)\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 总播放时间。 （以秒为单位）\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly totalTime: number;\n        /**\n         * - The time is currently playing. (In seconds)\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 当前播放的时间。 （以秒为单位）\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        currentTime: number;\n        /**\n         * - The animation data.\n         * @see dragonBones.AnimationData\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 动画数据。\n         * @see dragonBones.AnimationData\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        readonly animationData: AnimationData;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class BonePose extends BaseObject {\n        static toString(): string;\n        readonly current: Transform;\n        readonly delta: Transform;\n        readonly result: Transform;\n        protected _onClear(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class BlendState {\n        dirty: boolean;\n        layer: number;\n        leftWeight: number;\n        layerWeight: number;\n        blendWeight: number;\n        update(weight: number, layer: number): number;\n        clear(): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * @internal\n     * @private\n     */\n    const enum TweenState {\n        None = 0,\n        Once = 1,\n        Always = 2,\n    }\n    /**\n     * @internal\n     * @private\n     */\n    abstract class TimelineState extends BaseObject {\n        playState: number;\n        currentPlayTimes: number;\n        currentTime: number;\n        protected _tweenState: TweenState;\n        protected _frameRate: number;\n        protected _frameValueOffset: number;\n        protected _frameCount: number;\n        protected _frameOffset: number;\n        protected _frameIndex: number;\n        protected _frameRateR: number;\n        protected _position: number;\n        protected _duration: number;\n        protected _timeScale: number;\n        protected _timeOffset: number;\n        protected _dragonBonesData: DragonBonesData;\n        protected _animationData: AnimationData;\n        protected _timelineData: TimelineData | null;\n        protected _armature: Armature;\n        protected _animationState: AnimationState;\n        protected _actionTimeline: TimelineState;\n        protected _frameArray: Array<number> | Int16Array;\n        protected _frameIntArray: Array<number> | Int16Array;\n        protected _frameFloatArray: Array<number> | Int16Array;\n        protected _timelineArray: Array<number> | Uint16Array;\n        protected _frameIndices: Array<number>;\n        protected _onClear(): void;\n        protected abstract _onArriveAtFrame(): void;\n        protected abstract _onUpdateFrame(): void;\n        protected _setCurrentTime(passedTime: number): boolean;\n        init(armature: Armature, animationState: AnimationState, timelineData: TimelineData | null): void;\n        fadeOut(): void;\n        update(passedTime: number): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    abstract class TweenTimelineState extends TimelineState {\n        private static _getEasingValue(tweenType, progress, easing);\n        private static _getEasingCurveValue(progress, samples, count, offset);\n        protected _tweenType: TweenType;\n        protected _curveCount: number;\n        protected _framePosition: number;\n        protected _frameDurationR: number;\n        protected _tweenProgress: number;\n        protected _tweenEasing: number;\n        protected _onClear(): void;\n        protected _onArriveAtFrame(): void;\n        protected _onUpdateFrame(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    abstract class BoneTimelineState extends TweenTimelineState {\n        bone: Bone;\n        bonePose: BonePose;\n        protected _onClear(): void;\n        blend(state: number): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    abstract class SlotTimelineState extends TweenTimelineState {\n        slot: Slot;\n        protected _onClear(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    abstract class ConstraintTimelineState extends TweenTimelineState {\n        constraint: Constraint;\n        protected _onClear(): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * @internal\n     * @private\n     */\n    class ActionTimelineState extends TimelineState {\n        static toString(): string;\n        private _onCrossFrame(frameIndex);\n        protected _onArriveAtFrame(): void;\n        protected _onUpdateFrame(): void;\n        update(passedTime: number): void;\n        setCurrentTime(value: number): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class ZOrderTimelineState extends TimelineState {\n        static toString(): string;\n        protected _onArriveAtFrame(): void;\n        protected _onUpdateFrame(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class BoneAllTimelineState extends BoneTimelineState {\n        static toString(): string;\n        protected _onArriveAtFrame(): void;\n        protected _onUpdateFrame(): void;\n        fadeOut(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class BoneTranslateTimelineState extends BoneTimelineState {\n        static toString(): string;\n        protected _onArriveAtFrame(): void;\n        protected _onUpdateFrame(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class BoneRotateTimelineState extends BoneTimelineState {\n        static toString(): string;\n        protected _onArriveAtFrame(): void;\n        protected _onUpdateFrame(): void;\n        fadeOut(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class BoneScaleTimelineState extends BoneTimelineState {\n        static toString(): string;\n        protected _onArriveAtFrame(): void;\n        protected _onUpdateFrame(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class SurfaceTimelineState extends TweenTimelineState {\n        static toString(): string;\n        surface: Surface;\n        private _frameFloatOffset;\n        private _valueCount;\n        private _deformCount;\n        private _valueOffset;\n        private readonly _current;\n        private readonly _delta;\n        private readonly _result;\n        protected _onClear(): void;\n        protected _onArriveAtFrame(): void;\n        protected _onUpdateFrame(): void;\n        init(armature: Armature, animationState: AnimationState, timelineData: TimelineData | null): void;\n        blend(state: number): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class SlotDislayTimelineState extends SlotTimelineState {\n        static toString(): string;\n        protected _onArriveAtFrame(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class SlotColorTimelineState extends SlotTimelineState {\n        static toString(): string;\n        private _dirty;\n        private readonly _current;\n        private readonly _delta;\n        private readonly _result;\n        protected _onClear(): void;\n        protected _onArriveAtFrame(): void;\n        protected _onUpdateFrame(): void;\n        fadeOut(): void;\n        update(passedTime: number): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class SlotFFDTimelineState extends SlotTimelineState {\n        static toString(): string;\n        meshOffset: number;\n        private _dirty;\n        private _frameFloatOffset;\n        private _valueCount;\n        private _deformCount;\n        private _valueOffset;\n        private readonly _current;\n        private readonly _delta;\n        private readonly _result;\n        protected _onClear(): void;\n        protected _onArriveAtFrame(): void;\n        protected _onUpdateFrame(): void;\n        init(armature: Armature, animationState: AnimationState, timelineData: TimelineData | null): void;\n        fadeOut(): void;\n        update(passedTime: number): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class IKConstraintTimelineState extends ConstraintTimelineState {\n        static toString(): string;\n        private _current;\n        private _delta;\n        protected _onClear(): void;\n        protected _onArriveAtFrame(): void;\n        protected _onUpdateFrame(): void;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class AnimationTimelineState extends TweenTimelineState {\n        static toString(): string;\n        animationState: AnimationState;\n        private readonly _floats;\n        protected _onClear(): void;\n        protected _onArriveAtFrame(): void;\n        protected _onUpdateFrame(): void;\n        blend(state: number): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - The properties of the object carry basic information about an event,\n     * which are passed as parameter or parameter's parameter to event listeners when an event occurs.\n     * @version DragonBones 4.5\n     * @language en_US\n     */\n    /**\n     * - 事件对象，包含有关事件的基本信息，当发生事件时，该实例将作为参数或参数的参数传递给事件侦听器。\n     * @version DragonBones 4.5\n     * @language zh_CN\n     */\n    class EventObject extends BaseObject {\n        /**\n         * - Animation start play.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 动画开始播放。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        static readonly START: string;\n        /**\n         * - Animation loop play complete once.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 动画循环播放完成一次。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        static readonly LOOP_COMPLETE: string;\n        /**\n         * - Animation play complete.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 动画播放完成。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        static readonly COMPLETE: string;\n        /**\n         * - Animation fade in start.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 动画淡入开始。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        static readonly FADE_IN: string;\n        /**\n         * - Animation fade in complete.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 动画淡入完成。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        static readonly FADE_IN_COMPLETE: string;\n        /**\n         * - Animation fade out start.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 动画淡出开始。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        static readonly FADE_OUT: string;\n        /**\n         * - Animation fade out complete.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 动画淡出完成。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        static readonly FADE_OUT_COMPLETE: string;\n        /**\n         * - Animation frame event.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 动画帧事件。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        static readonly FRAME_EVENT: string;\n        /**\n         * - Animation frame sound event.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 动画帧声音事件。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        static readonly SOUND_EVENT: string;\n        static toString(): string;\n        /**\n         * - If is a frame event, the value is used to describe the time that the event was in the animation timeline. (In seconds)\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 如果是帧事件，此值用来描述该事件在动画时间轴中所处的时间。（以秒为单位）\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        time: number;\n        /**\n         * - The event type。\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 事件类型。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        type: EventStringType;\n        /**\n         * - The event name. (The frame event name or the frame sound name)\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 事件名称。 (帧事件的名称或帧声音的名称)\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        name: string;\n        /**\n         * - The armature that dispatch the event.\n         * @see dragonBones.Armature\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 发出该事件的骨架。\n         * @see dragonBones.Armature\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        armature: Armature;\n        /**\n         * - The bone that dispatch the event.\n         * @see dragonBones.Bone\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 发出该事件的骨骼。\n         * @see dragonBones.Bone\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        bone: Bone | null;\n        /**\n         * - The slot that dispatch the event.\n         * @see dragonBones.Slot\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 发出该事件的插槽。\n         * @see dragonBones.Slot\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        slot: Slot | null;\n        /**\n         * - The animation state that dispatch the event.\n         * @see dragonBones.AnimationState\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 发出该事件的动画状态。\n         * @see dragonBones.AnimationState\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        animationState: AnimationState;\n        /**\n         * - The custom data.\n         * @see dragonBones.CustomData\n         * @version DragonBones 5.0\n         * @language en_US\n         */\n        /**\n         * - 自定义数据。\n         * @see dragonBones.CustomData\n         * @version DragonBones 5.0\n         * @language zh_CN\n         */\n        data: UserData | null;\n        /**\n         * @private\n         */\n        protected _onClear(): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * @private\n     */\n    type EventStringType = string | \"start\" | \"loopComplete\" | \"complete\" | \"fadeIn\" | \"fadeInComplete\" | \"fadeOut\" | \"fadeOutComplete\" | \"frameEvent\" | \"soundEvent\";\n    /**\n     * - The event dispatcher interface.\n     * Dragonbones event dispatch usually relies on docking engine to implement, which defines the event method to be implemented when docking the engine.\n     * @version DragonBones 4.5\n     * @language en_US\n     */\n    /**\n     * - 事件派发接口。\n     * DragonBones 的事件派发通常依赖于对接的引擎来实现，该接口定义了对接引擎时需要实现的事件方法。\n     * @version DragonBones 4.5\n     * @language zh_CN\n     */\n    interface IEventDispatcher {\n        /**\n         * - Checks whether the object has any listeners registered for a specific type of event。\n         * @param type - Event type.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 检查是否为特定的事件类型注册了任何侦听器。\n         * @param type - 事件类型。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        hasDBEventListener(type: EventStringType): boolean;\n        /**\n         * - Dispatches an event into the event flow.\n         * @param type - Event type.\n         * @param eventObject - Event object.\n         * @see dragonBones.EventObject\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 分派特定的事件到事件流中。\n         * @param type - 事件类型。\n         * @param eventObject - 事件数据。\n         * @see dragonBones.EventObject\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        dispatchDBEvent(type: EventStringType, eventObject: EventObject): void;\n        /**\n         * - Add an event listener object so that the listener receives notification of an event.\n         * @param type - Event type.\n         * @param listener - Event listener.\n         * @param thisObject - The listener function's \"this\".\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 添加特定事件类型的事件侦听器，以使侦听器能够接收事件通知。\n         * @param type - 事件类型。\n         * @param listener - 事件侦听器。\n         * @param thisObject - 侦听函数绑定的 this 对象。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        addDBEventListener(type: EventStringType, listener: Function, thisObject: any): void;\n        /**\n         * - Removes a listener from the object.\n         * @param type - Event type.\n         * @param listener - Event listener.\n         * @param thisObject - The listener function's \"this\".\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 删除特定事件类型的侦听器。\n         * @param type - 事件类型。\n         * @param listener - 事件侦听器。\n         * @param thisObject - 侦听函数绑定的 this 对象。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        removeDBEventListener(type: EventStringType, listener: Function, thisObject: any): void;\n        /**\n         * - Deprecated, please refer to {@link #hasDBEventListener()}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #hasDBEventListener()}。\n         * @deprecated\n         * @language zh_CN\n         */\n        hasEvent(type: EventStringType): boolean;\n        /**\n         * - Deprecated, please refer to {@link #addDBEventListener()}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #addDBEventListener()}。\n         * @deprecated\n         * @language zh_CN\n         */\n        addEvent(type: EventStringType, listener: Function, thisObject: any): void;\n        /**\n         * - Deprecated, please refer to {@link #removeDBEventListener()}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #removeDBEventListener()}。\n         * @deprecated\n         * @language zh_CN\n         */\n        removeEvent(type: EventStringType, listener: Function, thisObject: any): void;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * @internal\n     * @private\n     */\n    abstract class DataParser {\n        protected static readonly DATA_VERSION_2_3: string;\n        protected static readonly DATA_VERSION_3_0: string;\n        protected static readonly DATA_VERSION_4_0: string;\n        protected static readonly DATA_VERSION_4_5: string;\n        protected static readonly DATA_VERSION_5_0: string;\n        protected static readonly DATA_VERSION_5_5: string;\n        protected static readonly DATA_VERSION: string;\n        protected static readonly DATA_VERSIONS: Array<string>;\n        protected static readonly TEXTURE_ATLAS: string;\n        protected static readonly SUB_TEXTURE: string;\n        protected static readonly FORMAT: string;\n        protected static readonly IMAGE_PATH: string;\n        protected static readonly WIDTH: string;\n        protected static readonly HEIGHT: string;\n        protected static readonly ROTATED: string;\n        protected static readonly FRAME_X: string;\n        protected static readonly FRAME_Y: string;\n        protected static readonly FRAME_WIDTH: string;\n        protected static readonly FRAME_HEIGHT: string;\n        protected static readonly DRADON_BONES: string;\n        protected static readonly USER_DATA: string;\n        protected static readonly ARMATURE: string;\n        protected static readonly BONE: string;\n        protected static readonly SURFACE: string;\n        protected static readonly SLOT: string;\n        protected static readonly CONSTRAINT: string;\n        protected static readonly IK: string;\n        protected static readonly SKIN: string;\n        protected static readonly DISPLAY: string;\n        protected static readonly ANIMATION: string;\n        protected static readonly Z_ORDER: string;\n        protected static readonly FFD: string;\n        protected static readonly FRAME: string;\n        protected static readonly TRANSLATE_FRAME: string;\n        protected static readonly ROTATE_FRAME: string;\n        protected static readonly SCALE_FRAME: string;\n        protected static readonly DISPLAY_FRAME: string;\n        protected static readonly COLOR_FRAME: string;\n        protected static readonly DEFAULT_ACTIONS: string;\n        protected static readonly ACTIONS: string;\n        protected static readonly EVENTS: string;\n        protected static readonly INTS: string;\n        protected static readonly FLOATS: string;\n        protected static readonly STRINGS: string;\n        protected static readonly CANVAS: string;\n        protected static readonly TRANSFORM: string;\n        protected static readonly PIVOT: string;\n        protected static readonly AABB: string;\n        protected static readonly COLOR: string;\n        protected static readonly VERSION: string;\n        protected static readonly COMPATIBLE_VERSION: string;\n        protected static readonly FRAME_RATE: string;\n        protected static readonly TYPE: string;\n        protected static readonly SUB_TYPE: string;\n        protected static readonly NAME: string;\n        protected static readonly PARENT: string;\n        protected static readonly TARGET: string;\n        protected static readonly STAGE: string;\n        protected static readonly SHARE: string;\n        protected static readonly PATH: string;\n        protected static readonly LENGTH: string;\n        protected static readonly DISPLAY_INDEX: string;\n        protected static readonly BLEND_MODE: string;\n        protected static readonly INHERIT_TRANSLATION: string;\n        protected static readonly INHERIT_ROTATION: string;\n        protected static readonly INHERIT_SCALE: string;\n        protected static readonly INHERIT_REFLECTION: string;\n        protected static readonly INHERIT_ANIMATION: string;\n        protected static readonly INHERIT_DEFORM: string;\n        protected static readonly SEGMENT_X: string;\n        protected static readonly SEGMENT_Y: string;\n        protected static readonly BEND_POSITIVE: string;\n        protected static readonly CHAIN: string;\n        protected static readonly WEIGHT: string;\n        protected static readonly FADE_IN_TIME: string;\n        protected static readonly PLAY_TIMES: string;\n        protected static readonly SCALE: string;\n        protected static readonly OFFSET: string;\n        protected static readonly POSITION: string;\n        protected static readonly DURATION: string;\n        protected static readonly TWEEN_EASING: string;\n        protected static readonly TWEEN_ROTATE: string;\n        protected static readonly TWEEN_SCALE: string;\n        protected static readonly CLOCK_WISE: string;\n        protected static readonly CURVE: string;\n        protected static readonly SOUND: string;\n        protected static readonly EVENT: string;\n        protected static readonly ACTION: string;\n        protected static readonly X: string;\n        protected static readonly Y: string;\n        protected static readonly SKEW_X: string;\n        protected static readonly SKEW_Y: string;\n        protected static readonly SCALE_X: string;\n        protected static readonly SCALE_Y: string;\n        protected static readonly VALUE: string;\n        protected static readonly ROTATE: string;\n        protected static readonly SKEW: string;\n        protected static readonly ALPHA_OFFSET: string;\n        protected static readonly RED_OFFSET: string;\n        protected static readonly GREEN_OFFSET: string;\n        protected static readonly BLUE_OFFSET: string;\n        protected static readonly ALPHA_MULTIPLIER: string;\n        protected static readonly RED_MULTIPLIER: string;\n        protected static readonly GREEN_MULTIPLIER: string;\n        protected static readonly BLUE_MULTIPLIER: string;\n        protected static readonly UVS: string;\n        protected static readonly VERTICES: string;\n        protected static readonly TRIANGLES: string;\n        protected static readonly WEIGHTS: string;\n        protected static readonly SLOT_POSE: string;\n        protected static readonly BONE_POSE: string;\n        protected static readonly GLUE_WEIGHTS: string;\n        protected static readonly GLUE_MESHES: string;\n        protected static readonly GOTO_AND_PLAY: string;\n        protected static readonly DEFAULT_NAME: string;\n        protected static _getArmatureType(value: string): ArmatureType;\n        protected static _getBoneType(value: string): BoneType;\n        protected static _getDisplayType(value: string): DisplayType;\n        protected static _getBoundingBoxType(value: string): BoundingBoxType;\n        protected static _getActionType(value: string): ActionType;\n        protected static _getBlendMode(value: string): BlendMode;\n        abstract parseDragonBonesData(rawData: any, scale: number): DragonBonesData | null;\n        abstract parseTextureAtlasData(rawData: any, textureAtlasData: TextureAtlasData, scale: number): boolean;\n        /**\n         * - Deprecated, please refer to {@link dragonBones.BaseFactory#parsetTextureAtlasData()}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link dragonBones.BaseFactory#parsetTextureAtlasData()}。\n         * @deprecated\n         * @language zh_CN\n         */\n        static parseDragonBonesData(rawData: any): DragonBonesData | null;\n        /**\n         * - Deprecated, please refer to {@link dragonBones.BaseFactory#parsetTextureAtlasData()}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link dragonBones.BaseFactory#parsetTextureAtlasData()}。\n         * @deprecated\n         * @language zh_CN\n         */\n        static parseTextureAtlasData(rawData: any, scale?: number): any;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * @internal\n     * @private\n     */\n    class ObjectDataParser extends DataParser {\n        protected static _getBoolean(rawData: any, key: string, defaultValue: boolean): boolean;\n        protected static _getNumber(rawData: any, key: string, defaultValue: number): number;\n        protected static _getString(rawData: any, key: string, defaultValue: string): string;\n        protected _rawTextureAtlasIndex: number;\n        protected readonly _rawBones: Array<BoneData>;\n        protected _data: DragonBonesData;\n        protected _armature: ArmatureData;\n        protected _bone: BoneData;\n        protected _surface: SurfaceData;\n        protected _slot: SlotData;\n        protected _skin: SkinData;\n        protected _mesh: MeshDisplayData;\n        protected _animation: AnimationData;\n        protected _timeline: TimelineData;\n        protected _rawTextureAtlases: Array<any> | null;\n        private _defaultColorOffset;\n        private _prevClockwise;\n        private _prevRotation;\n        private readonly _helpMatrixA;\n        private readonly _helpMatrixB;\n        private readonly _helpTransform;\n        private readonly _helpColorTransform;\n        private readonly _helpPoint;\n        private readonly _helpArray;\n        private readonly _intArray;\n        private readonly _floatArray;\n        private readonly _frameIntArray;\n        private readonly _frameFloatArray;\n        private readonly _frameArray;\n        private readonly _timelineArray;\n        private readonly _cacheRawMeshes;\n        private readonly _cacheMeshes;\n        private readonly _actionFrames;\n        private readonly _weightSlotPose;\n        private readonly _weightBonePoses;\n        private readonly _cacheBones;\n        private readonly _slotChildActions;\n        private _getCurvePoint(x1, y1, x2, y2, x3, y3, x4, y4, t, result);\n        private _samplingEasingCurve(curve, samples);\n        private _parseActionDataInFrame(rawData, frameStart, bone, slot);\n        private _mergeActionFrame(rawData, frameStart, type, bone, slot);\n        protected _parseArmature(rawData: any, scale: number): ArmatureData;\n        protected _parseBone(rawData: any): BoneData;\n        protected _parseIKConstraint(rawData: any): ConstraintData | null;\n        protected _parseSlot(rawData: any, zOrder: number): SlotData;\n        protected _parseSkin(rawData: any): SkinData;\n        protected _parseDisplay(rawData: any): DisplayData | null;\n        protected _parsePivot(rawData: any, display: ImageDisplayData): void;\n        protected _parseMesh(rawData: any, mesh: MeshDisplayData): void;\n        protected _parseMeshGlue(rawData: any, mesh: MeshDisplayData): void;\n        protected _parseBoundingBox(rawData: any): BoundingBoxData | null;\n        protected _parsePolygonBoundingBox(rawData: any): PolygonBoundingBoxData;\n        protected _parseAnimation(rawData: any): AnimationData;\n        protected _parseTimeline(rawData: any, rawFrames: Array<any> | null, framesKey: string, type: TimelineType, addIntOffset: boolean, addFloatOffset: boolean, frameValueCount: number, frameParser: (rawData: any, frameStart: number, frameCount: number) => number): TimelineData | null;\n        protected _parseBoneTimeline(rawData: any): void;\n        protected _parseSlotTimeline(rawData: any): void;\n        protected _parseFrame(rawData: any, frameStart: number, frameCount: number): number;\n        protected _parseTweenFrame(rawData: any, frameStart: number, frameCount: number): number;\n        protected _parseActionFrame(frame: ActionFrame, frameStart: number, frameCount: number): number;\n        protected _parseZOrderFrame(rawData: any, frameStart: number, frameCount: number): number;\n        protected _parseBoneAllFrame(rawData: any, frameStart: number, frameCount: number): number;\n        protected _parseBoneTranslateFrame(rawData: any, frameStart: number, frameCount: number): number;\n        protected _parseBoneRotateFrame(rawData: any, frameStart: number, frameCount: number): number;\n        protected _parseBoneScaleFrame(rawData: any, frameStart: number, frameCount: number): number;\n        protected _parseSurfaceFrame(rawData: any, frameStart: number, frameCount: number): number;\n        protected _parseSlotDisplayFrame(rawData: any, frameStart: number, frameCount: number): number;\n        protected _parseSlotColorFrame(rawData: any, frameStart: number, frameCount: number): number;\n        protected _parseSlotFFDFrame(rawData: any, frameStart: number, frameCount: number): number;\n        protected _parseIKConstraintFrame(rawData: any, frameStart: number, frameCount: number): number;\n        protected _parseAnimationFrame(rawData: any, frameStart: number, frameCount: number): number;\n        protected _parseActionData(rawData: any, type: ActionType, bone: BoneData | null, slot: SlotData | null): Array<ActionData>;\n        protected _parseTransform(rawData: any, transform: Transform, scale: number): void;\n        protected _parseColorTransform(rawData: any, color: ColorTransform): void;\n        protected _parseArray(rawData: any): void;\n        protected _modifyArray(): void;\n        parseDragonBonesData(rawData: any, scale?: number): DragonBonesData | null;\n        parseTextureAtlasData(rawData: any, textureAtlasData: TextureAtlasData, scale?: number): boolean;\n        private static _objectDataParserInstance;\n        /**\n         * - Deprecated, please refer to {@link dragonBones.BaseFactory#parseDragonBonesData()}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link dragonBones.BaseFactory#parseDragonBonesData()}。\n         * @deprecated\n         * @language zh_CN\n         */\n        static getInstance(): ObjectDataParser;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class ActionFrame {\n        frameStart: number;\n        readonly actions: Array<number>;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * @internal\n     * @private\n     */\n    class BinaryDataParser extends ObjectDataParser {\n        private _binaryOffset;\n        private _binary;\n        private _intArrayBuffer;\n        private _floatArrayBuffer;\n        private _frameIntArrayBuffer;\n        private _frameFloatArrayBuffer;\n        private _frameArrayBuffer;\n        private _timelineArrayBuffer;\n        private _inRange(a, min, max);\n        private _decodeUTF8(data);\n        private _getUTF16Key(value);\n        private _parseBinaryTimeline(type, offset, timelineData?);\n        protected _parseMesh(rawData: any, mesh: MeshDisplayData): void;\n        protected _parseAnimation(rawData: any): AnimationData;\n        protected _parseArray(rawData: any): void;\n        parseDragonBonesData(rawData: any, scale?: number): DragonBonesData | null;\n        private static _binaryDataParserInstance;\n        /**\n         * - Deprecated, please refer to {@link dragonBones.BaseFactory#parseDragonBonesData()}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link dragonBones.BaseFactory#parseDragonBonesData()}。\n         * @deprecated\n         * @language zh_CN\n         */\n        static getInstance(): BinaryDataParser;\n    }\n}\n/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2012-2017 DragonBones team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\ndeclare namespace dragonBones {\n    /**\n     * - Base class for the factory that create the armatures. (Typically only one global factory instance is required)\n     * The factory instance create armatures by parsed and added DragonBonesData instances and TextureAtlasData instances.\n     * Once the data has been parsed, it has been cached in the factory instance and does not need to be parsed again until it is cleared by the factory instance.\n     * @see dragonBones.DragonBonesData\n     * @see dragonBones.TextureAtlasData\n     * @see dragonBones.ArmatureData\n     * @see dragonBones.Armature\n     * @version DragonBones 3.0\n     * @language en_US\n     */\n    /**\n     * - 创建骨架的工厂基类。 （通常只需要一个全局工厂实例）\n     * 工厂通过解析并添加的 DragonBonesData 实例和 TextureAtlasData 实例来创建骨架。\n     * 当数据被解析过之后，已经添加到工厂中，在没有被工厂清理之前，不需要再次解析。\n     * @see dragonBones.DragonBonesData\n     * @see dragonBones.TextureAtlasData\n     * @see dragonBones.ArmatureData\n     * @see dragonBones.Armature\n     * @version DragonBones 3.0\n     * @language zh_CN\n     */\n    abstract class BaseFactory {\n        /**\n         * @private\n         */\n        protected static _objectParser: ObjectDataParser;\n        /**\n         * @private\n         */\n        protected static _binaryParser: BinaryDataParser;\n        /**\n         * @private\n         */\n        autoSearch: boolean;\n        /**\n         * @private\n         */\n        protected readonly _dragonBonesDataMap: Map<DragonBonesData>;\n        /**\n         * @private\n         */\n        protected readonly _textureAtlasDataMap: Map<Array<TextureAtlasData>>;\n        /**\n         * @private\n         */\n        protected _dragonBones: DragonBones;\n        /**\n         * @private\n         */\n        protected _dataParser: DataParser;\n        /**\n         * - Create a factory instance. (typically only one global factory instance is required)\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 创建一个工厂实例。 （通常只需要一个全局工厂实例）\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        constructor(dataParser?: DataParser | null);\n        /**\n         * @private\n         */\n        protected _isSupportMesh(): boolean;\n        /**\n         * @private\n         */\n        protected _getTextureData(textureAtlasName: string, textureName: string): TextureData | null;\n        /**\n         * @private\n         */\n        protected _fillBuildArmaturePackage(dataPackage: BuildArmaturePackage, dragonBonesName: string, armatureName: string, skinName: string, textureAtlasName: string): boolean;\n        /**\n         * @private\n         */\n        protected _buildBones(dataPackage: BuildArmaturePackage, armature: Armature): void;\n        /**\n         * @private\n         */\n        protected _buildSlots(dataPackage: BuildArmaturePackage, armature: Armature): void;\n        /**\n         * @private\n         */\n        protected _buildChildArmature(dataPackage: BuildArmaturePackage | null, slot: Slot, displayData: DisplayData): Armature | null;\n        /**\n         * @private\n         */\n        protected _getSlotDisplay(dataPackage: BuildArmaturePackage | null, displayData: DisplayData, rawDisplayData: DisplayData | null, slot: Slot): any;\n        /**\n         * @private\n         */\n        protected abstract _buildTextureAtlasData(textureAtlasData: TextureAtlasData | null, textureAtlas: any): TextureAtlasData;\n        /**\n         * @private\n         */\n        protected abstract _buildArmature(dataPackage: BuildArmaturePackage): Armature;\n        /**\n         * @private\n         */\n        protected abstract _buildSlot(dataPackage: BuildArmaturePackage, slotData: SlotData, displays: Array<DisplayData | null> | null, armature: Armature): Slot;\n        /**\n         * - Parse the raw data to a DragonBonesData instance and cache it to the factory.\n         * @param rawData - The raw data.\n         * @param name - Specify a cache name for the instance so that the instance can be obtained through this name. (If not set, use the instance name instead)\n         * @param scale - Specify a scaling value for all armatures. (Default: 1.0)\n         * @returns DragonBonesData instance\n         * @see #getDragonBonesData()\n         * @see #addDragonBonesData()\n         * @see #removeDragonBonesData()\n         * @see dragonBones.DragonBonesData\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 将原始数据解析为 DragonBonesData 实例，并缓存到工厂中。\n         * @param rawData - 原始数据。\n         * @param name - 为该实例指定一个缓存名称，以便可以通过此名称获取该实例。 （如果未设置，则使用该实例中的名称）\n         * @param scale - 为所有的骨架指定一个缩放值。 （默认: 1.0）\n         * @returns DragonBonesData 实例\n         * @see #getDragonBonesData()\n         * @see #addDragonBonesData()\n         * @see #removeDragonBonesData()\n         * @see dragonBones.DragonBonesData\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        parseDragonBonesData(rawData: any, name?: string | null, scale?: number): DragonBonesData | null;\n        /**\n         * - Parse the raw texture atlas data and the texture atlas object to a TextureAtlasData instance and cache it to the factory.\n         * @param rawData - The raw texture atlas data.\n         * @param textureAtlas - The texture atlas object.\n         * @param name - Specify a cache name for the instance so that the instance can be obtained through this name. (If not set, use the instance name instead)\n         * @param scale - Specify a scaling value for the map set. (Default: 1.0)\n         * @returns TextureAtlasData instance\n         * @see #getTextureAtlasData()\n         * @see #addTextureAtlasData()\n         * @see #removeTextureAtlasData()\n         * @see dragonBones.TextureAtlasData\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 将原始贴图集数据和贴图集对象解析为 TextureAtlasData 实例，并缓存到工厂中。\n         * @param rawData - 原始贴图集数据。\n         * @param textureAtlas - 贴图集对象。\n         * @param name - 为该实例指定一个缓存名称，以便可以通过此名称获取该实例。 （如果未设置，则使用该实例中的名称）\n         * @param scale - 为贴图集指定一个缩放值。 （默认: 1.0）\n         * @returns TextureAtlasData 实例\n         * @see #getTextureAtlasData()\n         * @see #addTextureAtlasData()\n         * @see #removeTextureAtlasData()\n         * @see dragonBones.TextureAtlasData\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        parseTextureAtlasData(rawData: any, textureAtlas: any, name?: string | null, scale?: number): TextureAtlasData;\n        /**\n         * @private\n         */\n        updateTextureAtlasData(name: string, textureAtlases: Array<any>): void;\n        /**\n         * - Get a specific DragonBonesData instance.\n         * @param name - The DragonBonesData instance cache name.\n         * @returns DragonBonesData instance\n         * @see #parseDragonBonesData()\n         * @see #addDragonBonesData()\n         * @see #removeDragonBonesData()\n         * @see dragonBones.DragonBonesData\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 获取特定的 DragonBonesData 实例。\n         * @param name - DragonBonesData 实例的缓存名称。\n         * @returns DragonBonesData 实例\n         * @see #parseDragonBonesData()\n         * @see #addDragonBonesData()\n         * @see #removeDragonBonesData()\n         * @see dragonBones.DragonBonesData\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        getDragonBonesData(name: string): DragonBonesData | null;\n        /**\n         * - Cache a DragonBonesData instance to the factory.\n         * @param data - The DragonBonesData instance.\n         * @param name - Specify a cache name for the instance so that the instance can be obtained through this name. (if not set, use the instance name instead)\n         * @see #parseDragonBonesData()\n         * @see #getDragonBonesData()\n         * @see #removeDragonBonesData()\n         * @see dragonBones.DragonBonesData\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 将 DragonBonesData 实例缓存到工厂中。\n         * @param data - DragonBonesData 实例。\n         * @param name - 为该实例指定一个缓存名称，以便可以通过此名称获取该实例。 （如果未设置，则使用该实例中的名称）\n         * @see #parseDragonBonesData()\n         * @see #getDragonBonesData()\n         * @see #removeDragonBonesData()\n         * @see dragonBones.DragonBonesData\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        addDragonBonesData(data: DragonBonesData, name?: string | null): void;\n        /**\n         * - Remove a DragonBonesData instance.\n         * @param name - The DragonBonesData instance cache name.\n         * @param disposeData - Whether to dispose data. (Default: true)\n         * @see #parseDragonBonesData()\n         * @see #getDragonBonesData()\n         * @see #addDragonBonesData()\n         * @see dragonBones.DragonBonesData\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 移除 DragonBonesData 实例。\n         * @param name - DragonBonesData 实例缓存名称。\n         * @param disposeData - 是否释放数据。 （默认: true）\n         * @see #parseDragonBonesData()\n         * @see #getDragonBonesData()\n         * @see #addDragonBonesData()\n         * @see dragonBones.DragonBonesData\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        removeDragonBonesData(name: string, disposeData?: boolean): void;\n        /**\n         * - Get a list of specific TextureAtlasData instances.\n         * @param name - The TextureAtlasData cahce name.\n         * @see #parseTextureAtlasData()\n         * @see #addTextureAtlasData()\n         * @see #removeTextureAtlasData()\n         * @see dragonBones.TextureAtlasData\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 获取特定的 TextureAtlasData 实例列表。\n         * @param name - TextureAtlasData 实例缓存名称。\n         * @see #parseTextureAtlasData()\n         * @see #addTextureAtlasData()\n         * @see #removeTextureAtlasData()\n         * @see dragonBones.TextureAtlasData\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        getTextureAtlasData(name: string): Array<TextureAtlasData> | null;\n        /**\n         * - Cache a TextureAtlasData instance to the factory.\n         * @param data - The TextureAtlasData instance.\n         * @param name - Specify a cache name for the instance so that the instance can be obtained through this name. (if not set, use the instance name instead)\n         * @see #parseTextureAtlasData()\n         * @see #getTextureAtlasData()\n         * @see #removeTextureAtlasData()\n         * @see dragonBones.TextureAtlasData\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 将 TextureAtlasData 实例缓存到工厂中。\n         * @param data - TextureAtlasData 实例。\n         * @param name - 为该实例指定一个缓存名称，以便可以通过此名称获取该实例。 （如果未设置，则使用该实例中的名称）\n         * @see #parseTextureAtlasData()\n         * @see #getTextureAtlasData()\n         * @see #removeTextureAtlasData()\n         * @see dragonBones.TextureAtlasData\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        addTextureAtlasData(data: TextureAtlasData, name?: string | null): void;\n        /**\n         * - Remove a TextureAtlasData instance.\n         * @param name - The TextureAtlasData instance cache name.\n         * @param disposeData - Whether to dispose data.\n         * @see #parseTextureAtlasData()\n         * @see #getTextureAtlasData()\n         * @see #addTextureAtlasData()\n         * @see dragonBones.TextureAtlasData\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 移除 TextureAtlasData 实例。\n         * @param name - TextureAtlasData 实例的缓存名称。\n         * @param disposeData - 是否释放数据。\n         * @see #parseTextureAtlasData()\n         * @see #getTextureAtlasData()\n         * @see #addTextureAtlasData()\n         * @see dragonBones.TextureAtlasData\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        removeTextureAtlasData(name: string, disposeData?: boolean): void;\n        /**\n         * - Get a specific armature data.\n         * @param name - The armature data name.\n         * @param dragonBonesName - The cached name for DragonbonesData instance.\n         * @see dragonBones.ArmatureData\n         * @version DragonBones 5.1\n         * @language en_US\n         */\n        /**\n         * - 获取特定的骨架数据。\n         * @param name - 骨架数据名称。\n         * @param dragonBonesName - DragonBonesData 实例的缓存名称。\n         * @see dragonBones.ArmatureData\n         * @version DragonBones 5.1\n         * @language zh_CN\n         */\n        getArmatureData(name: string, dragonBonesName?: string): ArmatureData | null;\n        /**\n         * - Clear all cached DragonBonesData instances and TextureAtlasData instances.\n         * @param disposeData - Whether to dispose data.\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 清除缓存的所有 DragonBonesData 实例和 TextureAtlasData 实例。\n         * @param disposeData - 是否释放数据。\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        clear(disposeData?: boolean): void;\n        /**\n         * - Create a armature from cached DragonBonesData instances and TextureAtlasData instances.\n         * @param armatureName - The armature data name.\n         * @param dragonBonesName - The cached name of the DragonBonesData instance. (If not set, all DragonBonesData instances are retrieved, and when multiple DragonBonesData instances contain a the same name armature data, it may not be possible to accurately create a specific armature)\n         * @param skinName - The skin name, you can set a different ArmatureData name to share it's skin data. (If not set, use the default skin data)\n         * @returns The armature.\n         * @example\n         * <pre>\n         *     let armature = factory.buildArmature(\"armatureName\", \"dragonBonesName\");\n         *     armature.clock = factory.clock;\n         * </pre>\n         * @see dragonBones.DragonBonesData\n         * @see dragonBones.ArmatureData\n         * @see dragonBones.Armature\n         * @version DragonBones 3.0\n         * @language en_US\n         */\n        /**\n         * - 通过缓存的 DragonBonesData 实例和 TextureAtlasData 实例创建一个骨架。\n         * @param armatureName - 骨架数据名称。\n         * @param dragonBonesName - DragonBonesData 实例的缓存名称。 （如果未设置，将检索所有的 DragonBonesData 实例，当多个 DragonBonesData 实例中包含同名的骨架数据时，可能无法准确的创建出特定的骨架）\n         * @param skinName - 皮肤名称，可以设置一个其他骨架数据名称来共享其皮肤数据（如果未设置，则使用默认的皮肤数据）。\n         * @returns 骨架。\n         * @example\n         * <pre>\n         *     let armature = factory.buildArmature(\"armatureName\", \"dragonBonesName\");\n         *     armature.clock = factory.clock;\n         * </pre>\n         * @see dragonBones.DragonBonesData\n         * @see dragonBones.ArmatureData\n         * @see dragonBones.Armature\n         * @version DragonBones 3.0\n         * @language zh_CN\n         */\n        buildArmature(armatureName: string, dragonBonesName?: string, skinName?: string, textureAtlasName?: string): Armature | null;\n        /**\n         * @private\n         */\n        replaceDisplay(slot: Slot, displayData: DisplayData, displayIndex?: number): void;\n        /**\n         * - Replaces the current display data for a particular slot with a specific display data.\n         * Specify display data with \"dragonBonesName/armatureName/slotName/displayName\".\n         * @param dragonBonesName - The DragonBonesData instance cache name.\n         * @param armatureName - The armature data name.\n         * @param slotName - The slot data name.\n         * @param displayName - The display data name.\n         * @param slot - The slot.\n         * @param displayIndex - The index of the display data that is replaced. (If it is not set, replaces the current display data)\n         * @example\n         * <pre>\n         *     let slot = armature.getSlot(\"weapon\");\n         *     factory.replaceSlotDisplay(\"dragonBonesName\", \"armatureName\", \"slotName\", \"displayName\", slot);\n         * </pre>\n         * @version DragonBones 4.5\n         * @language en_US\n         */\n        /**\n         * - 用特定的显示对象数据替换特定插槽当前的显示对象数据。\n         * 用 \"dragonBonesName/armatureName/slotName/displayName\" 指定显示对象数据。\n         * @param dragonBonesName - DragonBonesData 实例的缓存名称。\n         * @param armatureName - 骨架数据名称。\n         * @param slotName - 插槽数据名称。\n         * @param displayName - 显示对象数据名称。\n         * @param slot - 插槽。\n         * @param displayIndex - 被替换的显示对象数据的索引。 （如果未设置，则替换当前的显示对象数据）\n         * @example\n         * <pre>\n         *     let slot = armature.getSlot(\"weapon\");\n         *     factory.replaceSlotDisplay(\"dragonBonesName\", \"armatureName\", \"slotName\", \"displayName\", slot);\n         * </pre>\n         * @version DragonBones 4.5\n         * @language zh_CN\n         */\n        replaceSlotDisplay(dragonBonesName: string, armatureName: string, slotName: string, displayName: string, slot: Slot, displayIndex?: number): boolean;\n        /**\n         * @private\n         */\n        replaceSlotDisplayList(dragonBonesName: string | null, armatureName: string, slotName: string, slot: Slot): boolean;\n        /**\n         * - Share specific skin data with specific armature.\n         * @param armature - The armature.\n         * @param skin - The skin data.\n         * @param isOverride - Whether it completely override the original skin. (Default: false)\n         * @param exclude - A list of slot names that do not need to be replace.\n         * @example\n         * <pre>\n         *     let armatureA = factory.buildArmature(\"armatureA\", \"dragonBonesA\");\n         *     let armatureDataB = factory.getArmatureData(\"armatureB\", \"dragonBonesB\");\n         *     if (armatureDataB && armatureDataB.defaultSkin) {\n         *     factory.replaceSkin(armatureA, armatureDataB.defaultSkin, false, [\"arm_l\", \"weapon_l\"]);\n         *     }\n         * </pre>\n         * @see dragonBones.Armature\n         * @see dragonBones.SkinData\n         * @version DragonBones 5.6\n         * @language en_US\n         */\n        /**\n         * - 将特定的皮肤数据共享给特定的骨架使用。\n         * @param armature - 骨架。\n         * @param skin - 皮肤数据。\n         * @param isOverride - 是否完全覆盖原来的皮肤。 （默认: false）\n         * @param exclude - 不需要被替换的插槽名称列表。\n         * @example\n         * <pre>\n         *     let armatureA = factory.buildArmature(\"armatureA\", \"dragonBonesA\");\n         *     let armatureDataB = factory.getArmatureData(\"armatureB\", \"dragonBonesB\");\n         *     if (armatureDataB && armatureDataB.defaultSkin) {\n         *     factory.replaceSkin(armatureA, armatureDataB.defaultSkin, false, [\"arm_l\", \"weapon_l\"]);\n         *     }\n         * </pre>\n         * @see dragonBones.Armature\n         * @see dragonBones.SkinData\n         * @version DragonBones 5.6\n         * @language zh_CN\n         */\n        replaceSkin(armature: Armature, skin: SkinData, isOverride?: boolean, exclude?: Array<string> | null): boolean;\n        /**\n         * - Replaces the existing animation data for a specific armature with the animation data for the specific armature data.\n         * This enables you to make a armature template so that other armature without animations can share it's animations.\n         * @param armature - The armtaure.\n         * @param armatureData - The armature data.\n         * @param isOverride - Whether to completely overwrite the original animation. (Default: false)\n         * @example\n         * <pre>\n         *     let armatureA = factory.buildArmature(\"armatureA\", \"dragonBonesA\");\n         *     let armatureDataB = factory.getArmatureData(\"armatureB\", \"dragonBonesB\");\n         *     if (armatureDataB) {\n         *     factory.replaceAnimation(armatureA, armatureDataB);\n         *     }\n         * </pre>\n         * @see dragonBones.Armature\n         * @see dragonBones.ArmatureData\n         * @version DragonBones 5.6\n         * @language en_US\n         */\n        /**\n         * - 用特定骨架数据的动画数据替换特定骨架现有的动画数据。\n         * 这样就能实现制作一个骨架动画模板，让其他没有制作动画的骨架共享该动画。\n         * @param armature - 骨架。\n         * @param armatureData - 骨架数据。\n         * @param isOverride - 是否完全覆盖原来的动画。（默认: false）。\n         * @example\n         * <pre>\n         *     let armatureA = factory.buildArmature(\"armatureA\", \"dragonBonesA\");\n         *     let armatureDataB = factory.getArmatureData(\"armatureB\", \"dragonBonesB\");\n         *     if (armatureDataB) {\n         *     factory.replaceAnimation(armatureA, armatureDataB);\n         *     }\n         * </pre>\n         * @see dragonBones.Armature\n         * @see dragonBones.ArmatureData\n         * @version DragonBones 5.6\n         * @language zh_CN\n         */\n        replaceAnimation(armature: Armature, armatureData: ArmatureData, isOverride?: boolean): boolean;\n        /**\n         * @private\n         */\n        getAllDragonBonesData(): Map<DragonBonesData>;\n        /**\n         * @private\n         */\n        getAllTextureAtlasData(): Map<Array<TextureAtlasData>>;\n        /**\n         * - An Worldclock instance updated by engine.\n         * @version DragonBones 5.7\n         * @language en_US\n         */\n        /**\n         * - 由引擎驱动的 WorldClock 实例。\n         * @version DragonBones 5.7\n         * @language zh_CN\n         */\n        readonly clock: WorldClock;\n        /**\n         * @private\n         */\n        readonly dragonBones: DragonBones;\n        /**\n         * - Deprecated, please refer to {@link #replaceSkin}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #replaceSkin}。\n         * @deprecated\n         * @language zh_CN\n         */\n        changeSkin(armature: Armature, skin: SkinData, exclude?: Array<string> | null): boolean;\n        /**\n         * - Deprecated, please refer to {@link #replaceAnimation}.\n         * @deprecated\n         * @language en_US\n         */\n        /**\n         * - 已废弃，请参考 {@link #replaceAnimation}。\n         * @deprecated\n         * @language zh_CN\n         */\n        copyAnimationsToArmature(toArmature: Armature, fromArmatreName: string, fromSkinName?: string, fromDragonBonesDataName?: string, replaceOriginalAnimation?: boolean): boolean;\n    }\n    /**\n     * @internal\n     * @private\n     */\n    class BuildArmaturePackage {\n        dataName: string;\n        textureAtlasName: string;\n        data: DragonBonesData;\n        armature: ArmatureData;\n        skin: SkinData | null;\n    }\n}\n\ndeclare let jsb: any;\n/** Running in the editor. */\ndeclare let CC_EDITOR: boolean;\n/** Preview in browser or simulator. */\ndeclare let CC_PREVIEW: boolean;\n/** Running in the editor or preview. */\ndeclare let CC_DEV: boolean;\n/** Running in the editor or preview, or build in debug mode. */\ndeclare let CC_DEBUG: boolean;\n/** Running in published project. */\ndeclare let CC_BUILD: boolean;\n/** Running in native platform (mobile app, desktop app, or simulator). */\ndeclare let CC_JSB: boolean;\n/** Running in the engine's unit test. */\ndeclare let CC_TEST: boolean;\n/** Running in the Wechat's mini game. */\ndeclare let CC_WECHATGAME: boolean;\n/** Running in the bricks. */\ndeclare let CC_QQPLAY: boolean;\n"
  },
  {
    "path": "ChessCardHall/customDefine.d.ts",
    "content": "/** socketIO */\ndeclare class io {\n    /** 建立服务器连接 */\n    static connect: any;\n    /** 断开服务器连接 */\n    static disconnect: any;\n}\n\n\ndeclare class TextDecoder {\n    constructor(string)\n    decode(any):string\n}\n\n"
  },
  {
    "path": "ChessCardHall/jsconfig.json",
    "content": "{\n    \"compilerOptions\": {\n        \"target\": \"es6\",\n        \"module\": \"commonjs\",\n        \"experimentalDecorators\": true\n    },\n    \"exclude\": [\n        \"node_modules\",\n        \".vscode\",\n        \"library\",\n        \"local\",\n        \"settings\",\n        \"temp\"\n    ]\n}"
  },
  {
    "path": "ChessCardHall/project.json",
    "content": "{\n  \"engine\": \"cocos2d-html5\",\n  \"packages\": \"packages\",\n  \"version\": \"2.4.0\",\n  \"id\": \"c8884978-839f-4cb8-ac22-bca2a89661a2\",\n  \"isNew\": false\n}"
  },
  {
    "path": "ChessCardHall/settings/builder.json",
    "content": "{\n  \"appKey\": \"\",\n  \"appSecret\": \"\",\n  \"encryptJs\": true,\n  \"excludeScenes\": [],\n  \"includeAnySDK\": false,\n  \"includeSDKBox\": false,\n  \"inlineSpriteFrames\": true,\n  \"inlineSpriteFrames_native\": true,\n  \"jailbreakPlatform\": false,\n  \"md5Cache\": false,\n  \"mergeStartScene\": false,\n  \"oauthLoginServer\": \"\",\n  \"optimizeHotUpdate\": false,\n  \"orientation\": {\n    \"landscapeLeft\": true,\n    \"landscapeRight\": true,\n    \"portrait\": false,\n    \"upsideDown\": false\n  },\n  \"packageName\": \"org.cocos2d.helloworld\",\n  \"privateKey\": \"\",\n  \"renderMode\": \"0\",\n  \"startScene\": \"22ba6ac9-5d3e-4cae-b3f7-d03ff4163cf2\",\n  \"title\": \"tankbattle\",\n  \"webOrientation\": \"landscape\",\n  \"wechatgame\": {\n    \"appid\": \"wx6ac3f5090a6b99c5\",\n    \"orientation\": \"portrait\"\n  },\n  \"xxteaKey\": \"385774bf-4147-4d\",\n  \"zipCompressJs\": true,\n  \"mainCompressionType\": \"default\",\n  \"mainIsRemote\": false,\n  \"nativeMd5Cache\": true,\n  \"fb-instant-games\": {},\n  \"android\": {\n    \"REMOTE_SERVER_ROOT\": \"\",\n    \"packageName\": \"org.cocos2d.demo\"\n  },\n  \"ios\": {\n    \"REMOTE_SERVER_ROOT\": \"\",\n    \"packageName\": \"org.cocos2d.demo\"\n  },\n  \"mac\": {\n    \"REMOTE_SERVER_ROOT\": \"\",\n    \"height\": 720,\n    \"packageName\": \"org.cocos2d.demo\",\n    \"width\": 1280\n  },\n  \"win32\": {\n    \"REMOTE_SERVER_ROOT\": \"\",\n    \"height\": 720,\n    \"width\": 1280\n  },\n  \"android-instant\": {\n    \"REMOTE_SERVER_ROOT\": \"\",\n    \"host\": \"\",\n    \"packageName\": \"org.cocos2d.demo\",\n    \"pathPattern\": \"\",\n    \"recordPath\": \"\",\n    \"scheme\": \"https\",\n    \"skipRecord\": false\n  },\n  \"appBundle\": false\n}\n"
  },
  {
    "path": "ChessCardHall/settings/builder.panel.json",
    "content": "{\n  \"excludeScenes\": [],\n  \"packageName\": \"org.cocos2d.helloworld\",\n  \"platform\": \"web-mobile\",\n  \"startScene\": \"2d2f792f-a40c-49bb-a189-ed176a246e49\",\n  \"title\": \"HelloWorld\"\n}"
  },
  {
    "path": "ChessCardHall/settings/project.json",
    "content": "{\n  \"cocos-analytics\": {\n    \"appID\": \"13798\",\n    \"appSecret\": \"959b3ac0037d0f3c2fdce94f8421a9b2\",\n    \"channel\": \"\",\n    \"enable\": false,\n    \"version\": \"\"\n  },\n  \"collision-matrix\": [\n    [\n      true\n    ]\n  ],\n  \"design-resolution-height\": 640,\n  \"design-resolution-width\": 1136,\n  \"excluded-modules\": [\n    \"CCSpriteDistortion\",\n    \"LabelOutline\",\n    \"ParticleSystem\",\n    \"TiledMap\",\n    \"Spine Skeleton\",\n    \"ProgressBar\",\n    \"PageView\",\n    \"PageViewIndicator\",\n    \"Slider\",\n    \"VideoPlayer\",\n    \"WebView\",\n    \"AudioSource\",\n    \"Animation\",\n    \"MotionStreak\",\n    \"Collider\",\n    \"Graphics\",\n    \"DragonBones\",\n    \"Physics\",\n    \"StudioComponent\",\n    \"RenderTexture\",\n    \"Chipmunk\",\n    \"Camera\",\n    \"Intersection\",\n    \"Native NetWork\",\n    \"Geom Utils\",\n    \"3D\",\n    \"3D Primitive\",\n    \"3D Physics/cannon.js\",\n    \"3D Physics/Builtin\",\n    \"3D Particle\",\n    \"SafeArea\"\n  ],\n  \"fit-height\": true,\n  \"fit-width\": true,\n  \"group-list\": [\n    \"default\"\n  ],\n  \"simulator-orientation\": false,\n  \"simulator-resolution\": {\n    \"height\": 640,\n    \"width\": 960\n  },\n  \"start-scene\": \"22ba6ac9-5d3e-4cae-b3f7-d03ff4163cf2\",\n  \"use-customize-simulator\": false,\n  \"use-project-simulator-setting\": false,\n  \"migrate-history\": [\n    \"cloud-function\"\n  ],\n  \"last-module-event-record-time\": 1594972808995\n}\n"
  },
  {
    "path": "ChessCardHall/settings/services.json",
    "content": "{\n\t\"game\": {\n\t\t\"name\": \"未知游戏\",\n\t\t\"appid\": \"UNKNOW\"\n\t}\n}"
  },
  {
    "path": "ChessCardHall/template.json",
    "content": "{\n\t\"name\": \"TEMPLATES.helloworld.name\",\n\t\"desc\": \"TEMPLATES.helloworld.desc\",\n\t\"banner\": \"template-banner.png\"\n}"
  },
  {
    "path": "ChessCardHall/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"module\": \"commonjs\",\n    \"lib\": [ \"dom\", \"es5\", \"es2015.promise\" ],\n    \"target\": \"es5\",\n    \"allowJs\": true,\n    \"experimentalDecorators\": true,\n    \"skipLibCheck\": true\n  },\n  \"exclude\": [\n    \"node_modules\",\n    \"library\",\n    \"local\",\n    \"temp\",\n    \"build\",\n    \"settings\"\n  ]\n}\n"
  },
  {
    "path": "README.md",
    "content": "# h5game\n\nio类型h5游戏，客户端使用ts版cocos creator。服务器使用golang actor分布式框架,可伸缩部署。\n\n## 客户端依赖\n\n- cocos creator 2.4.0\n\n## 客户端已知问题：\n\n- 升级引擎后一些输入框默认显示有问题，需要删了重新摆\n\n- toggle的改动，导致头像不能显示\n\n## 服务器源码依赖\n\n```\n已使用go mod管理包。\ngolang版本1.13。\n拉取依赖步骤：\n1.进入server/src/Server目录\n2.执行go mod tidy\n```\n\n## 服务器运行\n\n- 安装数据库redis\n\n- 进入server目录，执行build.bat编译\n\n- 配置server/bin/config.json是数据库地址、服务器集群的配置地址\n  \n  ```\n  \"redis\":{\n        \"addr\":\"127.0.0.1:6379\",//redis地址\n        \"password\":\"1111\",//redis密码,未设密码可不填\n        \"poolsize\":10,\n        \"dbs\":[0,1,2,3,4]\n    },\n  \"proto\":\"json\",//消息参数协议打包方式,支持protobuf,json\n  ```\n\n- 启动\n  \n  ```\n  windows ：\n  方法1：直接运行bin/server.exe \n  方法2：执行 StartSingleServer.bat(单进程方式)\n  方法3：执行 StartMultiServer.bat(多进程方式)\n      \n  linux ：\n  执行./run.sh start\n  ```\n  \n  ## TODO:\n\n- [x] 登录、聊天、个人信息修改、基本战斗\n\n- [x] behavoior接入\n\n- [x] tcp,websocket协议兼容。pb,json可选。\n\n- [ ] 移动降低发包，客户端平滑\n\n## QQ群：285728047\n"
  },
  {
    "path": "server/.idea/inspectionProfiles/Project_Default.xml",
    "content": "<component name=\"InspectionProjectProfileManager\">\n  <profile version=\"1.0\">\n    <option name=\"myName\" value=\"Project Default\" />\n    <inspection_tool class=\"GoCommentLeadingSpace\" enabled=\"true\" level=\"WARNING\" enabled_by_default=\"true\" />\n    <inspection_tool class=\"GoCommentStart\" enabled=\"false\" level=\"WARNING\" enabled_by_default=\"false\" />\n    <inspection_tool class=\"GoErrorStringFormat\" enabled=\"false\" level=\"WARNING\" enabled_by_default=\"false\" />\n    <inspection_tool class=\"GoExportedElementShouldHaveComment\" enabled=\"true\" level=\"ERROR\" enabled_by_default=\"true\" />\n    <inspection_tool class=\"GoExportedOwnDeclaration\" enabled=\"true\" level=\"WARNING\" enabled_by_default=\"true\" />\n    <inspection_tool class=\"GoNameStartsWithPackageName\" enabled=\"false\" level=\"WARNING\" enabled_by_default=\"false\" />\n    <inspection_tool class=\"GoReceiverNames\" enabled=\"true\" level=\"WARNING\" enabled_by_default=\"true\" />\n    <inspection_tool class=\"GoSnakeCaseUsage\" enabled=\"false\" level=\"WARNING\" enabled_by_default=\"false\" />\n    <inspection_tool class=\"GoStructInitializationWithoutFieldNames\" enabled=\"false\" level=\"WARNING\" enabled_by_default=\"false\" />\n    <inspection_tool class=\"GoUnitSpecificDurationSuffix\" enabled=\"true\" level=\"WARNING\" enabled_by_default=\"true\" />\n    <inspection_tool class=\"GoUnsortedImport\" enabled=\"true\" level=\"WARNING\" enabled_by_default=\"true\" />\n    <inspection_tool class=\"SpellCheckingInspection\" enabled=\"false\" level=\"TYPO\" enabled_by_default=\"false\">\n      <option name=\"processCode\" value=\"true\" />\n      <option name=\"processLiterals\" value=\"true\" />\n      <option name=\"processComments\" value=\"true\" />\n    </inspection_tool>\n  </profile>\n</component>"
  },
  {
    "path": "server/.idea/misc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"JavaScriptSettings\">\n    <option name=\"languageLevel\" value=\"ES6\" />\n  </component>\n</project>"
  },
  {
    "path": "server/.idea/modules.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectModuleManager\">\n    <modules>\n      <module fileurl=\"file://$PROJECT_DIR$/.idea/server.iml\" filepath=\"$PROJECT_DIR$/.idea/server.iml\" />\n    </modules>\n  </component>\n</project>"
  },
  {
    "path": "server/.idea/server.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"WEB_MODULE\" version=\"4\">\n  <component name=\"NewModuleRootManager\">\n    <content url=\"file://$MODULE_DIR$\" />\n    <orderEntry type=\"inheritedJdk\" />\n    <orderEntry type=\"sourceFolder\" forTests=\"false\" />\n    <orderEntry type=\"library\" name=\"Bundled Protobuf Distribution\" level=\"application\" />\n  </component>\n</module>"
  },
  {
    "path": "server/.idea/vcs.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"VcsDirectoryMappings\">\n    <mapping directory=\"$PROJECT_DIR$/..\" vcs=\"Git\" />\n  </component>\n</project>"
  },
  {
    "path": "server/.idea/workspace.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ChangeListManager\">\n    <list default=\"true\" id=\"6f5e79f9-5338-43d3-94b3-94c7fbe09650\" name=\"Default Changelist\" comment=\"\">\n      <change beforePath=\"$PROJECT_DIR$/.idea/workspace.xml\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/.idea/workspace.xml\" afterDir=\"false\" />\n      <change beforePath=\"$PROJECT_DIR$/src/Robot/robotTest/_run.cmd\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/src/Robot/robotTest/_run.cmd\" afterDir=\"false\" />\n      <change beforePath=\"$PROJECT_DIR$/src/Robot/robotTest/robot.go\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/src/Robot/robotTest/robot.go\" afterDir=\"false\" />\n    </list>\n    <option name=\"EXCLUDED_CONVERTED_TO_IGNORED\" value=\"true\" />\n    <option name=\"SHOW_DIALOG\" value=\"false\" />\n    <option name=\"HIGHLIGHT_CONFLICTS\" value=\"true\" />\n    <option name=\"HIGHLIGHT_NON_ACTIVE_CHANGELIST\" value=\"false\" />\n    <option name=\"LAST_RESOLUTION\" value=\"IGNORE\" />\n  </component>\n  <component name=\"FUSProjectUsageTrigger\">\n    <session id=\"1604940505\">\n      <usages-collector id=\"statistics.lifecycle.project\">\n        <counts>\n          <entry key=\"project.closed\" value=\"9\" />\n          <entry key=\"project.open.time.0\" value=\"7\" />\n          <entry key=\"project.open.time.1\" value=\"2\" />\n          <entry key=\"project.open.time.3\" value=\"1\" />\n          <entry key=\"project.opened\" value=\"10\" />\n        </counts>\n      </usages-collector>\n      <usages-collector id=\"statistics.file.extensions.edit\">\n        <counts>\n          <entry key=\"bat\" value=\"69\" />\n          <entry key=\"cmd\" value=\"9\" />\n          <entry key=\"go\" value=\"1073\" />\n          <entry key=\"json\" value=\"21\" />\n          <entry key=\"mod\" value=\"25\" />\n          <entry key=\"sh\" value=\"17\" />\n          <entry key=\"txt\" value=\"3\" />\n        </counts>\n      </usages-collector>\n      <usages-collector id=\"statistics.file.types.edit\">\n        <counts>\n          <entry key=\"Bat\" value=\"69\" />\n          <entry key=\"Cmd\" value=\"9\" />\n          <entry key=\"DTD\" value=\"25\" />\n          <entry key=\"Go\" value=\"1073\" />\n          <entry key=\"JSON\" value=\"21\" />\n          <entry key=\"PLAIN_TEXT\" value=\"20\" />\n        </counts>\n      </usages-collector>\n      <usages-collector id=\"statistics.file.extensions.open\">\n        <counts>\n          <entry key=\"bat\" value=\"19\" />\n          <entry key=\"cmd\" value=\"7\" />\n          <entry key=\"go\" value=\"195\" />\n          <entry key=\"go_\" value=\"2\" />\n          <entry key=\"js\" value=\"3\" />\n          <entry key=\"json\" value=\"9\" />\n          <entry key=\"md\" value=\"2\" />\n          <entry key=\"mod\" value=\"10\" />\n          <entry key=\"proto\" value=\"4\" />\n          <entry key=\"sh\" value=\"5\" />\n          <entry key=\"sum\" value=\"4\" />\n          <entry key=\"txt\" value=\"1\" />\n        </counts>\n      </usages-collector>\n      <usages-collector id=\"statistics.file.types.open\">\n        <counts>\n          <entry key=\"Bat\" value=\"18\" />\n          <entry key=\"Cmd\" value=\"7\" />\n          <entry key=\"DTD\" value=\"10\" />\n          <entry key=\"Go\" value=\"195\" />\n          <entry key=\"JSON\" value=\"9\" />\n          <entry key=\"JavaScript\" value=\"3\" />\n          <entry key=\"PLAIN_TEXT\" value=\"15\" />\n          <entry key=\"PROTO\" value=\"4\" />\n        </counts>\n      </usages-collector>\n      <usages-collector id=\"statistics.go.postfix.template.usages.trigger\">\n        <counts>\n          <entry key=\".for\" value=\"1\" />\n        </counts>\n      </usages-collector>\n    </session>\n  </component>\n  <component name=\"FileEditorManager\">\n    <splitter split-orientation=\"horizontal\" split-proportion=\"0.6044242\">\n      <split-first>\n        <leaf SIDE_TABS_SIZE_LIMIT_KEY=\"300\">\n          <file pinned=\"false\" current-in-tab=\"true\">\n            <entry file=\"file://$PROJECT_DIR$/src/Robot/robotTest/robot.go\">\n              <provider selected=\"true\" editor-type-id=\"text-editor\">\n                <state relative-caret-position=\"255\">\n                  <caret line=\"99\" column=\"33\" lean-forward=\"true\" selection-start-line=\"99\" selection-start-column=\"33\" selection-end-line=\"99\" selection-end-column=\"33\" />\n                  <folding>\n                    <element signature=\"e#14#224#0\" expanded=\"true\" />\n                  </folding>\n                </state>\n              </provider>\n            </entry>\n          </file>\n          <file pinned=\"false\" current-in-tab=\"false\">\n            <entry file=\"file://$PROJECT_DIR$/src/Robot/robotTest/_run.cmd\">\n              <provider selected=\"true\" editor-type-id=\"text-editor\">\n                <state>\n                  <caret column=\"44\" lean-forward=\"true\" selection-start-column=\"44\" selection-end-column=\"44\" />\n                </state>\n              </provider>\n            </entry>\n          </file>\n          <file pinned=\"false\" current-in-tab=\"false\">\n            <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/network/conn.go\">\n              <provider selected=\"true\" editor-type-id=\"text-editor\">\n                <state relative-caret-position=\"204\">\n                  <caret line=\"14\" lean-forward=\"true\" selection-start-line=\"14\" selection-end-line=\"14\" />\n                </state>\n              </provider>\n            </entry>\n          </file>\n          <file pinned=\"false\" current-in-tab=\"false\">\n            <entry file=\"file://$PROJECT_DIR$/src/Robot/robotTest/build.bat\">\n              <provider selected=\"true\" editor-type-id=\"text-editor\">\n                <state>\n                  <caret column=\"11\" lean-forward=\"true\" selection-start-column=\"11\" selection-end-column=\"11\" />\n                </state>\n              </provider>\n            </entry>\n          </file>\n          <file pinned=\"false\" current-in-tab=\"false\">\n            <entry file=\"file://D:/Go/src/sync/waitgroup.go\">\n              <provider selected=\"true\" editor-type-id=\"text-editor\">\n                <state relative-caret-position=\"1666\">\n                  <caret line=\"102\" column=\"21\" selection-start-line=\"102\" selection-start-column=\"21\" selection-end-line=\"102\" selection-end-column=\"21\" />\n                </state>\n              </provider>\n            </entry>\n          </file>\n          <file pinned=\"false\" current-in-tab=\"false\">\n            <entry file=\"file://$PROJECT_DIR$/src/Robot/robotTest/robotTest.go\">\n              <provider selected=\"true\" editor-type-id=\"text-editor\">\n                <state relative-caret-position=\"170\">\n                  <caret line=\"14\" column=\"16\" selection-start-line=\"14\" selection-start-column=\"16\" selection-end-line=\"14\" selection-end-column=\"16\" />\n                </state>\n              </provider>\n            </entry>\n          </file>\n          <file pinned=\"false\" current-in-tab=\"false\">\n            <entry file=\"file://$PROJECT_DIR$/src/Robot/robotTest/agent.go\">\n              <provider selected=\"true\" editor-type-id=\"text-editor\">\n                <state relative-caret-position=\"-605\">\n                  <caret line=\"27\" lean-forward=\"true\" selection-start-line=\"27\" selection-end-line=\"27\" />\n                </state>\n              </provider>\n            </entry>\n          </file>\n          <file pinned=\"false\" current-in-tab=\"false\">\n            <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/network/tcp_client.go\">\n              <provider selected=\"true\" editor-type-id=\"text-editor\">\n                <state relative-caret-position=\"68\">\n                  <caret line=\"11\" column=\"5\" selection-start-line=\"11\" selection-start-column=\"5\" selection-end-line=\"11\" selection-end-column=\"5\" />\n                </state>\n              </provider>\n            </entry>\n          </file>\n          <file pinned=\"false\" current-in-tab=\"false\">\n            <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/network/ws_client.go\">\n              <provider selected=\"true\" editor-type-id=\"text-editor\">\n                <state relative-caret-position=\"221\">\n                  <caret line=\"20\" column=\"4\" selection-start-line=\"20\" selection-start-column=\"4\" selection-end-line=\"20\" selection-end-column=\"4\" />\n                </state>\n              </provider>\n            </entry>\n          </file>\n          <file pinned=\"false\" current-in-tab=\"false\">\n            <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/network/ws_conn.go\">\n              <provider selected=\"true\" editor-type-id=\"text-editor\">\n                <state relative-caret-position=\"102\">\n                  <caret line=\"13\" column=\"5\" selection-start-line=\"13\" selection-start-column=\"5\" selection-end-line=\"13\" selection-end-column=\"5\" />\n                </state>\n              </provider>\n            </entry>\n          </file>\n        </leaf>\n      </split-first>\n      <split-second>\n        <leaf SIDE_TABS_SIZE_LIMIT_KEY=\"300\">\n          <file pinned=\"false\" current-in-tab=\"true\">\n            <entry file=\"file://$PROJECT_DIR$/bin/config.json\">\n              <provider selected=\"true\" editor-type-id=\"text-editor\">\n                <state relative-caret-position=\"306\">\n                  <caret line=\"18\" column=\"24\" selection-start-line=\"18\" selection-start-column=\"24\" selection-end-line=\"18\" selection-end-column=\"24\" />\n                  <folding>\n                    <element signature=\"e#364#1263#0\" />\n                  </folding>\n                </state>\n              </provider>\n            </entry>\n          </file>\n        </leaf>\n      </split-second>\n    </splitter>\n  </component>\n  <component name=\"FindInProjectRecents\">\n    <findStrings>\n      <find>Started EndpointManager</find>\n      <find>log.Debug(&quot;center OnStart ok!!&quot;)</find>\n      <find>OnStart ok!!</find>\n      <find>wait 3</find>\n      <find>flag</find>\n      <find>wait</find>\n      <find>testssss</find>\n      <find>OnStart ok</find>\n      <find>service.ServiceRun</find>\n      <find>ServiceRun</find>\n      <find>Starting Proto.Actor server</find>\n      <find>serviceIns</find>\n      <find>Started,</find>\n      <find>NewAgent fail</find>\n      <find>GetAgentActor</find>\n      <find>GateService.OnReceive</find>\n      <find>gate</find>\n      <find>game reg ok</find>\n      <find>center OnStart ok</find>\n      <find>NewAagentActorMsg</find>\n      <find>CenterService tick</find>\n      <find>center.OnAddService</find>\n      <find>GetServiceConfig</find>\n      <find>client</find>\n      <find>INetClient</find>\n      <find>ConnectGate</find>\n      <find>newAgent</find>\n      <find>NewAgent</find>\n      <find>EnterGame</find>\n      <find>OnMsgRecv</find>\n    </findStrings>\n  </component>\n  <component name=\"GOROOT\" path=\"D:\\go\" />\n  <component name=\"Git.Settings\">\n    <option name=\"RECENT_GIT_ROOT_PATH\" value=\"$PROJECT_DIR$/..\" />\n  </component>\n  <component name=\"IdeDocumentHistory\">\n    <option name=\"CHANGED_PATHS\">\n      <list>\n        <option value=\"$PROJECT_DIR$/src/Server/game/player.go\" />\n        <option value=\"$PROJECT_DIR$/src/Server/battle/room.go\" />\n        <option value=\"$PROJECT_DIR$/src/Server/gate/agentActor.go\" />\n        <option value=\"$PROJECT_DIR$/src/Server/login/loginserver.go\" />\n        <option value=\"$PROJECT_DIR$/src/Server/db/gameMD.go\" />\n        <option value=\"$PROJECT_DIR$/src/Server/go.mod\" />\n        <option value=\"$PROJECT_DIR$/src/comm/go.mod\" />\n        <option value=\"$PROJECT_DIR$/src/Server/server.go\" />\n        <option value=\"$PROJECT_DIR$/src/Server/app/server.go\" />\n        <option value=\"$PROJECT_DIR$/src/Server/db/xredsql.go\" />\n        <option value=\"$PROJECT_DIR$/pkg/mod/github.com/astaxie/beego@v1.12.2/adminui.go\" />\n        <option value=\"$PROJECT_DIR$/install.sh\" />\n        <option value=\"$PROJECT_DIR$/install.cmd\" />\n        <option value=\"$PROJECT_DIR$/build.sh\" />\n        <option value=\"$PROJECT_DIR$/build.bat\" />\n        <option value=\"$PROJECT_DIR$/bin/StartMultiServer.bat\" />\n        <option value=\"$PROJECT_DIR$/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/app/app.go\" />\n        <option value=\"$PROJECT_DIR$/src/Server/battle/battleserver.go\" />\n        <option value=\"$PROJECT_DIR$/src/Server/lobby/lobbyserver.go\" />\n        <option value=\"$PROJECT_DIR$/src/Server/session/sessionserver.go\" />\n        <option value=\"D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/app/app.go\" />\n        <option value=\"$PROJECT_DIR$/src/Server/cluster/regcenter.go\" />\n        <option value=\"D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/service/serviceData.go\" />\n        <option value=\"$PROJECT_DIR$/src/Server/gate/gateserver.go\" />\n        <option value=\"D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/service/service.go\" />\n        <option value=\"$PROJECT_DIR$/src/Server/game/gameserver.go\" />\n        <option value=\"$PROJECT_DIR$/src/Server/center/centerserver.go\" />\n        <option value=\"D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/config/serviceConfig.go\" />\n        <option value=\"$PROJECT_DIR$/src/Robot/go.mod\" />\n        <option value=\"$PROJECT_DIR$/src/Robot/robotTest/build.bat\" />\n        <option value=\"$PROJECT_DIR$/bin/config.json\" />\n        <option value=\"$PROJECT_DIR$/src/Robot/robotTest/robot.go\" />\n        <option value=\"$PROJECT_DIR$/src/Robot/robotTest/_run.cmd\" />\n      </list>\n    </option>\n  </component>\n  <component name=\"JsBuildToolGruntFileManager\" detection-done=\"true\" sorting=\"DEFINITION_ORDER\" />\n  <component name=\"JsBuildToolPackageJson\" detection-done=\"true\" sorting=\"DEFINITION_ORDER\" />\n  <component name=\"JsGulpfileManager\">\n    <detection-done>true</detection-done>\n    <sorting>DEFINITION_ORDER</sorting>\n  </component>\n  <component name=\"ProjectFrameBounds\" extendedState=\"6\">\n    <option name=\"x\" value=\"-8\" />\n    <option name=\"y\" value=\"-8\" />\n    <option name=\"width\" value=\"1936\" />\n    <option name=\"height\" value=\"1056\" />\n  </component>\n  <component name=\"ProjectLevelVcsManager\" settingsEditedManually=\"true\" />\n  <component name=\"ProjectView\">\n    <navigator proportions=\"\" version=\"1\">\n      <autoscrollFromSource ProjectPane=\"true\" />\n      <foldersAlwaysOnTop value=\"true\" />\n    </navigator>\n    <panes>\n      <pane id=\"Scope\" />\n      <pane id=\"ProjectPane\">\n        <subPane>\n          <expand>\n            <path>\n              <item name=\"server\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"server\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"server\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"server\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"bin\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"server\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"server\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"server\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"server\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"Robot\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"server\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"server\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"Robot\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"robotTest\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"server\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"External Libraries\" type=\"cb654da1:ExternalLibrariesNode\" />\n            </path>\n            <path>\n              <item name=\"server\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"External Libraries\" type=\"cb654da1:ExternalLibrariesNode\" />\n              <item name=\"Go Module &lt;robotTest&gt;\" type=\"20ee2d1f:SyntheticLibraryElementNode\" />\n            </path>\n            <path>\n              <item name=\"server\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"External Libraries\" type=\"cb654da1:ExternalLibrariesNode\" />\n              <item name=\"Go Module &lt;robotTest&gt;\" type=\"20ee2d1f:SyntheticLibraryElementNode\" />\n              <item name=\"ganet@v0.0.0-20200721080758-d33e58ea37d8\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"server\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"External Libraries\" type=\"cb654da1:ExternalLibrariesNode\" />\n              <item name=\"Go Module &lt;robotTest&gt;\" type=\"20ee2d1f:SyntheticLibraryElementNode\" />\n              <item name=\"ganet@v0.0.0-20200721080758-d33e58ea37d8\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"network\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n          </expand>\n          <select />\n        </subPane>\n      </pane>\n    </panes>\n  </component>\n  <component name=\"PropertiesComponent\">\n    <property name=\"configurable.Global.GOPATH.is.expanded\" value=\"true\" />\n    <property name=\"configurable.Module.GOPATH.is.expanded\" value=\"false\" />\n    <property name=\"configurable.Project.GOPATH.is.expanded\" value=\"true\" />\n    <property name=\"go.gopath.indexing.explicitly.defined\" value=\"true\" />\n    <property name=\"go.sdk.automatically.set\" value=\"true\" />\n    <property name=\"go.vendoring.notification.had.been.shown\" value=\"true\" />\n    <property name=\"last_opened_file_path\" value=\"$PROJECT_DIR$/bin\" />\n    <property name=\"nodejs_interpreter_path.stuck_in_default_project\" value=\"undefined stuck path\" />\n    <property name=\"nodejs_npm_path_reset_for_default_project\" value=\"true\" />\n    <property name=\"settings.editor.selected.configurable\" value=\"go.vgo\" />\n  </component>\n  <component name=\"RecentsManager\">\n    <key name=\"MoveFile.RECENT_KEYS\">\n      <recent name=\"D:\\project\\h5game\\server\\src\\Server\\app\" />\n      <recent name=\"D:\\project\\h5game\\server\\src\\Server\" />\n    </key>\n    <key name=\"CopyFile.RECENT_KEYS\">\n      <recent name=\"D:\\project\\h5game\\server\\src\" />\n    </key>\n  </component>\n  <component name=\"RunDashboard\">\n    <option name=\"ruleStates\">\n      <list>\n        <RuleState>\n          <option name=\"name\" value=\"ConfigurationTypeDashboardGroupingRule\" />\n        </RuleState>\n        <RuleState>\n          <option name=\"name\" value=\"StatusDashboardGroupingRule\" />\n        </RuleState>\n      </list>\n    </option>\n  </component>\n  <component name=\"RunManager\" selected=\"Go Build.robot\">\n    <configuration default=\"true\" type=\"GoApplicationRunConfiguration\" factoryName=\"Go Application\">\n      <module name=\"server\" />\n      <working_directory value=\"D:\\project\\h5game\\server\\bin\" />\n      <go_parameters value=\"-i\" />\n      <kind value=\"PACKAGE\" />\n      <filePath value=\"$PROJECT_DIR$/\" />\n      <package value=\"Server\" />\n      <directory value=\"$PROJECT_DIR$/\" />\n      <method v=\"2\" />\n    </configuration>\n    <configuration name=\"robot\" type=\"GoApplicationRunConfiguration\" factoryName=\"Go Application\">\n      <module name=\"server\" />\n      <working_directory value=\"D:\\project\\h5game\\server\\bin\" />\n      <go_parameters value=\"-i\" />\n      <kind value=\"DIRECTORY\" />\n      <filePath value=\"$PROJECT_DIR$/\" />\n      <package value=\"Server\" />\n      <directory value=\"$PROJECT_DIR$/src/Robot/robotTest\" />\n      <method v=\"2\" />\n    </configuration>\n    <configuration name=\"server\" type=\"GoApplicationRunConfiguration\" factoryName=\"Go Application\">\n      <module name=\"server\" />\n      <working_directory value=\"D:\\project\\h5game\\server\\bin\" />\n      <go_parameters value=\"-i\" />\n      <kind value=\"DIRECTORY\" />\n      <filePath value=\"$PROJECT_DIR$/\" />\n      <package value=\"Server\" />\n      <directory value=\"$PROJECT_DIR$/src/Server/server\" />\n      <method v=\"2\" />\n    </configuration>\n    <list>\n      <item itemvalue=\"Go Build.server\" />\n      <item itemvalue=\"Go Build.robot\" />\n    </list>\n  </component>\n  <component name=\"TodoView\">\n    <todo-panel id=\"selected-file\">\n      <is-autoscroll-to-source value=\"true\" />\n    </todo-panel>\n    <todo-panel id=\"all\">\n      <are-packages-shown value=\"true\" />\n      <is-autoscroll-to-source value=\"true\" />\n    </todo-panel>\n  </component>\n  <component name=\"ToolWindowManager\">\n    <frame x=\"-8\" y=\"-8\" width=\"1936\" height=\"1056\" extended-state=\"6\" />\n    <editor active=\"true\" />\n    <layout>\n      <window_info content_ui=\"combo\" id=\"Project\" order=\"0\" visible=\"true\" weight=\"0.18070363\" />\n      <window_info id=\"Structure\" order=\"1\" side_tool=\"true\" weight=\"0.25\" />\n      <window_info id=\"Favorites\" order=\"2\" side_tool=\"true\" />\n      <window_info anchor=\"bottom\" id=\"Message\" order=\"0\" />\n      <window_info anchor=\"bottom\" id=\"Find\" order=\"1\" weight=\"0.32899022\" />\n      <window_info active=\"true\" anchor=\"bottom\" id=\"Run\" order=\"2\" visible=\"true\" weight=\"0.32899022\" />\n      <window_info anchor=\"bottom\" id=\"Debug\" order=\"3\" weight=\"0.3995657\" />\n      <window_info anchor=\"bottom\" id=\"Cvs\" order=\"4\" weight=\"0.25\" />\n      <window_info anchor=\"bottom\" id=\"Inspection\" order=\"5\" weight=\"0.4\" />\n      <window_info anchor=\"bottom\" id=\"TODO\" order=\"6\" weight=\"0.32899022\" />\n      <window_info anchor=\"bottom\" id=\"LuaCheck\" order=\"7\" weight=\"0.32899022\" />\n      <window_info anchor=\"bottom\" id=\"Database Changes\" order=\"8\" show_stripe_button=\"false\" />\n      <window_info anchor=\"bottom\" id=\"Version Control\" order=\"9\" show_stripe_button=\"false\" />\n      <window_info anchor=\"bottom\" id=\"Terminal\" order=\"10\" weight=\"0.32899022\" />\n      <window_info anchor=\"bottom\" id=\"Event Log\" order=\"11\" side_tool=\"true\" />\n      <window_info anchor=\"right\" id=\"Commander\" internal_type=\"SLIDING\" order=\"0\" type=\"SLIDING\" weight=\"0.4\" />\n      <window_info anchor=\"right\" id=\"Ant Build\" order=\"1\" weight=\"0.25\" />\n      <window_info anchor=\"right\" content_ui=\"combo\" id=\"Hierarchy\" order=\"2\" weight=\"0.25\" />\n      <window_info anchor=\"right\" id=\"Database\" order=\"3\" />\n    </layout>\n  </component>\n  <component name=\"TypeScriptGeneratedFilesManager\">\n    <option name=\"version\" value=\"1\" />\n  </component>\n  <component name=\"VcsContentAnnotationSettings\">\n    <option name=\"myLimit\" value=\"2678400000\" />\n  </component>\n  <component name=\"VgoProject\">\n    <integration-enabled>true</integration-enabled>\n    <proxy>https://goproxy.cn</proxy>\n  </component>\n  <component name=\"XDebuggerManager\">\n    <breakpoint-manager>\n      <breakpoints>\n        <line-breakpoint enabled=\"true\" type=\"DlvLineBreakpoint\">\n          <url>file://$PROJECT_DIR$/src/Robot/robotTest/robot.go</url>\n          <line>75</line>\n          <option name=\"timeStamp\" value=\"7\" />\n        </line-breakpoint>\n      </breakpoints>\n    </breakpoint-manager>\n  </component>\n  <component name=\"editorHistoryManager\">\n    <entry file=\"file://$PROJECT_DIR$/pkg/mod/github.com/!asynkron!i!t/protoactor-go@v0.0.0-20200317173033-c483abfa40e2/actor/root_context.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"325\">\n          <caret line=\"167\" column=\"22\" selection-start-line=\"167\" selection-start-column=\"17\" selection-end-line=\"167\" selection-end-column=\"22\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/pkg/mod/github.com/!asynkron!i!t/protoactor-go@v0.0.0-20200317173033-c483abfa40e2/actor/props.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"-398\">\n          <caret line=\"100\" column=\"27\" selection-start-line=\"100\" selection-start-column=\"17\" selection-end-line=\"100\" selection-end-column=\"27\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/pkg/mod/github.com/!asynkron!i!t/protoactor-go@v0.0.0-20200317173033-c483abfa40e2/actor/actor.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"136\">\n          <caret line=\"8\" column=\"5\" selection-start-line=\"8\" selection-start-column=\"5\" selection-end-line=\"8\" selection-end-column=\"5\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Server/lobby/queuegmr.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"197\">\n          <caret line=\"52\" selection-start-line=\"52\" selection-end-line=\"52\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Server/lobby/lobbyserver.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"-66\">\n          <caret line=\"39\" selection-start-line=\"39\" selection-end-line=\"39\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/gameproto/msgs/protos.pb.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"197\">\n          <caret line=\"599\" column=\"5\" selection-start-line=\"599\" selection-start-column=\"5\" selection-end-line=\"599\" selection-end-column=\"5\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Server/cluster/regcenter.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"119\">\n          <caret line=\"7\" selection-start-line=\"7\" selection-end-line=\"7\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/Go/src/net/http/server.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"320\">\n          <caret line=\"1758\" column=\"26\" selection-start-line=\"1758\" selection-start-column=\"26\" selection-end-line=\"1758\" selection-end-column=\"26\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/gateframework/agent.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"119\">\n          <caret line=\"15\" column=\"4\" selection-start-line=\"15\" selection-start-column=\"4\" selection-end-line=\"15\" selection-end-column=\"4\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/gateframework/gate.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"363\">\n          <caret line=\"56\" column=\"39\" selection-start-line=\"56\" selection-start-column=\"26\" selection-end-line=\"56\" selection-end-column=\"39\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/network/ws_server.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"231\">\n          <caret line=\"101\" column=\"31\" lean-forward=\"true\" selection-start-line=\"101\" selection-start-column=\"31\" selection-end-line=\"101\" selection-end-column=\"31\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/service/service.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"126\">\n          <caret line=\"43\" column=\"23\" selection-start-line=\"43\" selection-start-column=\"23\" selection-end-line=\"43\" selection-end-column=\"23\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/pkg/mod/github.com/!asynkron!i!t/protoactor-go@v0.0.0-20200317173033-c483abfa40e2/actor/pid.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"17\">\n          <caret line=\"11\" column=\"5\" selection-start-line=\"11\" selection-start-column=\"5\" selection-end-line=\"11\" selection-end-column=\"5\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/service/serviceData.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"189\">\n          <caret line=\"20\" column=\"22\" selection-start-line=\"20\" selection-start-column=\"22\" selection-end-line=\"20\" selection-end-column=\"22\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Server/gate/agentActor.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"-255\" />\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Server/gate/gateserver.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"1709\">\n          <caret line=\"139\" column=\"25\" selection-start-line=\"139\" selection-start-column=\"14\" selection-end-line=\"139\" selection-end-column=\"25\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Server/center/serviceNode.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"354\">\n          <caret line=\"48\" column=\"24\" selection-start-line=\"48\" selection-start-column=\"24\" selection-end-line=\"48\" selection-end-column=\"24\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/util/tools.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"102\">\n          <caret line=\"6\" column=\"5\" selection-start-line=\"6\" selection-start-column=\"5\" selection-end-line=\"6\" selection-end-column=\"5\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Server/battle/battleserver.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"347\">\n          <caret line=\"81\" column=\"45\" selection-start-line=\"81\" selection-start-column=\"45\" selection-end-line=\"81\" selection-end-column=\"45\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Server/center/centerserver.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"223\">\n          <caret line=\"49\" column=\"18\" selection-start-line=\"49\" selection-start-column=\"18\" selection-end-line=\"49\" selection-end-column=\"18\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Server/vendor/modules.txt\" />\n    <entry file=\"file://$PROJECT_DIR$/src/Server/login/loginserver.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\" />\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Server/server/server.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"439\">\n          <caret line=\"49\" column=\"10\" selection-start-line=\"49\" selection-start-column=\"10\" selection-end-line=\"49\" selection-end-column=\"10\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/app/app.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"350\">\n          <caret line=\"71\" column=\"5\" selection-start-line=\"71\" selection-start-column=\"5\" selection-end-line=\"71\" selection-end-column=\"5\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/config/serviceConfig.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"265\">\n          <caret line=\"58\" column=\"5\" selection-start-line=\"58\" selection-start-column=\"5\" selection-end-line=\"58\" selection-end-column=\"5\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Server/cluster/cluster.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"170\">\n          <caret line=\"41\" column=\"5\" selection-start-line=\"41\" selection-start-column=\"5\" selection-end-line=\"41\" selection-end-column=\"5\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Server/game/gameserver.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"350\">\n          <caret line=\"78\" column=\"32\" selection-start-line=\"78\" selection-start-column=\"32\" selection-end-line=\"78\" selection-end-column=\"32\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Robot/go.sum\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\" />\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Server/go.sum\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\" />\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/go.mod\" />\n    <entry file=\"file://$PROJECT_DIR$/src/gameproto/go.mod\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\" />\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/build.bat\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\" />\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Server/go.mod\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"85\">\n          <caret line=\"5\" selection-start-line=\"5\" selection-end-line=\"6\" selection-end-column=\"48\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Robot/go.mod\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"255\">\n          <caret line=\"15\" lean-forward=\"true\" selection-start-line=\"15\" selection-end-line=\"15\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/network/agent.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\" />\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/network/tcp_server.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\" />\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/network/ws_server.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"333\">\n          <caret line=\"68\" column=\"37\" lean-forward=\"true\" selection-start-line=\"68\" selection-start-column=\"37\" selection-end-line=\"68\" selection-end-column=\"37\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Robot/robotTest/r_test.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\" />\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/network/ws_client.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"-160\">\n          <caret line=\"42\" selection-start-line=\"42\" selection-end-line=\"42\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/network/tcp_conn.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"357\">\n          <caret line=\"26\" column=\"42\" selection-start-line=\"26\" selection-start-column=\"42\" selection-end-line=\"26\" selection-end-column=\"42\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/Go/src/sync/waitgroup.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"1666\">\n          <caret line=\"102\" column=\"21\" selection-start-line=\"102\" selection-start-column=\"21\" selection-end-line=\"102\" selection-end-column=\"21\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/network/ws_client.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"221\">\n          <caret line=\"20\" column=\"4\" selection-start-line=\"20\" selection-start-column=\"4\" selection-end-line=\"20\" selection-end-column=\"4\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/network/ws_conn.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"102\">\n          <caret line=\"13\" column=\"5\" selection-start-line=\"13\" selection-start-column=\"5\" selection-end-line=\"13\" selection-end-column=\"5\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Robot/robotTest/_run.cmd\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state>\n          <caret column=\"44\" lean-forward=\"true\" selection-start-column=\"44\" selection-end-column=\"44\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/bin/config.json\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"306\">\n          <caret line=\"18\" column=\"24\" selection-start-line=\"18\" selection-start-column=\"24\" selection-end-line=\"18\" selection-end-column=\"24\" />\n          <folding>\n            <element signature=\"e#364#1263#0\" />\n          </folding>\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/network/conn.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"204\">\n          <caret line=\"14\" lean-forward=\"true\" selection-start-line=\"14\" selection-end-line=\"14\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Robot/robotTest/build.bat\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state>\n          <caret column=\"11\" lean-forward=\"true\" selection-start-column=\"11\" selection-end-column=\"11\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Robot/robotTest/agent.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"-605\">\n          <caret line=\"27\" lean-forward=\"true\" selection-start-line=\"27\" selection-end-line=\"27\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Robot/robotTest/robotTest.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"170\">\n          <caret line=\"14\" column=\"16\" selection-start-line=\"14\" selection-start-column=\"16\" selection-end-line=\"14\" selection-end-column=\"16\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://D:/gopath/pkg/mod/github.com/magicsea/ganet@v0.0.0-20200721080758-d33e58ea37d8/network/tcp_client.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"68\">\n          <caret line=\"11\" column=\"5\" selection-start-line=\"11\" selection-start-column=\"5\" selection-end-line=\"11\" selection-end-column=\"5\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/Robot/robotTest/robot.go\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"255\">\n          <caret line=\"99\" column=\"33\" lean-forward=\"true\" selection-start-line=\"99\" selection-start-column=\"33\" selection-end-line=\"99\" selection-end-column=\"33\" />\n          <folding>\n            <element signature=\"e#14#224#0\" expanded=\"true\" />\n          </folding>\n        </state>\n      </provider>\n    </entry>\n  </component>\n</project>"
  },
  {
    "path": "server/.vscode/launch.json",
    "content": "{\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"name\": \"Launch\",\n            \"type\": \"go\",\n            \"request\": \"launch\",\n            \"mode\": \"exec\",//\"debug\",\n            \"remotePath\": \"\",\n            \"port\": 2345,\n            \"host\": \"127.0.0.1\",\n            \"program\": \"${workspaceRoot}\\\\bin\\\\server.exe\",\n            \"env\": {},\n            \"args\": [],\n            \"showLog\": true\n        }\n    ]\n}"
  },
  {
    "path": "server/.vscode/settings.json",
    "content": "// 将设置放入此文件中以覆盖默认值和用户设置。\n{\n     \"files.autoSave\": \"onFocusChange\",\n    \n    \"go.buildOnSave\": \"package\",\n    \n    \"go.lintOnSave\": \"package\",\n    \n    \"go.vetOnSave\": \"package\",\n    \n    \"go.buildFlags\": [],\n    \n    \"go.lintFlags\": [],\n    \n    \"go.vetFlags\": [],\n    \n    \"go.useCodeSnippetsOnFunctionSuggest\": false,\n    \n    //\"go.formatOnSave\": true,\n    \"go.formatFlags\": [],\n    \"go.formatTool\": \"gofmt\",\n   \n    \"go.goroot\": null,\n    \n    \"go.gopath\": \"e:\\\\gopath;${workspaceRoot}\"\n}"
  },
  {
    "path": "server/.vscode/tasks.json",
    "content": "{\n        // See https://go.microsoft.com/fwlink/?LinkId=733558\n    // for the documentation about the tasks.json format\n    \"version\": \"0.1.0\",\n    \"command\": \"go\",//命令 xxx.exe\n    \"isShellCommand\": true,\n    //\"args\": [\"build\",\"-v\",\"${file}\"],//固定参数，多的用逗号分割\n    \"echoCommand\":true,//是否显示命令\n    \"showOutput\": \"always\",\n    \"suppressTaskName\": true,//\n    \"options\": {\n        \"env\": {\n            \"GOPATH\": \"e:\\\\gopath;${workspaceRoot}\"//工程目录和gopath\n        }\n    },\n    \n    \"tasks\": [\n        { \n            \"taskName\": \"build\",\n            \"args\": [\"build\",\"-v\",\"server\"],\n            \"echoCommand\": true\n        },\n        { \n            \"taskName\": \"install\",\n            \"args\": [\"install\",\"-v\",\"server\"]//\"${fileBasenameNoExtension}\",\n            \n        }\n    ]\n}"
  },
  {
    "path": "server/bin/StartMultiServer.bat",
    "content": "start server.exe --config=config_tcp_manager.json\nstart server.exe --config=config_tcp_gate.json\nstart server.exe --config=config_tcp_game.json"
  },
  {
    "path": "server/bin/StartSingleServer.bat",
    "content": "start server.exe --config=config.json"
  },
  {
    "path": "server/bin/b3.json",
    "content": "{\n    \"id\": \"49538d8e-bdba-484f-83a5-7461a45f0649\",\n    \"title\": \"A behavior tree\",\n    \"description\": \"\",\n    \"root\": \"65354838-48a4-4863-85ad-b0d6e1cc6b53\",\n    \"properties\": {},\n    \"nodes\": {\n      \"65354838-48a4-4863-85ad-b0d6e1cc6b53\": {\n        \"id\": \"65354838-48a4-4863-85ad-b0d6e1cc6b53\",\n        \"name\": \"Priority\",\n        \"title\": \"Priority\",\n        \"description\": \"1.血不满先找血吃\\n2.周围有其他道具先吃\\n3.闲逛，偶尔发子弹\",\n        \"properties\": {},\n        \"display\": {\n          \"x\": -360,\n          \"y\": -24\n        },\n        \"children\": [\n          \"1278201e-8eed-4ca3-8e14-3b4f75299200\",\n          \"4ee987b5-caf8-4297-b170-4bb5b4318cd2\",\n          \"2603e7e4-af48-4967-a29d-87841f7157e9\",\n          \"2d71ae4e-cf0e-4e8c-b045-3eb36bcfe7c0\"\n        ]\n      },\n      \"2603e7e4-af48-4967-a29d-87841f7157e9\": {\n        \"id\": \"2603e7e4-af48-4967-a29d-87841f7157e9\",\n        \"name\": \"Sequence\",\n        \"title\": \"Sequence\",\n        \"description\": \"\",\n        \"properties\": {},\n        \"display\": {\n          \"x\": -120,\n          \"y\": 0\n        },\n        \"children\": [\n          \"26abdc07-a648-4b49-987a-64b0bbb618c0\",\n          \"066f97d6-d8cb-4dd5-ad29-c874083811a7\"\n        ]\n      },\n      \"4ee987b5-caf8-4297-b170-4bb5b4318cd2\": {\n        \"id\": \"4ee987b5-caf8-4297-b170-4bb5b4318cd2\",\n        \"name\": \"Sequence\",\n        \"title\": \"Sequence\",\n        \"description\": \"\",\n        \"properties\": {},\n        \"display\": {\n          \"x\": -120,\n          \"y\": -168\n        },\n        \"children\": [\n          \"de8eb162-63c8-4262-a5ff-7bad56f9d937\",\n          \"f04fc747-118b-4d4d-ba97-87d83190f2ce\",\n          \"7059e202-1071-4b97-8d7b-1db6dd7cc0b1\"\n        ]\n      },\n      \"2d71ae4e-cf0e-4e8c-b045-3eb36bcfe7c0\": {\n        \"id\": \"2d71ae4e-cf0e-4e8c-b045-3eb36bcfe7c0\",\n        \"name\": \"MemSequence\",\n        \"title\": \"MemSequence\",\n        \"description\": \"\",\n        \"properties\": {},\n        \"display\": {\n          \"x\": -204,\n          \"y\": 192\n        },\n        \"children\": [\n          \"a9c44814-8cea-4182-a97e-a2959f6d230e\",\n          \"3d7f244a-5062-4485-bc72-c24dddb1c206\",\n          \"d49a7907-f03a-4078-a892-06abaa565d04\",\n          \"c598150e-6187-40e9-9ebe-6d01eaaedb57\"\n        ]\n      },\n      \"066f97d6-d8cb-4dd5-ad29-c874083811a7\": {\n        \"id\": \"066f97d6-d8cb-4dd5-ad29-c874083811a7\",\n        \"name\": \"TurnTarget\",\n        \"title\": \"TurnTarget(<index>)\",\n        \"description\": \"\",\n        \"properties\": {\n          \"index\": \"item\"\n        },\n        \"display\": {\n          \"x\": 84,\n          \"y\": 36\n        }\n      },\n      \"a4216806-ee9b-4443-8121-c46044d82dab\": {\n        \"id\": \"a4216806-ee9b-4443-8121-c46044d82dab\",\n        \"name\": \"HaveTarget\",\n        \"title\": \"HaveTarget(<index>)\",\n        \"description\": \"\",\n        \"properties\": {\n          \"index\": \"item\"\n        },\n        \"display\": {\n          \"x\": 12,\n          \"y\": -372\n        }\n      },\n      \"1278201e-8eed-4ca3-8e14-3b4f75299200\": {\n        \"id\": \"1278201e-8eed-4ca3-8e14-3b4f75299200\",\n        \"name\": \"Sequence\",\n        \"title\": \"Sequence\",\n        \"description\": \"\",\n        \"properties\": {},\n        \"display\": {\n          \"x\": -168,\n          \"y\": -336\n        },\n        \"children\": [\n          \"a4216806-ee9b-4443-8121-c46044d82dab\",\n          \"55b1b73e-eb9c-40c2-8d91-57dd84006ac0\"\n        ]\n      },\n      \"55b1b73e-eb9c-40c2-8d91-57dd84006ac0\": {\n        \"id\": \"55b1b73e-eb9c-40c2-8d91-57dd84006ac0\",\n        \"name\": \"Wait\",\n        \"title\": \"Wait <milliseconds>ms\",\n        \"description\": \"\",\n        \"properties\": {\n          \"milliseconds\": 100\n        },\n        \"display\": {\n          \"x\": 0,\n          \"y\": -300\n        }\n      },\n      \"26abdc07-a648-4b49-987a-64b0bbb618c0\": {\n        \"id\": \"26abdc07-a648-4b49-987a-64b0bbb618c0\",\n        \"name\": \"FindItem\",\n        \"title\": \"FindItem(<etype>,<range>)\",\n        \"description\": \"\",\n        \"properties\": {\n          \"etype\": 2,\n          \"range\": 200,\n          \"index\": \"item\"\n        },\n        \"display\": {\n          \"x\": 60,\n          \"y\": -36\n        }\n      },\n      \"f04fc747-118b-4d4d-ba97-87d83190f2ce\": {\n        \"id\": \"f04fc747-118b-4d4d-ba97-87d83190f2ce\",\n        \"name\": \"FindItem\",\n        \"title\": \"FindItem(<etype>,<range>)\",\n        \"description\": \"\",\n        \"properties\": {\n          \"etype\": 1,\n          \"range\": 800,\n          \"index\": \"item\"\n        },\n        \"display\": {\n          \"x\": 60,\n          \"y\": -180\n        }\n      },\n      \"de8eb162-63c8-4262-a5ff-7bad56f9d937\": {\n        \"id\": \"de8eb162-63c8-4262-a5ff-7bad56f9d937\",\n        \"name\": \"HpLess\",\n        \"title\": \"HpLess(<rate>)\",\n        \"description\": \"\",\n        \"properties\": {\n          \"rate\": 1\n        },\n        \"display\": {\n          \"x\": 60,\n          \"y\": -240\n        }\n      },\n      \"7059e202-1071-4b97-8d7b-1db6dd7cc0b1\": {\n        \"id\": \"7059e202-1071-4b97-8d7b-1db6dd7cc0b1\",\n        \"name\": \"TurnTarget\",\n        \"title\": \"TurnTarget(<index>)\",\n        \"description\": \"\",\n        \"properties\": {\n          \"index\": \"item\"\n        },\n        \"display\": {\n          \"x\": 60,\n          \"y\": -120\n        }\n      },\n      \"a9c44814-8cea-4182-a97e-a2959f6d230e\": {\n        \"id\": \"a9c44814-8cea-4182-a97e-a2959f6d230e\",\n        \"name\": \"RandMove\",\n        \"title\": \"RandMove\",\n        \"description\": \"\",\n        \"properties\": {},\n        \"display\": {\n          \"x\": -36,\n          \"y\": 108\n        }\n      },\n      \"c598150e-6187-40e9-9ebe-6d01eaaedb57\": {\n        \"id\": \"c598150e-6187-40e9-9ebe-6d01eaaedb57\",\n        \"name\": \"RandWait\",\n        \"title\": \"RandWait <timemini> to <timemax>\",\n        \"description\": \"\",\n        \"properties\": {\n          \"timemini\": 1000,\n          \"timemax\": 2000\n        },\n        \"display\": {\n          \"x\": -12,\n          \"y\": 300\n        }\n      },\n      \"d49a7907-f03a-4078-a892-06abaa565d04\": {\n        \"id\": \"d49a7907-f03a-4078-a892-06abaa565d04\",\n        \"name\": \"Shoot\",\n        \"title\": \"Shoot\",\n        \"description\": \"\",\n        \"properties\": {},\n        \"display\": {\n          \"x\": -24,\n          \"y\": 228\n        }\n      },\n      \"3d7f244a-5062-4485-bc72-c24dddb1c206\": {\n        \"id\": \"3d7f244a-5062-4485-bc72-c24dddb1c206\",\n        \"name\": \"RandWait\",\n        \"title\": \"RandWait <timemini> to <timemax>\",\n        \"description\": \"\",\n        \"properties\": {\n          \"timemini\": 2000,\n          \"timemax\": 3000\n        },\n        \"display\": {\n          \"x\": -12,\n          \"y\": 168\n        }\n      }\n    },\n    \"display\": {\n      \"camera_x\": 960,\n      \"camera_y\": 474.5,\n      \"camera_z\": 1,\n      \"x\": -516,\n      \"y\": -24\n    },\n    \"custom_nodes\": [\n      {\n        \"name\": \"Shoot\",\n        \"category\": \"action\",\n        \"title\": \"Shoot\",\n        \"description\": null,\n        \"properties\": {}\n      },\n      {\n        \"name\": \"FindItem\",\n        \"category\": \"action\",\n        \"title\": \"FindItem(<etype>,<range>)\",\n        \"description\": null,\n        \"properties\": {\n          \"etype\": 0,\n          \"range\": 10\n        }\n      },\n      {\n        \"name\": \"TurnTarget\",\n        \"category\": \"action\",\n        \"title\": \"TurnTarget(<index>)\",\n        \"description\": null,\n        \"properties\": {\n          \"index\": \"null\"\n        }\n      },\n      {\n        \"name\": \"RandWait\",\n        \"category\": \"action\",\n        \"title\": \"RandWait <timemini> to <timemax>\",\n        \"description\": null,\n        \"properties\": {\n          \"timemini\": 1000,\n          \"timemax\": 5000\n        }\n      },\n      {\n        \"name\": \"RandMove\",\n        \"category\": \"action\",\n        \"title\": \"RandMove\",\n        \"description\": null,\n        \"properties\": {}\n      },\n      {\n        \"name\": \"HpLess\",\n        \"category\": \"condition\",\n        \"title\": \"HpLess(<rate>)\",\n        \"description\": null,\n        \"properties\": {\n          \"rate\": 1\n        }\n      },\n      {\n        \"name\": \"HaveTarget\",\n        \"category\": \"condition\",\n        \"title\": \"HaveTarget(<index>)\",\n        \"description\": null,\n        \"properties\": {\n          \"index\": \"null\"\n        }\n      }\n    ]\n  }"
  },
  {
    "path": "server/bin/config.json",
    "content": "{\n\t\"ver\":\"1.0\",\n\t\"redis\":{\n\t\t\"addr\":\"127.0.0.1:6379\",\n\t\t\"password\":\"\",\n\t\t\"poolsize\":10,\n\t\t\"dbs\":[0,1,2,3,4]\n\t},\n\t\"design\":{\n\t\t\"path\":\"../config/csv/\"\n\t},\n\t\"config\":{\n\t\t\"log\":{\n\t\t\t\"level\":\"info\",\n\t\t\t\"path\":\"../log\",\n\t\t\t\"flag\":18\n\t\t},\n\t\t\"proto\":\"json\",\n\t\t\"_comment\": \"配置静态地址,value空表示本进程\",\n\t\t\"remote\":{\n\n\t\t},\n\t\t\n\t\t\"_comment\": \"当前进程启动的所有服务配置,remoteAddr空表示本进程\",\n\t\t\"local\":[\n\t\t\t{\n\t\t\t\t\t\"serviceName\":\"login\",\n\t\t\t\t\t\"serviceType\":\"login\",\n\t\t\t\t\t\"remoteAddr\":\"\",\n\t\t\t\t\t\"conf\":{\n\t\t\t\t\t\t\t\"httpAddr\":\"127.0.0.1:9900\"\n\t\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\t\"serviceName\":\"center\",\n\t\t\t\t\t\"serviceType\":\"center\",\n\t\t\t\t\t\"remoteAddr\":\"127.0.0.1:8090\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\t\"serviceName\":\"lobby\",\n\t\t\t\t\t\"serviceType\":\"lobby\",\n\t\t\t\t\t\"remoteAddr\":\"127.0.0.1:8091\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\t\"serviceName\":\"session\",\n\t\t\t\t\t\"serviceType\":\"session\",\n\t\t\t\t\t\"remoteAddr\":\"\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\t\"serviceName\":\"gate1\",\n\t\t\t\t\t\"serviceType\":\"gate\",\n\t\t\t\t\t\"remoteAddr\":\"127.0.0.1:8070\",\n\t\t\t\t\t\"conf\":{\n\t\t\t\t\t\t\t\"MaxConnNum\":1000,\n\t\t\t\t\t\t\t\"WsAddr\":\":7201\",\n\t\t\t\t\t\t\t\"WsAddrOut\":\"127.0.0.1:7201\",\n\t\t\t\t\t\t\t\"TcpAddr\":\":7200\",\n\t\t\t\t\t\t\t\"TcpAddrOut\":\"127.0.0.1:7200\"\n\t\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\t\"serviceName\":\"game1\",\n\t\t\t\t\t\"serviceType\":\"game\",\n\t\t\t\t\t\"remoteAddr\":\"\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\t\"serviceName\":\"battle1\",\n\t\t\t\t\t\"serviceType\":\"battle\",\n\t\t\t\t\t\"remoteAddr\":\"\"\n\t\t\t}\n\t\t]\n\t}\t\n\n}\n\t"
  },
  {
    "path": "server/bin/config_tcp_game.json",
    "content": "{\n\t\"ver\":\"1.0\",\n\t\"db\":{\n\t\t\"game\":\"root:tcg123456@tcp(192.168.3.194:3306)/tcg_new\"\n\t},\n\t\"redis\":{\n\t\t\"addr\":\"127.0.0.1:6379\",\n\t\t\"password\":\"\",\n\t\t\"poolsize\":10,\n\t\t\"dbs\":[0,1,2,3,4]\n\t},\n\t\"config\":{\n\t\t\"log\":{\n\t\t\t\"level\":\"info\",\n\t\t\t\"path\":\"log\",\n\t\t\t\"flag\":18\n\t\t},\n\t\t\"proto\":\"json\",\n\t\t\"_comment\": \"配置静态地址,value空表示本进程\",\n\t\t\"remote\":{\n\t\t\t\"center\":\"127.0.0.1:8090\",\n\t\t\t\"session\":\"127.0.0.1:8091\",\n\t\t\t\"lobby\":\"127.0.0.1:8092\"\n\t\t},\n\t\t\n\t\t\"_comment\": \"当前进程启动的所有服务配置,remoteAddr空表示本进程\",\n\t\t\"local\":{\n\n\t\t\t\"battle1\":{\n\t\t\t\t\"serviceName\":\"battle1\",\n\t\t\t\t\"serviceType\":\"battle\",\n\t\t\t\t\"remoteAddr\":\"127.0.0.1:9401\"\n\t\t\t},\n\t\t\t\"game1\":{\n\t\t\t\t\t\"serviceName\":\"game1\",\n\t\t\t\t\t\"serviceType\":\"game\",\n\t\t\t\t\t\"remoteAddr\":\"127.0.0.1:9501\"\n\t\t\t}\n\t\t}\t\n\t}\t\n\n}\n\t"
  },
  {
    "path": "server/bin/config_tcp_gate.json",
    "content": "{\n\t\"ver\":\"1.0\",\n\t\"config\":{\n\t\t\"log\":{\n\t\t\t\"level\":\"info\",\n\t\t\t\"path\":\"log\",\n\t\t\t\"flag\":18\n\t\t},\n\t\t\"proto\":\"json\",\n\t\t\"_comment\": \"配置静态地址,value空表示本进程\",\n\t\t\"remote\":{\n\t\t\t\"center\":\"127.0.0.1:8090\",\n\t\t\t\"session\":\"127.0.0.1:8091\",\n\t\t\t\"lobby\":\"127.0.0.1:8092\"\n\t\t},\n\t\t\n\t\t\"_comment\": \"当前进程启动的所有服务配置,remoteAddr空表示本进程\",\n\t\t\"local\":{\n\t\t\t\"gate1\":{\n\t\t\t\t\t\"serviceName\":\"gate1\",\n\t\t\t\t\t\"serviceType\":\"gate\",\n\t\t\t\t\t\"remoteAddr\":\"127.0.0.1:8071\",\n\t\t\t\t\t\"conf\":{\n\t\t\t\t\t\t\"MaxConnNum\":1000,\n\t\t\t\t\t\t\"WsAddr\":\":7201\",\n\t\t\t\t\t\t\"WsAddrOut\":\"127.0.0.1:7201\",\n\t\t\t\t\t\t\"TcpAddr\":\":7200\"\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\t\n\t}\t\n\n}\n\t"
  },
  {
    "path": "server/bin/config_tcp_manager.json",
    "content": "{\n\t\"ver\":\"1.0\",\n\t\"redis\":{\n\t\t\"addr\":\"127.0.0.1:6379\",\n\t\t\"password\":\"\",\n\t\t\"poolsize\":10,\n\t\t\"dbs\":[0,1,2,3,4]\n\t},\n\t\"config\":{\n\t\t\"log\":{\n\t\t\t\"level\":\"info\",\n\t\t\t\"path\":\"log\",\n\t\t\t\"flag\":18\n\t\t},\n\t\t\"_comment\": \"配置静态地址,value空表示本进程\",\n\t\t\"remote\":{\n\t\t\t\"center\":\"127.0.0.1:8090\",\n\t\t\t\"session\":\"127.0.0.1:8091\",\n\t\t\t\"lobby\":\"127.0.0.1:8092\"\n\t\t},\n\t\t\n\t\t\"_comment\": \"当前进程启动的所有服务配置,remoteAddr空表示本进程\",\n\t\t\"local\":{\n\n\t\t\t\"center\":{\n\t\t\t\t\t\"serviceName\":\"center\",\n\t\t\t\t\t\"serviceType\":\"center\",\n\t\t\t\t\t\"remoteAddr\":\"127.0.0.1:8090\"\n\t\t\t},\n\t\t\t\"session\":{\n\t\t\t\t\t\"serviceName\":\"session\",\n\t\t\t\t\t\"serviceType\":\"session\",\n\t\t\t\t\t\"remoteAddr\":\"127.0.0.1:8091\"\n\t\t\t}\n\t\t}\t\n\t}\t\n\n}\n\t"
  },
  {
    "path": "server/bin/run.sh",
    "content": "#!/bin/bash\ncp -rf Server TcgServer\n\nproc_name=\"TcgServer\"\nserverPid=\"Server.Pid\"\n\n\n\nstart()\n{\n\talreadyStart=`ps -ef|grep ${proc_name} | grep -v \"grep\"|awk '{print $2}'`\n\tif [ \"$alreadyStart\" != \"\" ]; then\n\t\techo \"Server is already start  \"\n\telse\n\t\tnohup ./TcgServer > TcgServer.log &\n\t\tsleep 3\n\t\tproc_id=`ps -ef|grep ${proc_name} | grep -v \"grep\"|awk '{print $2}'`\n\t\techo $proc_id > $serverPid\n\t\techo ${proc_name}\" pid:\"$proc_id\n\tfi\n}\n\nstop()\n{\n\tpid=$(cat $serverPid)\n\techo $pid\n\tif [ \"$pid\" == \"\" ]; then\n\t\techo \"=== $proc_name process not exists or stop success\"\n\telse\n\t\tkill $pid\n\t\techo \"=== $proc_name process pid is:$pid\"\n\t\techo \"=== begin kill $proc_name process, pid is:$pid\"\n\t\tkill -9 $pid\n\tfi\n\techo \"\" > $serverPid\n}\n\nkeepAlive()\n{\n\tpid=$(cat $serverPid)\n\techo $pid\n\twhile true; do\n\t\tsleep 30\n\t\tif [ \"$pid\" == \"\" ]; then\n\t\t\tstart\n\t\tfi\n\tdone\n}\n\nif [ \"$1\" == \"start\" ]; then\n\tstart\nelif [ \"$1\" == \"stop\" ]; then\n\tstop\nelif [ \"$1\" == \"restart\" ]; then\n\tstop\n\tsleep 3\n\tstart\nelse\n\techo \"Error Command!!!   parameter is start or stop or restart\"\nfi\n"
  },
  {
    "path": "server/build.bat",
    "content": "set GOPROXY=https://goproxy.cn,direct\npushd src\npushd Server\ngo build -v -o ../../bin Server/server\npopd\npopd"
  },
  {
    "path": "server/build.sh",
    "content": "#!/bin/bash\ncd src\ncd Server\ngo install -v Server/server\ncd ..\ncd .."
  },
  {
    "path": "server/config/gameproto/all-build.bat",
    "content": "echo \"build msgs...\"\npushd msgs\ncall build.bat\npopd\n\necho \"build cs proto...\"\ncall buildgo.bat\n\necho \"build ts proto...\"\ncall buildts.bat"
  },
  {
    "path": "server/config/gameproto/base/github.com/AsynkronIT/protoactor-go/actor/protos.proto",
    "content": "syntax = \"proto3\";\npackage actor;\n\n// import \"google/protobuf/any.proto\";\nimport \"github.com/gogo/protobuf/gogoproto/gogo.proto\";\n\noption (gogoproto.gostring_all) = false;\n\nmessage PID {\n    option (gogoproto.typedecl) = false;\n    option (gogoproto.stringer) = false;\n    string address = 1;\n    string id = 2;\n}\n\n// user messages\nmessage PoisonPill {}\n\n// system messages\nmessage Watch {\n    PID watcher = 1;\n}\n\nmessage Unwatch {\n    PID watcher = 1;\n}\n\nmessage Terminated {\n    PID who = 1;\n    bool address_terminated = 2;\n}\n\nmessage Stop {}"
  },
  {
    "path": "server/config/gameproto/base/github.com/gogo/protobuf/gogoproto/gogo.proto",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nsyntax = \"proto2\";\npackage gogoproto;\n\nimport \"google/protobuf/descriptor.proto\";\n\noption java_package = \"com.google.protobuf\";\noption java_outer_classname = \"GoGoProtos\";\noption go_package = \"github.com/gogo/protobuf/gogoproto\";\n\nextend google.protobuf.EnumOptions {\n\toptional bool goproto_enum_prefix = 62001;\n\toptional bool goproto_enum_stringer = 62021;\n\toptional bool enum_stringer = 62022;\n\toptional string enum_customname = 62023;\n\toptional bool enumdecl = 62024;\n}\n\nextend google.protobuf.EnumValueOptions {\n\toptional string enumvalue_customname = 66001;\n}\n\nextend google.protobuf.FileOptions {\n\toptional bool goproto_getters_all = 63001;\n\toptional bool goproto_enum_prefix_all = 63002;\n\toptional bool goproto_stringer_all = 63003;\n\toptional bool verbose_equal_all = 63004;\n\toptional bool face_all = 63005;\n\toptional bool gostring_all = 63006;\n\toptional bool populate_all = 63007;\n\toptional bool stringer_all = 63008;\n\toptional bool onlyone_all = 63009;\n\n\toptional bool equal_all = 63013;\n\toptional bool description_all = 63014;\n\toptional bool testgen_all = 63015;\n\toptional bool benchgen_all = 63016;\n\toptional bool marshaler_all = 63017;\n\toptional bool unmarshaler_all = 63018;\n\toptional bool stable_marshaler_all = 63019;\n\n\toptional bool sizer_all = 63020;\n\n\toptional bool goproto_enum_stringer_all = 63021;\n\toptional bool enum_stringer_all = 63022;\n\n\toptional bool unsafe_marshaler_all = 63023;\n\toptional bool unsafe_unmarshaler_all = 63024;\n\n\toptional bool goproto_extensions_map_all = 63025;\n\toptional bool goproto_unrecognized_all = 63026;\n\toptional bool gogoproto_import = 63027;\n\toptional bool protosizer_all = 63028;\n\toptional bool compare_all = 63029;\n    optional bool typedecl_all = 63030;\n    optional bool enumdecl_all = 63031;\n\n\toptional bool goproto_registration = 63032;\n\toptional bool messagename_all = 63033;\n\n\toptional bool goproto_sizecache_all = 63034;\n\toptional bool goproto_unkeyed_all = 63035;\n}\n\nextend google.protobuf.MessageOptions {\n\toptional bool goproto_getters = 64001;\n\toptional bool goproto_stringer = 64003;\n\toptional bool verbose_equal = 64004;\n\toptional bool face = 64005;\n\toptional bool gostring = 64006;\n\toptional bool populate = 64007;\n\toptional bool stringer = 67008;\n\toptional bool onlyone = 64009;\n\n\toptional bool equal = 64013;\n\toptional bool description = 64014;\n\toptional bool testgen = 64015;\n\toptional bool benchgen = 64016;\n\toptional bool marshaler = 64017;\n\toptional bool unmarshaler = 64018;\n\toptional bool stable_marshaler = 64019;\n\n\toptional bool sizer = 64020;\n\n\toptional bool unsafe_marshaler = 64023;\n\toptional bool unsafe_unmarshaler = 64024;\n\n\toptional bool goproto_extensions_map = 64025;\n\toptional bool goproto_unrecognized = 64026;\n\n\toptional bool protosizer = 64028;\n\toptional bool compare = 64029;\n\n\toptional bool typedecl = 64030;\n\n\toptional bool messagename = 64033;\n\n\toptional bool goproto_sizecache = 64034;\n\toptional bool goproto_unkeyed = 64035;\n}\n\nextend google.protobuf.FieldOptions {\n\toptional bool nullable = 65001;\n\toptional bool embed = 65002;\n\toptional string customtype = 65003;\n\toptional string customname = 65004;\n\toptional string jsontag = 65005;\n\toptional string moretags = 65006;\n\toptional string casttype = 65007;\n\toptional string castkey = 65008;\n\toptional string castvalue = 65009;\n\n\toptional bool stdtime = 65010;\n\toptional bool stdduration = 65011;\n\toptional bool wktpointer = 65012;\n\n}\n"
  },
  {
    "path": "server/config/gameproto/base/github.com/gogo/protobuf/protobuf/Makefile",
    "content": "VERSION=3.9.1\nURL=\"https://raw.githubusercontent.com/protocolbuffers/protobuf/v${VERSION}/src/google/protobuf\"\n\nregenerate:\n\tgo install github.com/gogo/protobuf/protoc-gen-gogotypes\n\tgo install github.com/gogo/protobuf/protoc-min-version\n\n\tprotoc-min-version \\\n\t--version=\"3.0.0\" \\\n\t--gogotypes_out=../types/ \\\n\t-I=. \\\n\tgoogle/protobuf/any.proto \\\n\tgoogle/protobuf/type.proto \\\n\tgoogle/protobuf/empty.proto \\\n\tgoogle/protobuf/api.proto \\\n\tgoogle/protobuf/timestamp.proto \\\n\tgoogle/protobuf/duration.proto \\\n\tgoogle/protobuf/struct.proto \\\n\tgoogle/protobuf/wrappers.proto \\\n\tgoogle/protobuf/field_mask.proto \\\n\tgoogle/protobuf/source_context.proto\n\n\tmv ../types/google/protobuf/*.pb.go ../types/ || true\n\trmdir ../types/google/protobuf || true\n\trmdir ../types/google || true\n\nupdate:\n\tgo install github.com/gogo/protobuf/gogoreplace\n\n\t(cd ./google/protobuf && rm descriptor.proto; wget ${URL}/descriptor.proto)\n\t# gogoprotobuf requires users to import gogo.proto which imports descriptor.proto\n\t# The descriptor.proto is only compatible with proto3 just because of the reserved keyword.\n\t# We remove it to stay compatible with previous versions of protoc before proto3\n\tgogoreplace 'reserved 38;' '//reserved 38;' ./google/protobuf/descriptor.proto\n\tgogoreplace 'reserved 8;' '//reserved 8;' ./google/protobuf/descriptor.proto\n\tgogoreplace 'reserved 9;' '//reserved 9;' ./google/protobuf/descriptor.proto\n\tgogoreplace 'reserved 4;' '//reserved 4;' ./google/protobuf/descriptor.proto\n\tgogoreplace 'reserved 5;' '//reserved 5;' ./google/protobuf/descriptor.proto\n\tgogoreplace 'option go_package = \"github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor\";' 'option go_package = \"descriptor\";' ./google/protobuf/descriptor.proto\n\n\t(cd ./google/protobuf/compiler && rm plugin.proto; wget ${URL}/compiler/plugin.proto)\n\tgogoreplace 'option go_package = \"github.com/golang/protobuf/protoc-gen-go/plugin;plugin_go\";' 'option go_package = \"plugin_go\";' ./google/protobuf/compiler/plugin.proto\n\n\t(cd ./google/protobuf && rm any.proto; wget ${URL}/any.proto)\n\tgogoreplace 'go_package = \"github.com/golang/protobuf/ptypes/any\";' 'go_package = \"types\";' ./google/protobuf/any.proto\n\t(cd ./google/protobuf && rm empty.proto; wget ${URL}/empty.proto)\n\tgogoreplace 'go_package = \"github.com/golang/protobuf/ptypes/empty\";' 'go_package = \"types\";' ./google/protobuf/empty.proto\n\t(cd ./google/protobuf && rm timestamp.proto; wget ${URL}/timestamp.proto)\n\tgogoreplace 'go_package = \"github.com/golang/protobuf/ptypes/timestamp\";' 'go_package = \"types\";' ./google/protobuf/timestamp.proto\n\t(cd ./google/protobuf && rm duration.proto; wget ${URL}/duration.proto)\n\tgogoreplace 'go_package = \"github.com/golang/protobuf/ptypes/duration\";' 'go_package = \"types\";' ./google/protobuf/duration.proto\n\t(cd ./google/protobuf && rm struct.proto; wget ${URL}/struct.proto)\n\tgogoreplace 'go_package = \"github.com/golang/protobuf/ptypes/struct;structpb\";' 'go_package = \"types\";' ./google/protobuf/struct.proto\n\t(cd ./google/protobuf && rm wrappers.proto; wget ${URL}/wrappers.proto)\n\tgogoreplace 'go_package = \"github.com/golang/protobuf/ptypes/wrappers\";' 'go_package = \"types\";' ./google/protobuf/wrappers.proto\n\t(cd ./google/protobuf && rm field_mask.proto; wget ${URL}/field_mask.proto)\n\tgogoreplace 'option go_package = \"google.golang.org/genproto/protobuf/field_mask;field_mask\";' 'option go_package = \"types\";' ./google/protobuf/field_mask.proto\n\t(cd ./google/protobuf && rm api.proto; wget ${URL}/api.proto)\n\tgogoreplace 'option go_package = \"google.golang.org/genproto/protobuf/api;api\";' 'option go_package = \"types\";' ./google/protobuf/api.proto\n\t(cd ./google/protobuf && rm type.proto; wget ${URL}/type.proto)\n\tgogoreplace 'option go_package = \"google.golang.org/genproto/protobuf/ptype;ptype\";' 'option go_package = \"types\";' ./google/protobuf/type.proto\n\t(cd ./google/protobuf && rm source_context.proto; wget ${URL}/source_context.proto)\n\tgogoreplace 'option go_package = \"google.golang.org/genproto/protobuf/source_context;source_context\";' 'option go_package = \"types\";' ./google/protobuf/source_context.proto\n\n\n"
  },
  {
    "path": "server/config/gameproto/base/github.com/gogo/protobuf/protobuf/google/protobuf/any.proto",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nsyntax = \"proto3\";\n\npackage google.protobuf;\n\noption csharp_namespace = \"Google.Protobuf.WellKnownTypes\";\noption go_package = \"types\";\noption java_package = \"com.google.protobuf\";\noption java_outer_classname = \"AnyProto\";\noption java_multiple_files = true;\noption objc_class_prefix = \"GPB\";\n\n// `Any` contains an arbitrary serialized protocol buffer message along with a\n// URL that describes the type of the serialized message.\n//\n// Protobuf library provides support to pack/unpack Any values in the form\n// of utility functions or additional generated methods of the Any type.\n//\n// Example 1: Pack and unpack a message in C++.\n//\n//     Foo foo = ...;\n//     Any any;\n//     any.PackFrom(foo);\n//     ...\n//     if (any.UnpackTo(&foo)) {\n//       ...\n//     }\n//\n// Example 2: Pack and unpack a message in Java.\n//\n//     Foo foo = ...;\n//     Any any = Any.pack(foo);\n//     ...\n//     if (any.is(Foo.class)) {\n//       foo = any.unpack(Foo.class);\n//     }\n//\n//  Example 3: Pack and unpack a message in Python.\n//\n//     foo = Foo(...)\n//     any = Any()\n//     any.Pack(foo)\n//     ...\n//     if any.Is(Foo.DESCRIPTOR):\n//       any.Unpack(foo)\n//       ...\n//\n//  Example 4: Pack and unpack a message in Go\n//\n//      foo := &pb.Foo{...}\n//      any, err := ptypes.MarshalAny(foo)\n//      ...\n//      foo := &pb.Foo{}\n//      if err := ptypes.UnmarshalAny(any, foo); err != nil {\n//        ...\n//      }\n//\n// The pack methods provided by protobuf library will by default use\n// 'type.googleapis.com/full.type.name' as the type URL and the unpack\n// methods only use the fully qualified type name after the last '/'\n// in the type URL, for example \"foo.bar.com/x/y.z\" will yield type\n// name \"y.z\".\n//\n//\n// JSON\n// ====\n// The JSON representation of an `Any` value uses the regular\n// representation of the deserialized, embedded message, with an\n// additional field `@type` which contains the type URL. Example:\n//\n//     package google.profile;\n//     message Person {\n//       string first_name = 1;\n//       string last_name = 2;\n//     }\n//\n//     {\n//       \"@type\": \"type.googleapis.com/google.profile.Person\",\n//       \"firstName\": <string>,\n//       \"lastName\": <string>\n//     }\n//\n// If the embedded message type is well-known and has a custom JSON\n// representation, that representation will be embedded adding a field\n// `value` which holds the custom JSON in addition to the `@type`\n// field. Example (for message [google.protobuf.Duration][]):\n//\n//     {\n//       \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n//       \"value\": \"1.212s\"\n//     }\n//\nmessage Any {\n  // A URL/resource name that uniquely identifies the type of the serialized\n  // protocol buffer message. This string must contain at least\n  // one \"/\" character. The last segment of the URL's path must represent\n  // the fully qualified name of the type (as in\n  // `path/google.protobuf.Duration`). The name should be in a canonical form\n  // (e.g., leading \".\" is not accepted).\n  //\n  // In practice, teams usually precompile into the binary all types that they\n  // expect it to use in the context of Any. However, for URLs which use the\n  // scheme `http`, `https`, or no scheme, one can optionally set up a type\n  // server that maps type URLs to message definitions as follows:\n  //\n  // * If no scheme is provided, `https` is assumed.\n  // * An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  //   value in binary format, or produce an error.\n  // * Applications are allowed to cache lookup results based on the\n  //   URL, or have them precompiled into a binary to avoid any\n  //   lookup. Therefore, binary compatibility needs to be preserved\n  //   on changes to types. (Use versioned type names to manage\n  //   breaking changes.)\n  //\n  // Note: this functionality is not currently available in the official\n  // protobuf release, and it is not used for type URLs beginning with\n  // type.googleapis.com.\n  //\n  // Schemes other than `http`, `https` (or the empty scheme) might be\n  // used with implementation specific semantics.\n  //\n  string type_url = 1;\n\n  // Must be a valid serialized protocol buffer of the above specified type.\n  bytes value = 2;\n}\n"
  },
  {
    "path": "server/config/gameproto/base/github.com/gogo/protobuf/protobuf/google/protobuf/api.proto",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nsyntax = \"proto3\";\n\npackage google.protobuf;\n\nimport \"google/protobuf/source_context.proto\";\nimport \"google/protobuf/type.proto\";\n\noption csharp_namespace = \"Google.Protobuf.WellKnownTypes\";\noption java_package = \"com.google.protobuf\";\noption java_outer_classname = \"ApiProto\";\noption java_multiple_files = true;\noption objc_class_prefix = \"GPB\";\noption go_package = \"types\";\n\n// Api is a light-weight descriptor for an API Interface.\n//\n// Interfaces are also described as \"protocol buffer services\" in some contexts,\n// such as by the \"service\" keyword in a .proto file, but they are different\n// from API Services, which represent a concrete implementation of an interface\n// as opposed to simply a description of methods and bindings. They are also\n// sometimes simply referred to as \"APIs\" in other contexts, such as the name of\n// this message itself. See https://cloud.google.com/apis/design/glossary for\n// detailed terminology.\nmessage Api {\n\n  // The fully qualified name of this interface, including package name\n  // followed by the interface's simple name.\n  string name = 1;\n\n  // The methods of this interface, in unspecified order.\n  repeated Method methods = 2;\n\n  // Any metadata attached to the interface.\n  repeated Option options = 3;\n\n  // A version string for this interface. If specified, must have the form\n  // `major-version.minor-version`, as in `1.10`. If the minor version is\n  // omitted, it defaults to zero. If the entire version field is empty, the\n  // major version is derived from the package name, as outlined below. If the\n  // field is not empty, the version in the package name will be verified to be\n  // consistent with what is provided here.\n  //\n  // The versioning schema uses [semantic\n  // versioning](http://semver.org) where the major version number\n  // indicates a breaking change and the minor version an additive,\n  // non-breaking change. Both version numbers are signals to users\n  // what to expect from different versions, and should be carefully\n  // chosen based on the product plan.\n  //\n  // The major version is also reflected in the package name of the\n  // interface, which must end in `v<major-version>`, as in\n  // `google.feature.v1`. For major versions 0 and 1, the suffix can\n  // be omitted. Zero major versions must only be used for\n  // experimental, non-GA interfaces.\n  //\n  //\n  string version = 4;\n\n  // Source context for the protocol buffer service represented by this\n  // message.\n  SourceContext source_context = 5;\n\n  // Included interfaces. See [Mixin][].\n  repeated Mixin mixins = 6;\n\n  // The source syntax of the service.\n  Syntax syntax = 7;\n}\n\n// Method represents a method of an API interface.\nmessage Method {\n\n  // The simple name of this method.\n  string name = 1;\n\n  // A URL of the input message type.\n  string request_type_url = 2;\n\n  // If true, the request is streamed.\n  bool request_streaming = 3;\n\n  // The URL of the output message type.\n  string response_type_url = 4;\n\n  // If true, the response is streamed.\n  bool response_streaming = 5;\n\n  // Any metadata attached to the method.\n  repeated Option options = 6;\n\n  // The source syntax of this method.\n  Syntax syntax = 7;\n}\n\n// Declares an API Interface to be included in this interface. The including\n// interface must redeclare all the methods from the included interface, but\n// documentation and options are inherited as follows:\n//\n// - If after comment and whitespace stripping, the documentation\n//   string of the redeclared method is empty, it will be inherited\n//   from the original method.\n//\n// - Each annotation belonging to the service config (http,\n//   visibility) which is not set in the redeclared method will be\n//   inherited.\n//\n// - If an http annotation is inherited, the path pattern will be\n//   modified as follows. Any version prefix will be replaced by the\n//   version of the including interface plus the [root][] path if\n//   specified.\n//\n// Example of a simple mixin:\n//\n//     package google.acl.v1;\n//     service AccessControl {\n//       // Get the underlying ACL object.\n//       rpc GetAcl(GetAclRequest) returns (Acl) {\n//         option (google.api.http).get = \"/v1/{resource=**}:getAcl\";\n//       }\n//     }\n//\n//     package google.storage.v2;\n//     service Storage {\n//       rpc GetAcl(GetAclRequest) returns (Acl);\n//\n//       // Get a data record.\n//       rpc GetData(GetDataRequest) returns (Data) {\n//         option (google.api.http).get = \"/v2/{resource=**}\";\n//       }\n//     }\n//\n// Example of a mixin configuration:\n//\n//     apis:\n//     - name: google.storage.v2.Storage\n//       mixins:\n//       - name: google.acl.v1.AccessControl\n//\n// The mixin construct implies that all methods in `AccessControl` are\n// also declared with same name and request/response types in\n// `Storage`. A documentation generator or annotation processor will\n// see the effective `Storage.GetAcl` method after inherting\n// documentation and annotations as follows:\n//\n//     service Storage {\n//       // Get the underlying ACL object.\n//       rpc GetAcl(GetAclRequest) returns (Acl) {\n//         option (google.api.http).get = \"/v2/{resource=**}:getAcl\";\n//       }\n//       ...\n//     }\n//\n// Note how the version in the path pattern changed from `v1` to `v2`.\n//\n// If the `root` field in the mixin is specified, it should be a\n// relative path under which inherited HTTP paths are placed. Example:\n//\n//     apis:\n//     - name: google.storage.v2.Storage\n//       mixins:\n//       - name: google.acl.v1.AccessControl\n//         root: acls\n//\n// This implies the following inherited HTTP annotation:\n//\n//     service Storage {\n//       // Get the underlying ACL object.\n//       rpc GetAcl(GetAclRequest) returns (Acl) {\n//         option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\";\n//       }\n//       ...\n//     }\nmessage Mixin {\n  // The fully qualified name of the interface which is included.\n  string name = 1;\n\n  // If non-empty specifies a path under which inherited HTTP paths\n  // are rooted.\n  string root = 2;\n}\n"
  },
  {
    "path": "server/config/gameproto/base/github.com/gogo/protobuf/protobuf/google/protobuf/compiler/plugin.proto",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Author: kenton@google.com (Kenton Varda)\n//\n// WARNING:  The plugin interface is currently EXPERIMENTAL and is subject to\n//   change.\n//\n// protoc (aka the Protocol Compiler) can be extended via plugins.  A plugin is\n// just a program that reads a CodeGeneratorRequest from stdin and writes a\n// CodeGeneratorResponse to stdout.\n//\n// Plugins written using C++ can use google/protobuf/compiler/plugin.h instead\n// of dealing with the raw protocol defined here.\n//\n// A plugin executable needs only to be placed somewhere in the path.  The\n// plugin should be named \"protoc-gen-$NAME\", and will then be used when the\n// flag \"--${NAME}_out\" is passed to protoc.\n\nsyntax = \"proto2\";\n\npackage google.protobuf.compiler;\noption java_package = \"com.google.protobuf.compiler\";\noption java_outer_classname = \"PluginProtos\";\n\noption go_package = \"plugin_go\";\n\nimport \"google/protobuf/descriptor.proto\";\n\n// The version number of protocol compiler.\nmessage Version {\n  optional int32 major = 1;\n  optional int32 minor = 2;\n  optional int32 patch = 3;\n  // A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". It should\n  // be empty for mainline stable releases.\n  optional string suffix = 4;\n}\n\n// An encoded CodeGeneratorRequest is written to the plugin's stdin.\nmessage CodeGeneratorRequest {\n  // The .proto files that were explicitly listed on the command-line.  The\n  // code generator should generate code only for these files.  Each file's\n  // descriptor will be included in proto_file, below.\n  repeated string file_to_generate = 1;\n\n  // The generator parameter passed on the command-line.\n  optional string parameter = 2;\n\n  // FileDescriptorProtos for all files in files_to_generate and everything\n  // they import.  The files will appear in topological order, so each file\n  // appears before any file that imports it.\n  //\n  // protoc guarantees that all proto_files will be written after\n  // the fields above, even though this is not technically guaranteed by the\n  // protobuf wire format.  This theoretically could allow a plugin to stream\n  // in the FileDescriptorProtos and handle them one by one rather than read\n  // the entire set into memory at once.  However, as of this writing, this\n  // is not similarly optimized on protoc's end -- it will store all fields in\n  // memory at once before sending them to the plugin.\n  //\n  // Type names of fields and extensions in the FileDescriptorProto are always\n  // fully qualified.\n  repeated FileDescriptorProto proto_file = 15;\n\n  // The version number of protocol compiler.\n  optional Version compiler_version = 3;\n\n}\n\n// The plugin writes an encoded CodeGeneratorResponse to stdout.\nmessage CodeGeneratorResponse {\n  // Error message.  If non-empty, code generation failed.  The plugin process\n  // should exit with status code zero even if it reports an error in this way.\n  //\n  // This should be used to indicate errors in .proto files which prevent the\n  // code generator from generating correct code.  Errors which indicate a\n  // problem in protoc itself -- such as the input CodeGeneratorRequest being\n  // unparseable -- should be reported by writing a message to stderr and\n  // exiting with a non-zero status code.\n  optional string error = 1;\n\n  // Represents a single generated file.\n  message File {\n    // The file name, relative to the output directory.  The name must not\n    // contain \".\" or \"..\" components and must be relative, not be absolute (so,\n    // the file cannot lie outside the output directory).  \"/\" must be used as\n    // the path separator, not \"\\\".\n    //\n    // If the name is omitted, the content will be appended to the previous\n    // file.  This allows the generator to break large files into small chunks,\n    // and allows the generated text to be streamed back to protoc so that large\n    // files need not reside completely in memory at one time.  Note that as of\n    // this writing protoc does not optimize for this -- it will read the entire\n    // CodeGeneratorResponse before writing files to disk.\n    optional string name = 1;\n\n    // If non-empty, indicates that the named file should already exist, and the\n    // content here is to be inserted into that file at a defined insertion\n    // point.  This feature allows a code generator to extend the output\n    // produced by another code generator.  The original generator may provide\n    // insertion points by placing special annotations in the file that look\n    // like:\n    //   @@protoc_insertion_point(NAME)\n    // The annotation can have arbitrary text before and after it on the line,\n    // which allows it to be placed in a comment.  NAME should be replaced with\n    // an identifier naming the point -- this is what other generators will use\n    // as the insertion_point.  Code inserted at this point will be placed\n    // immediately above the line containing the insertion point (thus multiple\n    // insertions to the same point will come out in the order they were added).\n    // The double-@ is intended to make it unlikely that the generated code\n    // could contain things that look like insertion points by accident.\n    //\n    // For example, the C++ code generator places the following line in the\n    // .pb.h files that it generates:\n    //   // @@protoc_insertion_point(namespace_scope)\n    // This line appears within the scope of the file's package namespace, but\n    // outside of any particular class.  Another plugin can then specify the\n    // insertion_point \"namespace_scope\" to generate additional classes or\n    // other declarations that should be placed in this scope.\n    //\n    // Note that if the line containing the insertion point begins with\n    // whitespace, the same whitespace will be added to every line of the\n    // inserted text.  This is useful for languages like Python, where\n    // indentation matters.  In these languages, the insertion point comment\n    // should be indented the same amount as any inserted code will need to be\n    // in order to work correctly in that context.\n    //\n    // The code generator that generates the initial file and the one which\n    // inserts into it must both run as part of a single invocation of protoc.\n    // Code generators are executed in the order in which they appear on the\n    // command line.\n    //\n    // If |insertion_point| is present, |name| must also be present.\n    optional string insertion_point = 2;\n\n    // The file contents.\n    optional string content = 15;\n  }\n  repeated File file = 15;\n}\n"
  },
  {
    "path": "server/config/gameproto/base/github.com/gogo/protobuf/protobuf/google/protobuf/descriptor.proto",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Author: kenton@google.com (Kenton Varda)\n//  Based on original Protocol Buffers design by\n//  Sanjay Ghemawat, Jeff Dean, and others.\n//\n// The messages in this file describe the definitions found in .proto files.\n// A valid .proto file can be translated directly to a FileDescriptorProto\n// without any other information (e.g. without reading its imports).\n\n\nsyntax = \"proto2\";\n\npackage google.protobuf;\n\noption go_package = \"descriptor\";\noption java_package = \"com.google.protobuf\";\noption java_outer_classname = \"DescriptorProtos\";\noption csharp_namespace = \"Google.Protobuf.Reflection\";\noption objc_class_prefix = \"GPB\";\noption cc_enable_arenas = true;\n\n// descriptor.proto must be optimized for speed because reflection-based\n// algorithms don't work during bootstrapping.\noption optimize_for = SPEED;\n\n// The protocol compiler can output a FileDescriptorSet containing the .proto\n// files it parses.\nmessage FileDescriptorSet {\n  repeated FileDescriptorProto file = 1;\n}\n\n// Describes a complete .proto file.\nmessage FileDescriptorProto {\n  optional string name = 1;     // file name, relative to root of source tree\n  optional string package = 2;  // e.g. \"foo\", \"foo.bar\", etc.\n\n  // Names of files imported by this file.\n  repeated string dependency = 3;\n  // Indexes of the public imported files in the dependency list above.\n  repeated int32 public_dependency = 10;\n  // Indexes of the weak imported files in the dependency list.\n  // For Google-internal migration only. Do not use.\n  repeated int32 weak_dependency = 11;\n\n  // All top-level definitions in this file.\n  repeated DescriptorProto message_type = 4;\n  repeated EnumDescriptorProto enum_type = 5;\n  repeated ServiceDescriptorProto service = 6;\n  repeated FieldDescriptorProto extension = 7;\n\n  optional FileOptions options = 8;\n\n  // This field contains optional information about the original source code.\n  // You may safely remove this entire field without harming runtime\n  // functionality of the descriptors -- the information is needed only by\n  // development tools.\n  optional SourceCodeInfo source_code_info = 9;\n\n  // The syntax of the proto file.\n  // The supported values are \"proto2\" and \"proto3\".\n  optional string syntax = 12;\n}\n\n// Describes a message type.\nmessage DescriptorProto {\n  optional string name = 1;\n\n  repeated FieldDescriptorProto field = 2;\n  repeated FieldDescriptorProto extension = 6;\n\n  repeated DescriptorProto nested_type = 3;\n  repeated EnumDescriptorProto enum_type = 4;\n\n  message ExtensionRange {\n    optional int32 start = 1;  // Inclusive.\n    optional int32 end = 2;    // Exclusive.\n\n    optional ExtensionRangeOptions options = 3;\n  }\n  repeated ExtensionRange extension_range = 5;\n\n  repeated OneofDescriptorProto oneof_decl = 8;\n\n  optional MessageOptions options = 7;\n\n  // Range of reserved tag numbers. Reserved tag numbers may not be used by\n  // fields or extension ranges in the same message. Reserved ranges may\n  // not overlap.\n  message ReservedRange {\n    optional int32 start = 1;  // Inclusive.\n    optional int32 end = 2;    // Exclusive.\n  }\n  repeated ReservedRange reserved_range = 9;\n  // Reserved field names, which may not be used by fields in the same message.\n  // A given name may only be reserved once.\n  repeated string reserved_name = 10;\n}\n\nmessage ExtensionRangeOptions {\n  // The parser stores options it doesn't recognize here. See above.\n  repeated UninterpretedOption uninterpreted_option = 999;\n\n  // Clients can define custom options in extensions of this message. See above.\n  extensions 1000 to max;\n}\n\n// Describes a field within a message.\nmessage FieldDescriptorProto {\n  enum Type {\n    // 0 is reserved for errors.\n    // Order is weird for historical reasons.\n    TYPE_DOUBLE = 1;\n    TYPE_FLOAT = 2;\n    // Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT64 if\n    // negative values are likely.\n    TYPE_INT64 = 3;\n    TYPE_UINT64 = 4;\n    // Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT32 if\n    // negative values are likely.\n    TYPE_INT32 = 5;\n    TYPE_FIXED64 = 6;\n    TYPE_FIXED32 = 7;\n    TYPE_BOOL = 8;\n    TYPE_STRING = 9;\n    // Tag-delimited aggregate.\n    // Group type is deprecated and not supported in proto3. However, Proto3\n    // implementations should still be able to parse the group wire format and\n    // treat group fields as unknown fields.\n    TYPE_GROUP = 10;\n    TYPE_MESSAGE = 11;  // Length-delimited aggregate.\n\n    // New in version 2.\n    TYPE_BYTES = 12;\n    TYPE_UINT32 = 13;\n    TYPE_ENUM = 14;\n    TYPE_SFIXED32 = 15;\n    TYPE_SFIXED64 = 16;\n    TYPE_SINT32 = 17;  // Uses ZigZag encoding.\n    TYPE_SINT64 = 18;  // Uses ZigZag encoding.\n  }\n\n  enum Label {\n    // 0 is reserved for errors\n    LABEL_OPTIONAL = 1;\n    LABEL_REQUIRED = 2;\n    LABEL_REPEATED = 3;\n  }\n\n  optional string name = 1;\n  optional int32 number = 3;\n  optional Label label = 4;\n\n  // If type_name is set, this need not be set.  If both this and type_name\n  // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.\n  optional Type type = 5;\n\n  // For message and enum types, this is the name of the type.  If the name\n  // starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping\n  // rules are used to find the type (i.e. first the nested types within this\n  // message are searched, then within the parent, on up to the root\n  // namespace).\n  optional string type_name = 6;\n\n  // For extensions, this is the name of the type being extended.  It is\n  // resolved in the same manner as type_name.\n  optional string extendee = 2;\n\n  // For numeric types, contains the original text representation of the value.\n  // For booleans, \"true\" or \"false\".\n  // For strings, contains the default text contents (not escaped in any way).\n  // For bytes, contains the C escaped value.  All bytes >= 128 are escaped.\n  // TODO(kenton):  Base-64 encode?\n  optional string default_value = 7;\n\n  // If set, gives the index of a oneof in the containing type's oneof_decl\n  // list.  This field is a member of that oneof.\n  optional int32 oneof_index = 9;\n\n  // JSON name of this field. The value is set by protocol compiler. If the\n  // user has set a \"json_name\" option on this field, that option's value\n  // will be used. Otherwise, it's deduced from the field's name by converting\n  // it to camelCase.\n  optional string json_name = 10;\n\n  optional FieldOptions options = 8;\n}\n\n// Describes a oneof.\nmessage OneofDescriptorProto {\n  optional string name = 1;\n  optional OneofOptions options = 2;\n}\n\n// Describes an enum type.\nmessage EnumDescriptorProto {\n  optional string name = 1;\n\n  repeated EnumValueDescriptorProto value = 2;\n\n  optional EnumOptions options = 3;\n\n  // Range of reserved numeric values. Reserved values may not be used by\n  // entries in the same enum. Reserved ranges may not overlap.\n  //\n  // Note that this is distinct from DescriptorProto.ReservedRange in that it\n  // is inclusive such that it can appropriately represent the entire int32\n  // domain.\n  message EnumReservedRange {\n    optional int32 start = 1;  // Inclusive.\n    optional int32 end = 2;    // Inclusive.\n  }\n\n  // Range of reserved numeric values. Reserved numeric values may not be used\n  // by enum values in the same enum declaration. Reserved ranges may not\n  // overlap.\n  repeated EnumReservedRange reserved_range = 4;\n\n  // Reserved enum value names, which may not be reused. A given name may only\n  // be reserved once.\n  repeated string reserved_name = 5;\n}\n\n// Describes a value within an enum.\nmessage EnumValueDescriptorProto {\n  optional string name = 1;\n  optional int32 number = 2;\n\n  optional EnumValueOptions options = 3;\n}\n\n// Describes a service.\nmessage ServiceDescriptorProto {\n  optional string name = 1;\n  repeated MethodDescriptorProto method = 2;\n\n  optional ServiceOptions options = 3;\n}\n\n// Describes a method of a service.\nmessage MethodDescriptorProto {\n  optional string name = 1;\n\n  // Input and output type names.  These are resolved in the same way as\n  // FieldDescriptorProto.type_name, but must refer to a message type.\n  optional string input_type = 2;\n  optional string output_type = 3;\n\n  optional MethodOptions options = 4;\n\n  // Identifies if client streams multiple client messages\n  optional bool client_streaming = 5 [default = false];\n  // Identifies if server streams multiple server messages\n  optional bool server_streaming = 6 [default = false];\n}\n\n\n// ===================================================================\n// Options\n\n// Each of the definitions above may have \"options\" attached.  These are\n// just annotations which may cause code to be generated slightly differently\n// or may contain hints for code that manipulates protocol messages.\n//\n// Clients may define custom options as extensions of the *Options messages.\n// These extensions may not yet be known at parsing time, so the parser cannot\n// store the values in them.  Instead it stores them in a field in the *Options\n// message called uninterpreted_option. This field must have the same name\n// across all *Options messages. We then use this field to populate the\n// extensions when we build a descriptor, at which point all protos have been\n// parsed and so all extensions are known.\n//\n// Extension numbers for custom options may be chosen as follows:\n// * For options which will only be used within a single application or\n//   organization, or for experimental options, use field numbers 50000\n//   through 99999.  It is up to you to ensure that you do not use the\n//   same number for multiple options.\n// * For options which will be published and used publicly by multiple\n//   independent entities, e-mail protobuf-global-extension-registry@google.com\n//   to reserve extension numbers. Simply provide your project name (e.g.\n//   Objective-C plugin) and your project website (if available) -- there's no\n//   need to explain how you intend to use them. Usually you only need one\n//   extension number. You can declare multiple options with only one extension\n//   number by putting them in a sub-message. See the Custom Options section of\n//   the docs for examples:\n//   https://developers.google.com/protocol-buffers/docs/proto#options\n//   If this turns out to be popular, a web service will be set up\n//   to automatically assign option numbers.\n\nmessage FileOptions {\n\n  // Sets the Java package where classes generated from this .proto will be\n  // placed.  By default, the proto package is used, but this is often\n  // inappropriate because proto packages do not normally start with backwards\n  // domain names.\n  optional string java_package = 1;\n\n\n  // If set, all the classes from the .proto file are wrapped in a single\n  // outer class with the given name.  This applies to both Proto1\n  // (equivalent to the old \"--one_java_file\" option) and Proto2 (where\n  // a .proto always translates to a single class, but you may want to\n  // explicitly choose the class name).\n  optional string java_outer_classname = 8;\n\n  // If set true, then the Java code generator will generate a separate .java\n  // file for each top-level message, enum, and service defined in the .proto\n  // file.  Thus, these types will *not* be nested inside the outer class\n  // named by java_outer_classname.  However, the outer class will still be\n  // generated to contain the file's getDescriptor() method as well as any\n  // top-level extensions defined in the file.\n  optional bool java_multiple_files = 10 [default = false];\n\n  // This option does nothing.\n  optional bool java_generate_equals_and_hash = 20 [deprecated=true];\n\n  // If set true, then the Java2 code generator will generate code that\n  // throws an exception whenever an attempt is made to assign a non-UTF-8\n  // byte sequence to a string field.\n  // Message reflection will do the same.\n  // However, an extension field still accepts non-UTF-8 byte sequences.\n  // This option has no effect on when used with the lite runtime.\n  optional bool java_string_check_utf8 = 27 [default = false];\n\n\n  // Generated classes can be optimized for speed or code size.\n  enum OptimizeMode {\n    SPEED = 1;         // Generate complete code for parsing, serialization,\n                       // etc.\n    CODE_SIZE = 2;     // Use ReflectionOps to implement these methods.\n    LITE_RUNTIME = 3;  // Generate code using MessageLite and the lite runtime.\n  }\n  optional OptimizeMode optimize_for = 9 [default = SPEED];\n\n  // Sets the Go package where structs generated from this .proto will be\n  // placed. If omitted, the Go package will be derived from the following:\n  //   - The basename of the package import path, if provided.\n  //   - Otherwise, the package statement in the .proto file, if present.\n  //   - Otherwise, the basename of the .proto file, without extension.\n  optional string go_package = 11;\n\n\n\n\n  // Should generic services be generated in each language?  \"Generic\" services\n  // are not specific to any particular RPC system.  They are generated by the\n  // main code generators in each language (without additional plugins).\n  // Generic services were the only kind of service generation supported by\n  // early versions of google.protobuf.\n  //\n  // Generic services are now considered deprecated in favor of using plugins\n  // that generate code specific to your particular RPC system.  Therefore,\n  // these default to false.  Old code which depends on generic services should\n  // explicitly set them to true.\n  optional bool cc_generic_services = 16 [default = false];\n  optional bool java_generic_services = 17 [default = false];\n  optional bool py_generic_services = 18 [default = false];\n  optional bool php_generic_services = 42 [default = false];\n\n  // Is this file deprecated?\n  // Depending on the target platform, this can emit Deprecated annotations\n  // for everything in the file, or it will be completely ignored; in the very\n  // least, this is a formalization for deprecating files.\n  optional bool deprecated = 23 [default = false];\n\n  // Enables the use of arenas for the proto messages in this file. This applies\n  // only to generated classes for C++.\n  optional bool cc_enable_arenas = 31 [default = false];\n\n\n  // Sets the objective c class prefix which is prepended to all objective c\n  // generated classes from this .proto. There is no default.\n  optional string objc_class_prefix = 36;\n\n  // Namespace for generated classes; defaults to the package.\n  optional string csharp_namespace = 37;\n\n  // By default Swift generators will take the proto package and CamelCase it\n  // replacing '.' with underscore and use that to prefix the types/symbols\n  // defined. When this options is provided, they will use this value instead\n  // to prefix the types/symbols defined.\n  optional string swift_prefix = 39;\n\n  // Sets the php class prefix which is prepended to all php generated classes\n  // from this .proto. Default is empty.\n  optional string php_class_prefix = 40;\n\n  // Use this option to change the namespace of php generated classes. Default\n  // is empty. When this option is empty, the package name will be used for\n  // determining the namespace.\n  optional string php_namespace = 41;\n\n  // Use this option to change the namespace of php generated metadata classes.\n  // Default is empty. When this option is empty, the proto file name will be\n  // used for determining the namespace.\n  optional string php_metadata_namespace = 44;\n\n  // Use this option to change the package of ruby generated classes. Default\n  // is empty. When this option is not set, the package name will be used for\n  // determining the ruby package.\n  optional string ruby_package = 45;\n\n\n  // The parser stores options it doesn't recognize here.\n  // See the documentation for the \"Options\" section above.\n  repeated UninterpretedOption uninterpreted_option = 999;\n\n  // Clients can define custom options in extensions of this message.\n  // See the documentation for the \"Options\" section above.\n  extensions 1000 to max;\n\n  //reserved 38;\n}\n\nmessage MessageOptions {\n  // Set true to use the old proto1 MessageSet wire format for extensions.\n  // This is provided for backwards-compatibility with the MessageSet wire\n  // format.  You should not use this for any other reason:  It's less\n  // efficient, has fewer features, and is more complicated.\n  //\n  // The message must be defined exactly as follows:\n  //   message Foo {\n  //     option message_set_wire_format = true;\n  //     extensions 4 to max;\n  //   }\n  // Note that the message cannot have any defined fields; MessageSets only\n  // have extensions.\n  //\n  // All extensions of your type must be singular messages; e.g. they cannot\n  // be int32s, enums, or repeated messages.\n  //\n  // Because this is an option, the above two restrictions are not enforced by\n  // the protocol compiler.\n  optional bool message_set_wire_format = 1 [default = false];\n\n  // Disables the generation of the standard \"descriptor()\" accessor, which can\n  // conflict with a field of the same name.  This is meant to make migration\n  // from proto1 easier; new code should avoid fields named \"descriptor\".\n  optional bool no_standard_descriptor_accessor = 2 [default = false];\n\n  // Is this message deprecated?\n  // Depending on the target platform, this can emit Deprecated annotations\n  // for the message, or it will be completely ignored; in the very least,\n  // this is a formalization for deprecating messages.\n  optional bool deprecated = 3 [default = false];\n\n  // Whether the message is an automatically generated map entry type for the\n  // maps field.\n  //\n  // For maps fields:\n  //     map<KeyType, ValueType> map_field = 1;\n  // The parsed descriptor looks like:\n  //     message MapFieldEntry {\n  //         option map_entry = true;\n  //         optional KeyType key = 1;\n  //         optional ValueType value = 2;\n  //     }\n  //     repeated MapFieldEntry map_field = 1;\n  //\n  // Implementations may choose not to generate the map_entry=true message, but\n  // use a native map in the target language to hold the keys and values.\n  // The reflection APIs in such implementations still need to work as\n  // if the field is a repeated message field.\n  //\n  // NOTE: Do not set the option in .proto files. Always use the maps syntax\n  // instead. The option should only be implicitly set by the proto compiler\n  // parser.\n  optional bool map_entry = 7;\n\n  //reserved 8;  // javalite_serializable\n  //reserved 9;  // javanano_as_lite\n\n\n  // The parser stores options it doesn't recognize here. See above.\n  repeated UninterpretedOption uninterpreted_option = 999;\n\n  // Clients can define custom options in extensions of this message. See above.\n  extensions 1000 to max;\n}\n\nmessage FieldOptions {\n  // The ctype option instructs the C++ code generator to use a different\n  // representation of the field than it normally would.  See the specific\n  // options below.  This option is not yet implemented in the open source\n  // release -- sorry, we'll try to include it in a future version!\n  optional CType ctype = 1 [default = STRING];\n  enum CType {\n    // Default mode.\n    STRING = 0;\n\n    CORD = 1;\n\n    STRING_PIECE = 2;\n  }\n  // The packed option can be enabled for repeated primitive fields to enable\n  // a more efficient representation on the wire. Rather than repeatedly\n  // writing the tag and type for each element, the entire array is encoded as\n  // a single length-delimited blob. In proto3, only explicit setting it to\n  // false will avoid using packed encoding.\n  optional bool packed = 2;\n\n  // The jstype option determines the JavaScript type used for values of the\n  // field.  The option is permitted only for 64 bit integral and fixed types\n  // (int64, uint64, sint64, fixed64, sfixed64).  A field with jstype JS_STRING\n  // is represented as JavaScript string, which avoids loss of precision that\n  // can happen when a large value is converted to a floating point JavaScript.\n  // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to\n  // use the JavaScript \"number\" type.  The behavior of the default option\n  // JS_NORMAL is implementation dependent.\n  //\n  // This option is an enum to permit additional types to be added, e.g.\n  // goog.math.Integer.\n  optional JSType jstype = 6 [default = JS_NORMAL];\n  enum JSType {\n    // Use the default type.\n    JS_NORMAL = 0;\n\n    // Use JavaScript strings.\n    JS_STRING = 1;\n\n    // Use JavaScript numbers.\n    JS_NUMBER = 2;\n  }\n\n  // Should this field be parsed lazily?  Lazy applies only to message-type\n  // fields.  It means that when the outer message is initially parsed, the\n  // inner message's contents will not be parsed but instead stored in encoded\n  // form.  The inner message will actually be parsed when it is first accessed.\n  //\n  // This is only a hint.  Implementations are free to choose whether to use\n  // eager or lazy parsing regardless of the value of this option.  However,\n  // setting this option true suggests that the protocol author believes that\n  // using lazy parsing on this field is worth the additional bookkeeping\n  // overhead typically needed to implement it.\n  //\n  // This option does not affect the public interface of any generated code;\n  // all method signatures remain the same.  Furthermore, thread-safety of the\n  // interface is not affected by this option; const methods remain safe to\n  // call from multiple threads concurrently, while non-const methods continue\n  // to require exclusive access.\n  //\n  //\n  // Note that implementations may choose not to check required fields within\n  // a lazy sub-message.  That is, calling IsInitialized() on the outer message\n  // may return true even if the inner message has missing required fields.\n  // This is necessary because otherwise the inner message would have to be\n  // parsed in order to perform the check, defeating the purpose of lazy\n  // parsing.  An implementation which chooses not to check required fields\n  // must be consistent about it.  That is, for any particular sub-message, the\n  // implementation must either *always* check its required fields, or *never*\n  // check its required fields, regardless of whether or not the message has\n  // been parsed.\n  optional bool lazy = 5 [default = false];\n\n  // Is this field deprecated?\n  // Depending on the target platform, this can emit Deprecated annotations\n  // for accessors, or it will be completely ignored; in the very least, this\n  // is a formalization for deprecating fields.\n  optional bool deprecated = 3 [default = false];\n\n  // For Google-internal migration only. Do not use.\n  optional bool weak = 10 [default = false];\n\n\n  // The parser stores options it doesn't recognize here. See above.\n  repeated UninterpretedOption uninterpreted_option = 999;\n\n  // Clients can define custom options in extensions of this message. See above.\n  extensions 1000 to max;\n\n  //reserved 4;  // removed jtype\n}\n\nmessage OneofOptions {\n  // The parser stores options it doesn't recognize here. See above.\n  repeated UninterpretedOption uninterpreted_option = 999;\n\n  // Clients can define custom options in extensions of this message. See above.\n  extensions 1000 to max;\n}\n\nmessage EnumOptions {\n\n  // Set this option to true to allow mapping different tag names to the same\n  // value.\n  optional bool allow_alias = 2;\n\n  // Is this enum deprecated?\n  // Depending on the target platform, this can emit Deprecated annotations\n  // for the enum, or it will be completely ignored; in the very least, this\n  // is a formalization for deprecating enums.\n  optional bool deprecated = 3 [default = false];\n\n  //reserved 5;  // javanano_as_lite\n\n  // The parser stores options it doesn't recognize here. See above.\n  repeated UninterpretedOption uninterpreted_option = 999;\n\n  // Clients can define custom options in extensions of this message. See above.\n  extensions 1000 to max;\n}\n\nmessage EnumValueOptions {\n  // Is this enum value deprecated?\n  // Depending on the target platform, this can emit Deprecated annotations\n  // for the enum value, or it will be completely ignored; in the very least,\n  // this is a formalization for deprecating enum values.\n  optional bool deprecated = 1 [default = false];\n\n  // The parser stores options it doesn't recognize here. See above.\n  repeated UninterpretedOption uninterpreted_option = 999;\n\n  // Clients can define custom options in extensions of this message. See above.\n  extensions 1000 to max;\n}\n\nmessage ServiceOptions {\n\n  // Note:  Field numbers 1 through 32 are reserved for Google's internal RPC\n  //   framework.  We apologize for hoarding these numbers to ourselves, but\n  //   we were already using them long before we decided to release Protocol\n  //   Buffers.\n\n  // Is this service deprecated?\n  // Depending on the target platform, this can emit Deprecated annotations\n  // for the service, or it will be completely ignored; in the very least,\n  // this is a formalization for deprecating services.\n  optional bool deprecated = 33 [default = false];\n\n  // The parser stores options it doesn't recognize here. See above.\n  repeated UninterpretedOption uninterpreted_option = 999;\n\n  // Clients can define custom options in extensions of this message. See above.\n  extensions 1000 to max;\n}\n\nmessage MethodOptions {\n\n  // Note:  Field numbers 1 through 32 are reserved for Google's internal RPC\n  //   framework.  We apologize for hoarding these numbers to ourselves, but\n  //   we were already using them long before we decided to release Protocol\n  //   Buffers.\n\n  // Is this method deprecated?\n  // Depending on the target platform, this can emit Deprecated annotations\n  // for the method, or it will be completely ignored; in the very least,\n  // this is a formalization for deprecating methods.\n  optional bool deprecated = 33 [default = false];\n\n  // Is this method side-effect-free (or safe in HTTP parlance), or idempotent,\n  // or neither? HTTP based RPC implementation may choose GET verb for safe\n  // methods, and PUT verb for idempotent methods instead of the default POST.\n  enum IdempotencyLevel {\n    IDEMPOTENCY_UNKNOWN = 0;\n    NO_SIDE_EFFECTS = 1;  // implies idempotent\n    IDEMPOTENT = 2;       // idempotent, but may have side effects\n  }\n  optional IdempotencyLevel idempotency_level = 34\n      [default = IDEMPOTENCY_UNKNOWN];\n\n  // The parser stores options it doesn't recognize here. See above.\n  repeated UninterpretedOption uninterpreted_option = 999;\n\n  // Clients can define custom options in extensions of this message. See above.\n  extensions 1000 to max;\n}\n\n\n// A message representing a option the parser does not recognize. This only\n// appears in options protos created by the compiler::Parser class.\n// DescriptorPool resolves these when building Descriptor objects. Therefore,\n// options protos in descriptor objects (e.g. returned by Descriptor::options(),\n// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions\n// in them.\nmessage UninterpretedOption {\n  // The name of the uninterpreted option.  Each string represents a segment in\n  // a dot-separated name.  is_extension is true iff a segment represents an\n  // extension (denoted with parentheses in options specs in .proto files).\n  // E.g.,{ [\"foo\", false], [\"bar.baz\", true], [\"qux\", false] } represents\n  // \"foo.(bar.baz).qux\".\n  message NamePart {\n    required string name_part = 1;\n    required bool is_extension = 2;\n  }\n  repeated NamePart name = 2;\n\n  // The value of the uninterpreted option, in whatever type the tokenizer\n  // identified it as during parsing. Exactly one of these should be set.\n  optional string identifier_value = 3;\n  optional uint64 positive_int_value = 4;\n  optional int64 negative_int_value = 5;\n  optional double double_value = 6;\n  optional bytes string_value = 7;\n  optional string aggregate_value = 8;\n}\n\n// ===================================================================\n// Optional source code info\n\n// Encapsulates information about the original source file from which a\n// FileDescriptorProto was generated.\nmessage SourceCodeInfo {\n  // A Location identifies a piece of source code in a .proto file which\n  // corresponds to a particular definition.  This information is intended\n  // to be useful to IDEs, code indexers, documentation generators, and similar\n  // tools.\n  //\n  // For example, say we have a file like:\n  //   message Foo {\n  //     optional string foo = 1;\n  //   }\n  // Let's look at just the field definition:\n  //   optional string foo = 1;\n  //   ^       ^^     ^^  ^  ^^^\n  //   a       bc     de  f  ghi\n  // We have the following locations:\n  //   span   path               represents\n  //   [a,i)  [ 4, 0, 2, 0 ]     The whole field definition.\n  //   [a,b)  [ 4, 0, 2, 0, 4 ]  The label (optional).\n  //   [c,d)  [ 4, 0, 2, 0, 5 ]  The type (string).\n  //   [e,f)  [ 4, 0, 2, 0, 1 ]  The name (foo).\n  //   [g,h)  [ 4, 0, 2, 0, 3 ]  The number (1).\n  //\n  // Notes:\n  // - A location may refer to a repeated field itself (i.e. not to any\n  //   particular index within it).  This is used whenever a set of elements are\n  //   logically enclosed in a single code segment.  For example, an entire\n  //   extend block (possibly containing multiple extension definitions) will\n  //   have an outer location whose path refers to the \"extensions\" repeated\n  //   field without an index.\n  // - Multiple locations may have the same path.  This happens when a single\n  //   logical declaration is spread out across multiple places.  The most\n  //   obvious example is the \"extend\" block again -- there may be multiple\n  //   extend blocks in the same scope, each of which will have the same path.\n  // - A location's span is not always a subset of its parent's span.  For\n  //   example, the \"extendee\" of an extension declaration appears at the\n  //   beginning of the \"extend\" block and is shared by all extensions within\n  //   the block.\n  // - Just because a location's span is a subset of some other location's span\n  //   does not mean that it is a descendant.  For example, a \"group\" defines\n  //   both a type and a field in a single declaration.  Thus, the locations\n  //   corresponding to the type and field and their components will overlap.\n  // - Code which tries to interpret locations should probably be designed to\n  //   ignore those that it doesn't understand, as more types of locations could\n  //   be recorded in the future.\n  repeated Location location = 1;\n  message Location {\n    // Identifies which part of the FileDescriptorProto was defined at this\n    // location.\n    //\n    // Each element is a field number or an index.  They form a path from\n    // the root FileDescriptorProto to the place where the definition.  For\n    // example, this path:\n    //   [ 4, 3, 2, 7, 1 ]\n    // refers to:\n    //   file.message_type(3)  // 4, 3\n    //       .field(7)         // 2, 7\n    //       .name()           // 1\n    // This is because FileDescriptorProto.message_type has field number 4:\n    //   repeated DescriptorProto message_type = 4;\n    // and DescriptorProto.field has field number 2:\n    //   repeated FieldDescriptorProto field = 2;\n    // and FieldDescriptorProto.name has field number 1:\n    //   optional string name = 1;\n    //\n    // Thus, the above path gives the location of a field name.  If we removed\n    // the last element:\n    //   [ 4, 3, 2, 7 ]\n    // this path refers to the whole field declaration (from the beginning\n    // of the label to the terminating semicolon).\n    repeated int32 path = 1 [packed = true];\n\n    // Always has exactly three or four elements: start line, start column,\n    // end line (optional, otherwise assumed same as start line), end column.\n    // These are packed into a single field for efficiency.  Note that line\n    // and column numbers are zero-based -- typically you will want to add\n    // 1 to each before displaying to a user.\n    repeated int32 span = 2 [packed = true];\n\n    // If this SourceCodeInfo represents a complete declaration, these are any\n    // comments appearing before and after the declaration which appear to be\n    // attached to the declaration.\n    //\n    // A series of line comments appearing on consecutive lines, with no other\n    // tokens appearing on those lines, will be treated as a single comment.\n    //\n    // leading_detached_comments will keep paragraphs of comments that appear\n    // before (but not connected to) the current element. Each paragraph,\n    // separated by empty lines, will be one comment element in the repeated\n    // field.\n    //\n    // Only the comment content is provided; comment markers (e.g. //) are\n    // stripped out.  For block comments, leading whitespace and an asterisk\n    // will be stripped from the beginning of each line other than the first.\n    // Newlines are included in the output.\n    //\n    // Examples:\n    //\n    //   optional int32 foo = 1;  // Comment attached to foo.\n    //   // Comment attached to bar.\n    //   optional int32 bar = 2;\n    //\n    //   optional string baz = 3;\n    //   // Comment attached to baz.\n    //   // Another line attached to baz.\n    //\n    //   // Comment attached to qux.\n    //   //\n    //   // Another line attached to qux.\n    //   optional double qux = 4;\n    //\n    //   // Detached comment for corge. This is not leading or trailing comments\n    //   // to qux or corge because there are blank lines separating it from\n    //   // both.\n    //\n    //   // Detached comment for corge paragraph 2.\n    //\n    //   optional string corge = 5;\n    //   /* Block comment attached\n    //    * to corge.  Leading asterisks\n    //    * will be removed. */\n    //   /* Block comment attached to\n    //    * grault. */\n    //   optional int32 grault = 6;\n    //\n    //   // ignored detached comments.\n    optional string leading_comments = 3;\n    optional string trailing_comments = 4;\n    repeated string leading_detached_comments = 6;\n  }\n}\n\n// Describes the relationship between generated code and its original source\n// file. A GeneratedCodeInfo message is associated with only one generated\n// source file, but may contain references to different source .proto files.\nmessage GeneratedCodeInfo {\n  // An Annotation connects some span of text in generated code to an element\n  // of its generating .proto file.\n  repeated Annotation annotation = 1;\n  message Annotation {\n    // Identifies the element in the original source .proto file. This field\n    // is formatted the same as SourceCodeInfo.Location.path.\n    repeated int32 path = 1 [packed = true];\n\n    // Identifies the filesystem path to the original source .proto.\n    optional string source_file = 2;\n\n    // Identifies the starting offset in bytes in the generated code\n    // that relates to the identified object.\n    optional int32 begin = 3;\n\n    // Identifies the ending offset in bytes in the generated code that\n    // relates to the identified offset. The end offset should be one past\n    // the last relevant byte (so the length of the text = end - begin).\n    optional int32 end = 4;\n  }\n}\n"
  },
  {
    "path": "server/config/gameproto/base/github.com/gogo/protobuf/protobuf/google/protobuf/duration.proto",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nsyntax = \"proto3\";\n\npackage google.protobuf;\n\noption csharp_namespace = \"Google.Protobuf.WellKnownTypes\";\noption cc_enable_arenas = true;\noption go_package = \"types\";\noption java_package = \"com.google.protobuf\";\noption java_outer_classname = \"DurationProto\";\noption java_multiple_files = true;\noption objc_class_prefix = \"GPB\";\n\n// A Duration represents a signed, fixed-length span of time represented\n// as a count of seconds and fractions of seconds at nanosecond\n// resolution. It is independent of any calendar and concepts like \"day\"\n// or \"month\". It is related to Timestamp in that the difference between\n// two Timestamp values is a Duration and it can be added or subtracted\n// from a Timestamp. Range is approximately +-10,000 years.\n//\n// # Examples\n//\n// Example 1: Compute Duration from two Timestamps in pseudo code.\n//\n//     Timestamp start = ...;\n//     Timestamp end = ...;\n//     Duration duration = ...;\n//\n//     duration.seconds = end.seconds - start.seconds;\n//     duration.nanos = end.nanos - start.nanos;\n//\n//     if (duration.seconds < 0 && duration.nanos > 0) {\n//       duration.seconds += 1;\n//       duration.nanos -= 1000000000;\n//     } else if (durations.seconds > 0 && duration.nanos < 0) {\n//       duration.seconds -= 1;\n//       duration.nanos += 1000000000;\n//     }\n//\n// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.\n//\n//     Timestamp start = ...;\n//     Duration duration = ...;\n//     Timestamp end = ...;\n//\n//     end.seconds = start.seconds + duration.seconds;\n//     end.nanos = start.nanos + duration.nanos;\n//\n//     if (end.nanos < 0) {\n//       end.seconds -= 1;\n//       end.nanos += 1000000000;\n//     } else if (end.nanos >= 1000000000) {\n//       end.seconds += 1;\n//       end.nanos -= 1000000000;\n//     }\n//\n// Example 3: Compute Duration from datetime.timedelta in Python.\n//\n//     td = datetime.timedelta(days=3, minutes=10)\n//     duration = Duration()\n//     duration.FromTimedelta(td)\n//\n// # JSON Mapping\n//\n// In JSON format, the Duration type is encoded as a string rather than an\n// object, where the string ends in the suffix \"s\" (indicating seconds) and\n// is preceded by the number of seconds, with nanoseconds expressed as\n// fractional seconds. For example, 3 seconds with 0 nanoseconds should be\n// encoded in JSON format as \"3s\", while 3 seconds and 1 nanosecond should\n// be expressed in JSON format as \"3.000000001s\", and 3 seconds and 1\n// microsecond should be expressed in JSON format as \"3.000001s\".\n//\n//\nmessage Duration {\n  // Signed seconds of the span of time. Must be from -315,576,000,000\n  // to +315,576,000,000 inclusive. Note: these bounds are computed from:\n  // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n  int64 seconds = 1;\n\n  // Signed fractions of a second at nanosecond resolution of the span\n  // of time. Durations less than one second are represented with a 0\n  // `seconds` field and a positive or negative `nanos` field. For durations\n  // of one second or more, a non-zero value for the `nanos` field must be\n  // of the same sign as the `seconds` field. Must be from -999,999,999\n  // to +999,999,999 inclusive.\n  int32 nanos = 2;\n}\n"
  },
  {
    "path": "server/config/gameproto/base/github.com/gogo/protobuf/protobuf/google/protobuf/empty.proto",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nsyntax = \"proto3\";\n\npackage google.protobuf;\n\noption csharp_namespace = \"Google.Protobuf.WellKnownTypes\";\noption go_package = \"types\";\noption java_package = \"com.google.protobuf\";\noption java_outer_classname = \"EmptyProto\";\noption java_multiple_files = true;\noption objc_class_prefix = \"GPB\";\noption cc_enable_arenas = true;\n\n// A generic empty message that you can re-use to avoid defining duplicated\n// empty messages in your APIs. A typical example is to use it as the request\n// or the response type of an API method. For instance:\n//\n//     service Foo {\n//       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n//     }\n//\n// The JSON representation for `Empty` is empty JSON object `{}`.\nmessage Empty {}\n"
  },
  {
    "path": "server/config/gameproto/base/github.com/gogo/protobuf/protobuf/google/protobuf/field_mask.proto",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nsyntax = \"proto3\";\n\npackage google.protobuf;\n\noption csharp_namespace = \"Google.Protobuf.WellKnownTypes\";\noption java_package = \"com.google.protobuf\";\noption java_outer_classname = \"FieldMaskProto\";\noption java_multiple_files = true;\noption objc_class_prefix = \"GPB\";\noption go_package = \"types\";\noption cc_enable_arenas = true;\n\n// `FieldMask` represents a set of symbolic field paths, for example:\n//\n//     paths: \"f.a\"\n//     paths: \"f.b.d\"\n//\n// Here `f` represents a field in some root message, `a` and `b`\n// fields in the message found in `f`, and `d` a field found in the\n// message in `f.b`.\n//\n// Field masks are used to specify a subset of fields that should be\n// returned by a get operation or modified by an update operation.\n// Field masks also have a custom JSON encoding (see below).\n//\n// # Field Masks in Projections\n//\n// When used in the context of a projection, a response message or\n// sub-message is filtered by the API to only contain those fields as\n// specified in the mask. For example, if the mask in the previous\n// example is applied to a response message as follows:\n//\n//     f {\n//       a : 22\n//       b {\n//         d : 1\n//         x : 2\n//       }\n//       y : 13\n//     }\n//     z: 8\n//\n// The result will not contain specific values for fields x,y and z\n// (their value will be set to the default, and omitted in proto text\n// output):\n//\n//\n//     f {\n//       a : 22\n//       b {\n//         d : 1\n//       }\n//     }\n//\n// A repeated field is not allowed except at the last position of a\n// paths string.\n//\n// If a FieldMask object is not present in a get operation, the\n// operation applies to all fields (as if a FieldMask of all fields\n// had been specified).\n//\n// Note that a field mask does not necessarily apply to the\n// top-level response message. In case of a REST get operation, the\n// field mask applies directly to the response, but in case of a REST\n// list operation, the mask instead applies to each individual message\n// in the returned resource list. In case of a REST custom method,\n// other definitions may be used. Where the mask applies will be\n// clearly documented together with its declaration in the API.  In\n// any case, the effect on the returned resource/resources is required\n// behavior for APIs.\n//\n// # Field Masks in Update Operations\n//\n// A field mask in update operations specifies which fields of the\n// targeted resource are going to be updated. The API is required\n// to only change the values of the fields as specified in the mask\n// and leave the others untouched. If a resource is passed in to\n// describe the updated values, the API ignores the values of all\n// fields not covered by the mask.\n//\n// If a repeated field is specified for an update operation, new values will\n// be appended to the existing repeated field in the target resource. Note that\n// a repeated field is only allowed in the last position of a `paths` string.\n//\n// If a sub-message is specified in the last position of the field mask for an\n// update operation, then new value will be merged into the existing sub-message\n// in the target resource.\n//\n// For example, given the target message:\n//\n//     f {\n//       b {\n//         d: 1\n//         x: 2\n//       }\n//       c: [1]\n//     }\n//\n// And an update message:\n//\n//     f {\n//       b {\n//         d: 10\n//       }\n//       c: [2]\n//     }\n//\n// then if the field mask is:\n//\n//  paths: [\"f.b\", \"f.c\"]\n//\n// then the result will be:\n//\n//     f {\n//       b {\n//         d: 10\n//         x: 2\n//       }\n//       c: [1, 2]\n//     }\n//\n// An implementation may provide options to override this default behavior for\n// repeated and message fields.\n//\n// In order to reset a field's value to the default, the field must\n// be in the mask and set to the default value in the provided resource.\n// Hence, in order to reset all fields of a resource, provide a default\n// instance of the resource and set all fields in the mask, or do\n// not provide a mask as described below.\n//\n// If a field mask is not present on update, the operation applies to\n// all fields (as if a field mask of all fields has been specified).\n// Note that in the presence of schema evolution, this may mean that\n// fields the client does not know and has therefore not filled into\n// the request will be reset to their default. If this is unwanted\n// behavior, a specific service may require a client to always specify\n// a field mask, producing an error if not.\n//\n// As with get operations, the location of the resource which\n// describes the updated values in the request message depends on the\n// operation kind. In any case, the effect of the field mask is\n// required to be honored by the API.\n//\n// ## Considerations for HTTP REST\n//\n// The HTTP kind of an update operation which uses a field mask must\n// be set to PATCH instead of PUT in order to satisfy HTTP semantics\n// (PUT must only be used for full updates).\n//\n// # JSON Encoding of Field Masks\n//\n// In JSON, a field mask is encoded as a single string where paths are\n// separated by a comma. Fields name in each path are converted\n// to/from lower-camel naming conventions.\n//\n// As an example, consider the following message declarations:\n//\n//     message Profile {\n//       User user = 1;\n//       Photo photo = 2;\n//     }\n//     message User {\n//       string display_name = 1;\n//       string address = 2;\n//     }\n//\n// In proto a field mask for `Profile` may look as such:\n//\n//     mask {\n//       paths: \"user.display_name\"\n//       paths: \"photo\"\n//     }\n//\n// In JSON, the same mask is represented as below:\n//\n//     {\n//       mask: \"user.displayName,photo\"\n//     }\n//\n// # Field Masks and Oneof Fields\n//\n// Field masks treat fields in oneofs just as regular fields. Consider the\n// following message:\n//\n//     message SampleMessage {\n//       oneof test_oneof {\n//         string name = 4;\n//         SubMessage sub_message = 9;\n//       }\n//     }\n//\n// The field mask can be:\n//\n//     mask {\n//       paths: \"name\"\n//     }\n//\n// Or:\n//\n//     mask {\n//       paths: \"sub_message\"\n//     }\n//\n// Note that oneof type names (\"test_oneof\" in this case) cannot be used in\n// paths.\n//\n// ## Field Mask Verification\n//\n// The implementation of any API method which has a FieldMask type field in the\n// request should verify the included field paths, and return an\n// `INVALID_ARGUMENT` error if any path is duplicated or unmappable.\nmessage FieldMask {\n  // The set of field mask paths.\n  repeated string paths = 1;\n}\n"
  },
  {
    "path": "server/config/gameproto/base/github.com/gogo/protobuf/protobuf/google/protobuf/source_context.proto",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nsyntax = \"proto3\";\n\npackage google.protobuf;\n\noption csharp_namespace = \"Google.Protobuf.WellKnownTypes\";\noption java_package = \"com.google.protobuf\";\noption java_outer_classname = \"SourceContextProto\";\noption java_multiple_files = true;\noption objc_class_prefix = \"GPB\";\noption go_package = \"types\";\n\n// `SourceContext` represents information about the source of a\n// protobuf element, like the file in which it is defined.\nmessage SourceContext {\n  // The path-qualified name of the .proto file that contained the associated\n  // protobuf element.  For example: `\"google/protobuf/source_context.proto\"`.\n  string file_name = 1;\n}\n"
  },
  {
    "path": "server/config/gameproto/base/github.com/gogo/protobuf/protobuf/google/protobuf/struct.proto",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nsyntax = \"proto3\";\n\npackage google.protobuf;\n\noption csharp_namespace = \"Google.Protobuf.WellKnownTypes\";\noption cc_enable_arenas = true;\noption go_package = \"types\";\noption java_package = \"com.google.protobuf\";\noption java_outer_classname = \"StructProto\";\noption java_multiple_files = true;\noption objc_class_prefix = \"GPB\";\n\n// `Struct` represents a structured data value, consisting of fields\n// which map to dynamically typed values. In some languages, `Struct`\n// might be supported by a native representation. For example, in\n// scripting languages like JS a struct is represented as an\n// object. The details of that representation are described together\n// with the proto support for the language.\n//\n// The JSON representation for `Struct` is JSON object.\nmessage Struct {\n  // Unordered map of dynamically typed values.\n  map<string, Value> fields = 1;\n}\n\n// `Value` represents a dynamically typed value which can be either\n// null, a number, a string, a boolean, a recursive struct value, or a\n// list of values. A producer of value is expected to set one of that\n// variants, absence of any variant indicates an error.\n//\n// The JSON representation for `Value` is JSON value.\nmessage Value {\n  // The kind of value.\n  oneof kind {\n    // Represents a null value.\n    NullValue null_value = 1;\n    // Represents a double value.\n    double number_value = 2;\n    // Represents a string value.\n    string string_value = 3;\n    // Represents a boolean value.\n    bool bool_value = 4;\n    // Represents a structured value.\n    Struct struct_value = 5;\n    // Represents a repeated `Value`.\n    ListValue list_value = 6;\n  }\n}\n\n// `NullValue` is a singleton enumeration to represent the null value for the\n// `Value` type union.\n//\n//  The JSON representation for `NullValue` is JSON `null`.\nenum NullValue {\n  // Null value.\n  NULL_VALUE = 0;\n}\n\n// `ListValue` is a wrapper around a repeated field of values.\n//\n// The JSON representation for `ListValue` is JSON array.\nmessage ListValue {\n  // Repeated field of dynamically typed values.\n  repeated Value values = 1;\n}\n"
  },
  {
    "path": "server/config/gameproto/base/github.com/gogo/protobuf/protobuf/google/protobuf/timestamp.proto",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nsyntax = \"proto3\";\n\npackage google.protobuf;\n\noption csharp_namespace = \"Google.Protobuf.WellKnownTypes\";\noption cc_enable_arenas = true;\noption go_package = \"types\";\noption java_package = \"com.google.protobuf\";\noption java_outer_classname = \"TimestampProto\";\noption java_multiple_files = true;\noption objc_class_prefix = \"GPB\";\n\n// A Timestamp represents a point in time independent of any time zone or local\n// calendar, encoded as a count of seconds and fractions of seconds at\n// nanosecond resolution. The count is relative to an epoch at UTC midnight on\n// January 1, 1970, in the proleptic Gregorian calendar which extends the\n// Gregorian calendar backwards to year one.\n//\n// All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n// second table is needed for interpretation, using a [24-hour linear\n// smear](https://developers.google.com/time/smear).\n//\n// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n// restricting to that range, we ensure that we can convert to and from [RFC\n// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n//\n// # Examples\n//\n// Example 1: Compute Timestamp from POSIX `time()`.\n//\n//     Timestamp timestamp;\n//     timestamp.set_seconds(time(NULL));\n//     timestamp.set_nanos(0);\n//\n// Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n//\n//     struct timeval tv;\n//     gettimeofday(&tv, NULL);\n//\n//     Timestamp timestamp;\n//     timestamp.set_seconds(tv.tv_sec);\n//     timestamp.set_nanos(tv.tv_usec * 1000);\n//\n// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n//\n//     FILETIME ft;\n//     GetSystemTimeAsFileTime(&ft);\n//     UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n//\n//     // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n//     // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n//     Timestamp timestamp;\n//     timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n//     timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n//\n// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n//\n//     long millis = System.currentTimeMillis();\n//\n//     Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n//         .setNanos((int) ((millis % 1000) * 1000000)).build();\n//\n//\n// Example 5: Compute Timestamp from current time in Python.\n//\n//     timestamp = Timestamp()\n//     timestamp.GetCurrentTime()\n//\n// # JSON Mapping\n//\n// In JSON format, the Timestamp type is encoded as a string in the\n// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n// format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n// where {year} is always expressed using four digits while {month}, {day},\n// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n// are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n// is required. A proto3 JSON serializer should always use UTC (as indicated by\n// \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n// able to accept both UTC and other timezones (as indicated by an offset).\n//\n// For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n// 01:30 UTC on January 15, 2017.\n//\n// In JavaScript, one can convert a Date object to this format using the\n// standard\n// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n// method. In Python, a standard `datetime.datetime` object can be converted\n// to this format using\n// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n// the Joda Time's [`ISODateTimeFormat.dateTime()`](\n// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D\n// ) to obtain a formatter capable of generating timestamps in this format.\n//\n//\nmessage Timestamp {\n  // Represents seconds of UTC time since Unix epoch\n  // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n  // 9999-12-31T23:59:59Z inclusive.\n  int64 seconds = 1;\n\n  // Non-negative fractions of a second at nanosecond resolution. Negative\n  // second values with fractions must still have non-negative nanos values\n  // that count forward in time. Must be from 0 to 999,999,999\n  // inclusive.\n  int32 nanos = 2;\n}\n"
  },
  {
    "path": "server/config/gameproto/base/github.com/gogo/protobuf/protobuf/google/protobuf/type.proto",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nsyntax = \"proto3\";\n\npackage google.protobuf;\n\nimport \"google/protobuf/any.proto\";\nimport \"google/protobuf/source_context.proto\";\n\noption csharp_namespace = \"Google.Protobuf.WellKnownTypes\";\noption cc_enable_arenas = true;\noption java_package = \"com.google.protobuf\";\noption java_outer_classname = \"TypeProto\";\noption java_multiple_files = true;\noption objc_class_prefix = \"GPB\";\noption go_package = \"types\";\n\n// A protocol buffer message type.\nmessage Type {\n  // The fully qualified message name.\n  string name = 1;\n  // The list of fields.\n  repeated Field fields = 2;\n  // The list of types appearing in `oneof` definitions in this type.\n  repeated string oneofs = 3;\n  // The protocol buffer options.\n  repeated Option options = 4;\n  // The source context.\n  SourceContext source_context = 5;\n  // The source syntax.\n  Syntax syntax = 6;\n}\n\n// A single field of a message type.\nmessage Field {\n  // Basic field types.\n  enum Kind {\n    // Field type unknown.\n    TYPE_UNKNOWN = 0;\n    // Field type double.\n    TYPE_DOUBLE = 1;\n    // Field type float.\n    TYPE_FLOAT = 2;\n    // Field type int64.\n    TYPE_INT64 = 3;\n    // Field type uint64.\n    TYPE_UINT64 = 4;\n    // Field type int32.\n    TYPE_INT32 = 5;\n    // Field type fixed64.\n    TYPE_FIXED64 = 6;\n    // Field type fixed32.\n    TYPE_FIXED32 = 7;\n    // Field type bool.\n    TYPE_BOOL = 8;\n    // Field type string.\n    TYPE_STRING = 9;\n    // Field type group. Proto2 syntax only, and deprecated.\n    TYPE_GROUP = 10;\n    // Field type message.\n    TYPE_MESSAGE = 11;\n    // Field type bytes.\n    TYPE_BYTES = 12;\n    // Field type uint32.\n    TYPE_UINT32 = 13;\n    // Field type enum.\n    TYPE_ENUM = 14;\n    // Field type sfixed32.\n    TYPE_SFIXED32 = 15;\n    // Field type sfixed64.\n    TYPE_SFIXED64 = 16;\n    // Field type sint32.\n    TYPE_SINT32 = 17;\n    // Field type sint64.\n    TYPE_SINT64 = 18;\n  }\n\n  // Whether a field is optional, required, or repeated.\n  enum Cardinality {\n    // For fields with unknown cardinality.\n    CARDINALITY_UNKNOWN = 0;\n    // For optional fields.\n    CARDINALITY_OPTIONAL = 1;\n    // For required fields. Proto2 syntax only.\n    CARDINALITY_REQUIRED = 2;\n    // For repeated fields.\n    CARDINALITY_REPEATED = 3;\n  };\n\n  // The field type.\n  Kind kind = 1;\n  // The field cardinality.\n  Cardinality cardinality = 2;\n  // The field number.\n  int32 number = 3;\n  // The field name.\n  string name = 4;\n  // The field type URL, without the scheme, for message or enumeration\n  // types. Example: `\"type.googleapis.com/google.protobuf.Timestamp\"`.\n  string type_url = 6;\n  // The index of the field type in `Type.oneofs`, for message or enumeration\n  // types. The first type has index 1; zero means the type is not in the list.\n  int32 oneof_index = 7;\n  // Whether to use alternative packed wire representation.\n  bool packed = 8;\n  // The protocol buffer options.\n  repeated Option options = 9;\n  // The field JSON name.\n  string json_name = 10;\n  // The string value of the default value of this field. Proto2 syntax only.\n  string default_value = 11;\n}\n\n// Enum type definition.\nmessage Enum {\n  // Enum type name.\n  string name = 1;\n  // Enum value definitions.\n  repeated EnumValue enumvalue = 2;\n  // Protocol buffer options.\n  repeated Option options = 3;\n  // The source context.\n  SourceContext source_context = 4;\n  // The source syntax.\n  Syntax syntax = 5;\n}\n\n// Enum value definition.\nmessage EnumValue {\n  // Enum value name.\n  string name = 1;\n  // Enum value number.\n  int32 number = 2;\n  // Protocol buffer options.\n  repeated Option options = 3;\n}\n\n// A protocol buffer option, which can be attached to a message, field,\n// enumeration, etc.\nmessage Option {\n  // The option's name. For protobuf built-in options (options defined in\n  // descriptor.proto), this is the short name. For example, `\"map_entry\"`.\n  // For custom options, it should be the fully-qualified name. For example,\n  // `\"google.api.http\"`.\n  string name = 1;\n  // The option's value packed in an Any message. If the value is a primitive,\n  // the corresponding wrapper type defined in google/protobuf/wrappers.proto\n  // should be used. If the value is an enum, it should be stored as an int32\n  // value using the google.protobuf.Int32Value type.\n  Any value = 2;\n}\n\n// The syntax in which a protocol buffer element is defined.\nenum Syntax {\n  // Syntax `proto2`.\n  SYNTAX_PROTO2 = 0;\n  // Syntax `proto3`.\n  SYNTAX_PROTO3 = 1;\n}\n"
  },
  {
    "path": "server/config/gameproto/base/github.com/gogo/protobuf/protobuf/google/protobuf/wrappers.proto",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Wrappers for primitive (non-message) types. These types are useful\n// for embedding primitives in the `google.protobuf.Any` type and for places\n// where we need to distinguish between the absence of a primitive\n// typed field and its default value.\n//\n// These wrappers have no meaningful use within repeated fields as they lack\n// the ability to detect presence on individual elements.\n// These wrappers have no meaningful use within a map or a oneof since\n// individual entries of a map or fields of a oneof can already detect presence.\n\nsyntax = \"proto3\";\n\npackage google.protobuf;\n\noption csharp_namespace = \"Google.Protobuf.WellKnownTypes\";\noption cc_enable_arenas = true;\noption go_package = \"types\";\noption java_package = \"com.google.protobuf\";\noption java_outer_classname = \"WrappersProto\";\noption java_multiple_files = true;\noption objc_class_prefix = \"GPB\";\n\n// Wrapper message for `double`.\n//\n// The JSON representation for `DoubleValue` is JSON number.\nmessage DoubleValue {\n  // The double value.\n  double value = 1;\n}\n\n// Wrapper message for `float`.\n//\n// The JSON representation for `FloatValue` is JSON number.\nmessage FloatValue {\n  // The float value.\n  float value = 1;\n}\n\n// Wrapper message for `int64`.\n//\n// The JSON representation for `Int64Value` is JSON string.\nmessage Int64Value {\n  // The int64 value.\n  int64 value = 1;\n}\n\n// Wrapper message for `uint64`.\n//\n// The JSON representation for `UInt64Value` is JSON string.\nmessage UInt64Value {\n  // The uint64 value.\n  uint64 value = 1;\n}\n\n// Wrapper message for `int32`.\n//\n// The JSON representation for `Int32Value` is JSON number.\nmessage Int32Value {\n  // The int32 value.\n  int32 value = 1;\n}\n\n// Wrapper message for `uint32`.\n//\n// The JSON representation for `UInt32Value` is JSON number.\nmessage UInt32Value {\n  // The uint32 value.\n  uint32 value = 1;\n}\n\n// Wrapper message for `bool`.\n//\n// The JSON representation for `BoolValue` is JSON `true` and `false`.\nmessage BoolValue {\n  // The bool value.\n  bool value = 1;\n}\n\n// Wrapper message for `string`.\n//\n// The JSON representation for `StringValue` is JSON string.\nmessage StringValue {\n  // The string value.\n  string value = 1;\n}\n\n// Wrapper message for `bytes`.\n//\n// The JSON representation for `BytesValue` is JSON string.\nmessage BytesValue {\n  // The bytes value.\n  bytes value = 1;\n}\n"
  },
  {
    "path": "server/config/gameproto/buildgo.bat",
    "content": "for %%i in (*.proto) do (\n.\\tools\\protoc -I=. -I=.\\.. -I=.\\..\\..\\src --gogoslick_out=plugins=grpc:.\\..\\..\\src\\gameproto\\ %%i\n)"
  },
  {
    "path": "server/config/gameproto/buildts.bat",
    "content": "#npm install -g protobufjs\n#call pbjs -t static-module -o %tpath%/proto.js login.proto\n#call pbts -m -o %tpath%/proto.d.ts %tpath%/proto.js\n\nset tpath=%CD%/../../../ChessCardHall/assets/Libs/gameproto\nfor /f \"delims=\" %%i in ('dir /b proto \"*.proto\"') do (\n    call pbjs -t static-module -o ./temp/%%~ni.js %%~ni.proto\n    call pbts -m -o %tpath%/%%~ni.d.ts ./temp/%%~ni.js\n)\n@IF %ERRORLEVEL% NEQ 0 pause"
  },
  {
    "path": "server/config/gameproto/gamecode.proto",
    "content": "syntax = \"proto3\";\npackage gameproto;\n\nenum C2GS_CMD {\nC2GS_NONE = 0;\nC2S_LOGIN = 1 ;//  登陆\nC2S_Test = 10;//\n\nC2S_HEART_INFO = 254  ;//  心跳包\nC2S_ACK = 255 ;//  确认包\n}\n\nenum GS2C_CMD {\nGS2C_NONE = 0;\nS2C_CONFIRM = 1  ;//确认信息\n\nS2C_LOGIN_END = 2  ;//登陆结束\nS2C_LOGIN_CHAR_INFO = 3  ;//用户信息\n\nS2C_Test = 10;//\n\n}"
  },
  {
    "path": "server/config/gameproto/gamemsg.proto",
    "content": "syntax = \"proto3\";\npackage gameproto;\n//=========chat=============\nenum ChatMsgType {\n\tC2S_PrivateChat = 0;\n\tS2C_PrivateChat = 1;\n\tS2C_PrivateOtherChat = 2;\n\tC2S_WorldChat = 3;\n\tS2C_WorldChat = 4;\n}\n\n\nmessage C2S_PrivateChatMsg {\n\tstring targetName = 1;\n\tstring msg = 2;\n}\n\nmessage S2C_PrivateChatMsg {\n\tstring targetName = 1;\n\tstring msg = 2;\n\tint32 result = 3;\n}\n\nmessage S2C_PrivateOtherChatMsg {\n\tstring sendName = 1;\n\tstring msg = 2;\n}\n\nmessage C2S_WorldChatMsg {\n\tstring data = 1;\n}\nmessage S2C_WorldChatMsg {\n\tstring name = 1;\n\tstring data = 2;\n}\n\nmessage S_ReviseUserInfo {\n    string nickname = 1;\n    int32 headId = 2;\n}\n\nmessage C_Response {\n    int32 errCode = 1;\n    string msg = 2;\n}\n\n\nmessage C_UpateAttr {\n    string key = 1;\n    int64 val = 2;\n}\n\n//请求战斗\nmessage S_RequestBattle {\n    int32 stageId = 1;\n    int32 battleType = 2;\n}\nmessage C_RequestBattle {\n    int32 stageId = 1;\n    int32 battleType = 2;\n    int32 errCode = 3;    \n}\n\n\n//战斗开始\nmessage C_StartBattle {\n    int32 stageId = 1;\n    int32 battleType = 2;\n    string roomId = 3;\n}\n\n\n//结算\nmessage C_Balance {\n    int32 stageId = 1;\n    int32 battleType = 2;\n    repeated Award awards = 3;\n}\n\nmessage Award {\n    int32 aType = 1;\n    int32 aVal = 2;\n}\n\n\n//fight\nmessage FVector {\n    float x = 1;\n    float y = 2;\n}\n\nmessage Move {\n    float angle = 1;\n}\n\nmessage Shot {\n    int32 id = 1;\n    int32 bulletId = 2;\n    FVector pos = 3;\n    float angel = 4;\n}\n\nmessage UseItem {\n    int32 itemId  = 1;\n}\n\nmessage FighterSnapInfo {\n    int32 id  = 1;\n    FVector pos = 2;\n    FVector vel = 3;\n}\n\nmessage Snap {\n    repeated FighterSnapInfo infos= 1;\n}\n\n\nmessage FighterInfo {\n    int32 id = 1;\n    FVector pos = 2;\n    FVector vel = 3;\n    string name = 4;\n    int32 hp = 5;\n}\n\nmessage BattleStart {\n    FighterInfo self  = 1;\n    repeated FighterInfo fighters = 2;\n}\n\nmessage NewStage {\n    int32 stage  = 1;\n    repeated FighterInfo fighters = 2;\n}\n\nmessage GameOver {\n    int32 winner = 1;\n    int32 time = 2;\n    int32 stage = 3;\n    int32 kill = 4;\n}\n\nmessage Hit {\n    int32 bulletId = 1;\n    int32 targetId = 2;\n    int32 loseHP = 3;\n}\n\nmessage AddHP {\n    int32 add = 1;\n    int32 id = 2;\n}\n\n\nmessage Dead {\n    int32 id = 1;\n    int32 enemyId = 2;\n}\n\n\nmessage AddEntity {\n    int32 id = 1;\n    FVector pos = 2;\n    FVector vel = 3;\n    int32 etype = 4;\n}\n\nmessage RemoveEntity {\n    int32 id = 1;\n    int32 etype = 2;\n}\n"
  },
  {
    "path": "server/config/gameproto/login.proto",
    "content": "syntax = \"proto3\";\npackage gameproto;\n\n//http登录结果\nmessage UserLoginResult {\n\tuint32 uid = 1;\n\tstring gateTcpAddr = 2;\n    string gateWsAddr = 3;\n\tstring key = 4;\n\tint32 result = 5;\n}\n\n\nmessage PlatformUser {\n    enum PlatformType {\n        Engine = 0;\n        DEVICE = 99;\n\n    }\n    string platformId=1;\n    PlatformType platform=2;\n    string platformSession=3;\n    int32 platformUid=4;\n    int32 serverID=5;\n    string channelId=6;\n    int32 version=7;\n    string key = 8;\n}\n\n\nmessage LoginReturn {\n    int32 errCode=1;\n    int32 serverTime=2;\n    string args=3;\n    int32 bFirst=4;\n}\n\n\nmessage LoginInfo {\n    int32 headId=1;\n    int32 level=2;\n    int64 exp=3;\n    string nickname=4;\n    int32 sex=5;\n    int64 id=6;\n    int32 gold=7;\n    int32 diamond=8;\n}\n\n\n"
  },
  {
    "path": "server/config/gameproto/msgs/build.bat",
    "content": "protoc -I=. -I=.\\..\\..\\..\\src -I=.\\..\\..\\..\\src\\vendor  -I=%GOPATH%\\src -I=..\\.. --gogoslick_out=plugins=grpc:.\\..\\..\\..\\src\\gameproto\\msgs\\ *.proto \n"
  },
  {
    "path": "server/config/gameproto/msgs/protos.proto",
    "content": "syntax = \"proto3\";\npackage msgs;\nimport \"github.com/AsynkronIT/protoactor-go/actor/protos.proto\";\n\nimport \"share.proto\";\n//==========Login===========\n//登入游戏验证\nmessage CheckLogin {\n\tuint64 uid = 1;\n\tstring key = 2;\n}\nmessage HeartBeatMsg {\n}\n\n//=========shop=============\nenum ShopMsgType {\n\tC2S_ShopBuy = 0;\n\tS2C_ShopBuy = 1;\n\tC2S_ShopSell = 2;\n\tS2C_ShopSell = 3;\n}\n\nmessage C2S_ShopBuyMsg {\n\tuint32 itemId = 1;\n}\nmessage S2C_ShopBuyMsg {\n\tuint32 itemId = 1;\n\tGAErrorCode result = 2;\n}\n//=========bag==============\nenum BagMsgType {\n\tS2C_Bag = 0;\n}\n\n\n\n\n\n//客户端消息转rpc通用消息\nmessage FrameMsg {\n\tChannelType channel = 1;\n\tuint32 msgId  = 2;\n\tbytes rawData = 3;\n\tuint64 uid = 4;\n}\nmessage FrameMsgJson {\n\tChannelType channel = 1;\n\tstring msgId  = 2;\n\tbytes rawData = 3;\n\tuint64 uid = 4;\n}\n\nmessage FrameMsgReq {\n\tFrameMsg frame = 1;\n\tuint32 cno  = 2;\n}\nmessage FrameMsgRep {\n\t//uint32 msgId  = 1;\n\t//uint32 cno  = 2;\n\tGAErrorCode errCode = 1;\n}\n//gate发送协议\n//单\nmessage UnicastFrameMsg {\n\tFrameMsg frameMsg = 1;\n\tuint64 target = 2;\n}\n//组\nmessage MulticastFrameMsg {\n\tFrameMsg frameMsg = 1;\n\trepeated uint64 targets = 2;\n}\n//广播\nmessage BroadcastFrameMsg {\n\tFrameMsg frameMsg = 1;\n}\n\nmessage BroadcastFrameMsgJson {\n\tFrameMsgJson frameMsg = 1;\n}\n\n//加入到管理\nmessage AddAgentToParent {\n\tuint64 uid = 1;\n\tactor.PID sender = 2;\n}\n//移除管理\nmessage RemoveAgentFromParent {\n\tuint64 uid = 1;\n}\n\nmessage NewChild {\n\n}\nmessage NewChildResult {\n\tactor.PID pid = 1;\n}\n\nmessage Connect {\n    actor.PID Sender = 1;\n}\n\nmessage Connected {\n    string Message = 1;\n}\n\nmessage SpawnAgent {\n\t\n}\n\n//服务器状态\nenum ServiceState {\n\tServiceStateFree = 0;\n\tServiceFull = 1;\n\tServiceStop = 2;\n}\n\nmessage ServiceValue {\n\tstring Key = 1;\n\tstring Value = 2;\n}\n//注册服务器\nmessage AddService {\n\tstring serviceName = 1;\n\tstring serviceType = 2;\n\tactor.PID pid = 3;\n\trepeated ServiceValue values = 4;\n}\n\nmessage AddServiceRep {\n\tGAErrorCode result = 1;\n}\n//发送成功的通用返回\nmessage SendOK {\t\n}\n//解注册服务器\nmessage RemoveService {\n\tstring serviceName = 1;\n\tstring serviceType = 2;\n}\n//分配服务器\nmessage ApplyService {\n\tstring serviceType = 1;\n}\n\n//分配服务器,返回\nmessage ApplyServiceResult {\n\tstring serviceType = 1;\n\tstring serviceName = 2;\n\tactor.PID pid = 3;\n\trepeated ServiceValue values = 4;\n\tGAErrorCode result = 5;\n}\n//分配所有服务器\nmessage GetTypeServices {\n\tstring serviceType = 1;\n}\n\nmessage GetTypeServicesResult {\n\trepeated actor.PID pids = 1;\n}\n\n//长传更新服务器信息\nmessage UploadService {\n\tstring serviceName = 1;\n\tuint32 load = 2;\n\tServiceState state = 3;\n}\n\n\n//登录\nmessage UserLogin {\n\tstring account = 1;\n\tuint64 uid = 2;\n}\n\n\n//获取玩家session信息\nmessage GetSessionInfo {\n\tuint64  uid  = 1;\n}\nmessage GetSessionInfoByName {\n\tstring name = 1;\n}\nmessage GetSessionInfoResult {\n\tUserBaseInfo userInfo = 1;\n\tactor.PID agentPID = 2;\n\tGAErrorCode result = 3;\n}\n\n//玩家断线\nmessage ClientDisconnect {\n}\n//gate收到消息\nmessage ReceviceClientMsg {\n\tbytes rawdata = 1;\n}\n//玩家离开\nmessage UserLeave {\n\tuint64 uid = 1;\n\tServerType from = 2;\n\tstring reason = 3;\n}\n\n//踢下线\nmessage Kick {\n\tuint64 uid = 1;\n\tstring reason = 2;\n}\n\n//服务器check\nmessage ServerCheckLogin {\n\tuint64 uid = 1;\n\tstring key = 2;\n\tactor.PID agentPID = 3;\n}\n\n//服务器绑定信息\nmessage UserBindServer {\n\tChannelType channel = 1;\n\tactor.PID pid = 2;\n}\n\n//人物基本信息\nmessage UserBaseInfo {\n\tstring account = 1;\n\tstring name = 2;\n\tuint64 uid = 3;\n\tuint64 lv = 4;\n\tuint64 exp = 5;\n\tuint64 exptime = 6;\n}\n//验证结果\nmessage CheckLoginResult {\n\tGAErrorCode result = 1;\n\tUserBaseInfo baseInfo = 2;\n\trepeated UserBindServer bindServers = 3;\n}\n\n//创建玩家\nmessage CreatePlayer {\n\tuint64 uid = 1;\n\tactor.PID agentPID = 2;\n\tactor.PID sender = 3;\n\tactor.PID gatePID = 4;\n\tstring key = 5;\n}\nmessage CreatePlayerResult {\n\tGAErrorCode result = 1;\n\tUserBaseInfo baseInfo = 2;\n\tactor.PID playerPID = 3;//gs的player地址\n\tCreatePlayer transData = 4;\n\tactor.PID roomPID = 5;//battle的player地址\n}\n\n//掉线\nmessage PlayerOutline {\n\tstring reason = 1;\n}\n\n//心跳\nmessage Tick {\n} \n\n\n//定时刷新\nmessage TimeFlush {\n}\n\nmessage BattleRoomInfo {\n\tuint64 uid = 1;\n\tint32 rtype = 2;\n\tint32 boss = 3;\n\tstring key = 4;\n\tint32 hero = 5;\n\trepeated string card = 6;\n\trepeated int32 equip = 7;\n\tstring name = 8;\n\tint32 lv = 9;\n\tint32 ai = 10;\n}\n\n\nmessage GetLobbyInfo {\n}\n\n\nmessage LobbyQueueData {\n\tint32 type = 1;\n\tint32 num = 2;\n}\nmessage BattleServerData {\n\tstring addr = 1;\n\tint32 num = 2;\n\tint32 state = 3;\n}\nmessage GetLobbyInfoResult {\n\trepeated LobbyQueueData queuedata = 1;\n\trepeated BattleServerData battleServerData = 2;\n}\n\nmessage GetBattleServer {\n\tuint64 uid = 1;\n\tint32 rtype = 2;\n\tint32 boss = 3;\n\t//bytes roomInfo = 4;\n\tuint64 oppuid = 4;\n\tactor.PID selfPID = 5;\n}\n\nmessage GetBattleServerResult {\n\tactor.PID battlePID = 1;\n\tstring roomId = 2;\n\tGAErrorCode result = 3;\n}\n\nmessage JoinBattleQueue {\n\tuint64 uid = 1;\n\tint32 rtype = 2;\n\tbytes roomInfo = 3;\n\tactor.PID sender = 4;\n\tint32 aiNum = 5;\n}\n\nmessage JoinBattleQueueResult {\n\tuint64 waittime = 1;\n\tGAErrorCode result = 2;\n}\n\nmessage LeaveBattleQueue {\n\tuint64 uid = 1;\n}\n\nmessage MatchBattle {\n\tstring battleAddr = 1;\n\tstring roomId = 2;\n\tuint64 uid = 3;\n\tint32 rtype = 4;\n\tbytes roomInfo = 5;\n\tGAErrorCode result = 6;\n\tactor.PID roomPID = 7;\n}\n\n\nmessage CreateBattlePlayer {\n\tuint64 uid = 1;\n\tstring name = 2;\n\tint32 skin = 3;\n\tactor.PID agentPID = 4;\n\tactor.PID playerPID = 5;\n}\n\nmessage CreateBattle {\n\tstring roomId = 1;\n\tint32 stageId = 2;\n\tint32 rtype = 3;\t\n\trepeated CreateBattlePlayer players = 4;\n}\nmessage CreateBattleRep {\n\tactor.PID roomPID = 1;\n\tGAErrorCode result = 2;\n}\n\nmessage JoinBattle {\n\tstring roomId = 1;\n\tCreateBattlePlayer player = 2;\n}\n\nmessage AttachBattle {\n\tactor.PID roomPID = 1;\n}\n\nmessage DetachBattle {\n}\n\nmessage RecoverBattle {\n\tuint64 uid = 1;\n\tactor.PID agentPID = 2;\n}\nmessage RecoverBattleRep {\n\tactor.PID roomPID = 1;\n\tGAErrorCode result = 2;\n}"
  },
  {
    "path": "server/config/gameproto/msgs/share.proto",
    "content": "syntax = \"proto3\";\npackage msgs;\n\n//错误类型\nenum GAErrorCode {\n\tOK = 0;\n\tFail = 1;\n\tError = 2;\n\tServerFull = 3;\n\tKeyError = 4;\n\tNoFoundTarget = 5;\n\n\t//old code \n\tIMPORTANT_WRONG_HEAD = -1000 ;// # 包头不存在\n\n\tRESOURCE_VITALITY_ERROR = 1002  ;// # 体力不足\n\tRESOURCE_GOLD_ERROR = 1003   ;//# 金币不足\n\tRESOURCE_RMB_ERROR = 1004  ;// # 钻石不足\n\n\tGUILD_EXIT_CHAIRMAN_ERROR = 1022  ;// # 您必须先转移会长\n\n\tUNKNOWN_ERROR = -9999 ;//未知错误\n}\n\n\n//服务器类型\nenum ServerType {\n\tST_NONE = 0;\n\tST_LoginServer = 1;\n\tST_GateServer = 2;\n\tST_GameServer = 4;\n\tST_BattleServer = 8;\n\tST_CenterServer = 16;\n\tST_SessionServer = 32;\n\n\tST_ALLServer = 63;\n}\n\n//消息主类型\nenum ChannelType {\n\tLogin = 0;\n\tHeartbeat = 1;\n\n\tGameServer = 100;\n\t// Shop = 101;\n\t// Chat = 102;\n\t// Bag = 103;\t\t\t//道具包\n\t// Attr = 104;\t\t\t//人物属性\n\t// GroupCard = 105;\t//卡包\n\t// Stage = 106;\t\t//关卡\n\t// Hero = 107; \t\t//英雄\n\t// Wallet = 108; \t\t//钱包\n\t// MainQuest = 109;\t//主线任务\n\t// DailyQuest = 110;\t//每日任务\n\t\n\tBattleServer = 200; \n}\n"
  },
  {
    "path": "server/config/gameproto/share.proto",
    "content": "syntax = \"proto3\";\npackage gameproto;\n\n\n//错误类型\nenum ErrorCode {\n\tOK = 0;\n\tFail = 1;\n\tError = 2;\n\tServerFull = 3;\n\tKeyError = 4;\n\tNoFoundTarget = 5;\n\n\t//old code \n\tIMPORTANT_WRONG_HEAD = -1000 ;// # 包头不存在\n\n\tRESOURCE_VITALITY_ERROR = 1002  ;// # 体力不足\n\tRESOURCE_GOLD_ERROR = 1003   ;//# 金币不足\n\tRESOURCE_RMB_ERROR = 1004  ;// # 钻石不足\n\n\tGUILD_EXIT_CHAIRMAN_ERROR = 1022  ;// # 您必须先转移会长\n\n\tUNKNOWN_ERROR = -9999 ;//未知错误\n}\nmessage C2S_TestMsg {\n\tuint32 id = 1;\n}\nmessage S2C_TestMsg {\n\tuint32 id = 1;\n}\nmessage S2C_ConfirmInfo{\n    int32 msgHead = 1;\n    int32 code = 2;\n}\n\nenum BattleType {\n\tPVE = 0;\n\tPVP = 1;\n}"
  },
  {
    "path": "server/config/gameproto/temp/gamecode.js",
    "content": "/*eslint-disable block-scoped-var, no-redeclare, no-control-regex, no-prototype-builtins*/\n(function(global, factory) { /* global define, require, module */\n\n    /* AMD */ if (typeof define === 'function' && define.amd)\n        define([\"protobufjs/minimal\"], factory);\n\n    /* CommonJS */ else if (typeof require === 'function' && typeof module === 'object' && module && module.exports)\n        module.exports = factory(require(\"protobufjs/minimal\"));\n\n})(this, function($protobuf) {\n    \"use strict\";\n\n    // Common aliases\n    var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n    \n    // Exported root namespace\n    var $root = $protobuf.roots[\"default\"] || ($protobuf.roots[\"default\"] = {});\n    \n    $root.gameproto = (function() {\n    \n        /**\n         * Namespace gameproto.\n         * @exports gameproto\n         * @namespace\n         */\n        var gameproto = {};\n    \n        /**\n         * C2GS_CMD enum.\n         * @name gameproto.C2GS_CMD\n         * @enum {string}\n         * @property {number} C2GS_NONE=0 C2GS_NONE value\n         * @property {number} C2S_LOGIN=1 C2S_LOGIN value\n         * @property {number} C2S_Test=10 C2S_Test value\n         * @property {number} C2S_HEART_INFO=254 C2S_HEART_INFO value\n         * @property {number} C2S_ACK=255 C2S_ACK value\n         */\n        gameproto.C2GS_CMD = (function() {\n            var valuesById = {}, values = Object.create(valuesById);\n            values[valuesById[0] = \"C2GS_NONE\"] = 0;\n            values[valuesById[1] = \"C2S_LOGIN\"] = 1;\n            values[valuesById[10] = \"C2S_Test\"] = 10;\n            values[valuesById[254] = \"C2S_HEART_INFO\"] = 254;\n            values[valuesById[255] = \"C2S_ACK\"] = 255;\n            return values;\n        })();\n    \n        /**\n         * GS2C_CMD enum.\n         * @name gameproto.GS2C_CMD\n         * @enum {string}\n         * @property {number} GS2C_NONE=0 GS2C_NONE value\n         * @property {number} S2C_CONFIRM=1 S2C_CONFIRM value\n         * @property {number} S2C_LOGIN_END=2 S2C_LOGIN_END value\n         * @property {number} S2C_LOGIN_CHAR_INFO=3 S2C_LOGIN_CHAR_INFO value\n         * @property {number} S2C_Test=10 S2C_Test value\n         */\n        gameproto.GS2C_CMD = (function() {\n            var valuesById = {}, values = Object.create(valuesById);\n            values[valuesById[0] = \"GS2C_NONE\"] = 0;\n            values[valuesById[1] = \"S2C_CONFIRM\"] = 1;\n            values[valuesById[2] = \"S2C_LOGIN_END\"] = 2;\n            values[valuesById[3] = \"S2C_LOGIN_CHAR_INFO\"] = 3;\n            values[valuesById[10] = \"S2C_Test\"] = 10;\n            return values;\n        })();\n    \n        return gameproto;\n    })();\n\n    return $root;\n});\n"
  },
  {
    "path": "server/config/gameproto/temp/gamemsg.js",
    "content": "/*eslint-disable block-scoped-var, no-redeclare, no-control-regex, no-prototype-builtins*/\n(function(global, factory) { /* global define, require, module */\n\n    /* AMD */ if (typeof define === 'function' && define.amd)\n        define([\"protobufjs/minimal\"], factory);\n\n    /* CommonJS */ else if (typeof require === 'function' && typeof module === 'object' && module && module.exports)\n        module.exports = factory(require(\"protobufjs/minimal\"));\n\n})(this, function($protobuf) {\n    \"use strict\";\n\n    // Common aliases\n    var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n    \n    // Exported root namespace\n    var $root = $protobuf.roots[\"default\"] || ($protobuf.roots[\"default\"] = {});\n    \n    $root.gameproto = (function() {\n    \n        /**\n         * Namespace gameproto.\n         * @exports gameproto\n         * @namespace\n         */\n        var gameproto = {};\n    \n        /**\n         * ChatMsgType enum.\n         * @name gameproto.ChatMsgType\n         * @enum {string}\n         * @property {number} C2S_PrivateChat=0 C2S_PrivateChat value\n         * @property {number} S2C_PrivateChat=1 S2C_PrivateChat value\n         * @property {number} S2C_PrivateOtherChat=2 S2C_PrivateOtherChat value\n         * @property {number} C2S_WorldChat=3 C2S_WorldChat value\n         * @property {number} S2C_WorldChat=4 S2C_WorldChat value\n         */\n        gameproto.ChatMsgType = (function() {\n            var valuesById = {}, values = Object.create(valuesById);\n            values[valuesById[0] = \"C2S_PrivateChat\"] = 0;\n            values[valuesById[1] = \"S2C_PrivateChat\"] = 1;\n            values[valuesById[2] = \"S2C_PrivateOtherChat\"] = 2;\n            values[valuesById[3] = \"C2S_WorldChat\"] = 3;\n            values[valuesById[4] = \"S2C_WorldChat\"] = 4;\n            return values;\n        })();\n    \n        gameproto.C2S_PrivateChatMsg = (function() {\n    \n            /**\n             * Properties of a C2S_PrivateChatMsg.\n             * @memberof gameproto\n             * @interface IC2S_PrivateChatMsg\n             * @property {string|null} [targetName] C2S_PrivateChatMsg targetName\n             * @property {string|null} [msg] C2S_PrivateChatMsg msg\n             */\n    \n            /**\n             * Constructs a new C2S_PrivateChatMsg.\n             * @memberof gameproto\n             * @classdesc Represents a C2S_PrivateChatMsg.\n             * @implements IC2S_PrivateChatMsg\n             * @constructor\n             * @param {gameproto.IC2S_PrivateChatMsg=} [properties] Properties to set\n             */\n            function C2S_PrivateChatMsg(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * C2S_PrivateChatMsg targetName.\n             * @member {string} targetName\n             * @memberof gameproto.C2S_PrivateChatMsg\n             * @instance\n             */\n            C2S_PrivateChatMsg.prototype.targetName = \"\";\n    \n            /**\n             * C2S_PrivateChatMsg msg.\n             * @member {string} msg\n             * @memberof gameproto.C2S_PrivateChatMsg\n             * @instance\n             */\n            C2S_PrivateChatMsg.prototype.msg = \"\";\n    \n            /**\n             * Creates a new C2S_PrivateChatMsg instance using the specified properties.\n             * @function create\n             * @memberof gameproto.C2S_PrivateChatMsg\n             * @static\n             * @param {gameproto.IC2S_PrivateChatMsg=} [properties] Properties to set\n             * @returns {gameproto.C2S_PrivateChatMsg} C2S_PrivateChatMsg instance\n             */\n            C2S_PrivateChatMsg.create = function create(properties) {\n                return new C2S_PrivateChatMsg(properties);\n            };\n    \n            /**\n             * Encodes the specified C2S_PrivateChatMsg message. Does not implicitly {@link gameproto.C2S_PrivateChatMsg.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.C2S_PrivateChatMsg\n             * @static\n             * @param {gameproto.IC2S_PrivateChatMsg} message C2S_PrivateChatMsg message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C2S_PrivateChatMsg.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.targetName != null && message.hasOwnProperty(\"targetName\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.targetName);\n                if (message.msg != null && message.hasOwnProperty(\"msg\"))\n                    writer.uint32(/* id 2, wireType 2 =*/18).string(message.msg);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified C2S_PrivateChatMsg message, length delimited. Does not implicitly {@link gameproto.C2S_PrivateChatMsg.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.C2S_PrivateChatMsg\n             * @static\n             * @param {gameproto.IC2S_PrivateChatMsg} message C2S_PrivateChatMsg message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C2S_PrivateChatMsg.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a C2S_PrivateChatMsg message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.C2S_PrivateChatMsg\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.C2S_PrivateChatMsg} C2S_PrivateChatMsg\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C2S_PrivateChatMsg.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.C2S_PrivateChatMsg();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.targetName = reader.string();\n                        break;\n                    case 2:\n                        message.msg = reader.string();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a C2S_PrivateChatMsg message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.C2S_PrivateChatMsg\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.C2S_PrivateChatMsg} C2S_PrivateChatMsg\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C2S_PrivateChatMsg.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a C2S_PrivateChatMsg message.\n             * @function verify\n             * @memberof gameproto.C2S_PrivateChatMsg\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            C2S_PrivateChatMsg.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.targetName != null && message.hasOwnProperty(\"targetName\"))\n                    if (!$util.isString(message.targetName))\n                        return \"targetName: string expected\";\n                if (message.msg != null && message.hasOwnProperty(\"msg\"))\n                    if (!$util.isString(message.msg))\n                        return \"msg: string expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a C2S_PrivateChatMsg message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.C2S_PrivateChatMsg\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.C2S_PrivateChatMsg} C2S_PrivateChatMsg\n             */\n            C2S_PrivateChatMsg.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.C2S_PrivateChatMsg)\n                    return object;\n                var message = new $root.gameproto.C2S_PrivateChatMsg();\n                if (object.targetName != null)\n                    message.targetName = String(object.targetName);\n                if (object.msg != null)\n                    message.msg = String(object.msg);\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a C2S_PrivateChatMsg message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.C2S_PrivateChatMsg\n             * @static\n             * @param {gameproto.C2S_PrivateChatMsg} message C2S_PrivateChatMsg\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            C2S_PrivateChatMsg.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.targetName = \"\";\n                    object.msg = \"\";\n                }\n                if (message.targetName != null && message.hasOwnProperty(\"targetName\"))\n                    object.targetName = message.targetName;\n                if (message.msg != null && message.hasOwnProperty(\"msg\"))\n                    object.msg = message.msg;\n                return object;\n            };\n    \n            /**\n             * Converts this C2S_PrivateChatMsg to JSON.\n             * @function toJSON\n             * @memberof gameproto.C2S_PrivateChatMsg\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            C2S_PrivateChatMsg.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return C2S_PrivateChatMsg;\n        })();\n    \n        gameproto.S2C_PrivateChatMsg = (function() {\n    \n            /**\n             * Properties of a S2C_PrivateChatMsg.\n             * @memberof gameproto\n             * @interface IS2C_PrivateChatMsg\n             * @property {string|null} [targetName] S2C_PrivateChatMsg targetName\n             * @property {string|null} [msg] S2C_PrivateChatMsg msg\n             * @property {number|null} [result] S2C_PrivateChatMsg result\n             */\n    \n            /**\n             * Constructs a new S2C_PrivateChatMsg.\n             * @memberof gameproto\n             * @classdesc Represents a S2C_PrivateChatMsg.\n             * @implements IS2C_PrivateChatMsg\n             * @constructor\n             * @param {gameproto.IS2C_PrivateChatMsg=} [properties] Properties to set\n             */\n            function S2C_PrivateChatMsg(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * S2C_PrivateChatMsg targetName.\n             * @member {string} targetName\n             * @memberof gameproto.S2C_PrivateChatMsg\n             * @instance\n             */\n            S2C_PrivateChatMsg.prototype.targetName = \"\";\n    \n            /**\n             * S2C_PrivateChatMsg msg.\n             * @member {string} msg\n             * @memberof gameproto.S2C_PrivateChatMsg\n             * @instance\n             */\n            S2C_PrivateChatMsg.prototype.msg = \"\";\n    \n            /**\n             * S2C_PrivateChatMsg result.\n             * @member {number} result\n             * @memberof gameproto.S2C_PrivateChatMsg\n             * @instance\n             */\n            S2C_PrivateChatMsg.prototype.result = 0;\n    \n            /**\n             * Creates a new S2C_PrivateChatMsg instance using the specified properties.\n             * @function create\n             * @memberof gameproto.S2C_PrivateChatMsg\n             * @static\n             * @param {gameproto.IS2C_PrivateChatMsg=} [properties] Properties to set\n             * @returns {gameproto.S2C_PrivateChatMsg} S2C_PrivateChatMsg instance\n             */\n            S2C_PrivateChatMsg.create = function create(properties) {\n                return new S2C_PrivateChatMsg(properties);\n            };\n    \n            /**\n             * Encodes the specified S2C_PrivateChatMsg message. Does not implicitly {@link gameproto.S2C_PrivateChatMsg.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.S2C_PrivateChatMsg\n             * @static\n             * @param {gameproto.IS2C_PrivateChatMsg} message S2C_PrivateChatMsg message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            S2C_PrivateChatMsg.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.targetName != null && message.hasOwnProperty(\"targetName\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.targetName);\n                if (message.msg != null && message.hasOwnProperty(\"msg\"))\n                    writer.uint32(/* id 2, wireType 2 =*/18).string(message.msg);\n                if (message.result != null && message.hasOwnProperty(\"result\"))\n                    writer.uint32(/* id 3, wireType 0 =*/24).int32(message.result);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified S2C_PrivateChatMsg message, length delimited. Does not implicitly {@link gameproto.S2C_PrivateChatMsg.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.S2C_PrivateChatMsg\n             * @static\n             * @param {gameproto.IS2C_PrivateChatMsg} message S2C_PrivateChatMsg message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            S2C_PrivateChatMsg.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a S2C_PrivateChatMsg message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.S2C_PrivateChatMsg\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.S2C_PrivateChatMsg} S2C_PrivateChatMsg\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            S2C_PrivateChatMsg.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.S2C_PrivateChatMsg();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.targetName = reader.string();\n                        break;\n                    case 2:\n                        message.msg = reader.string();\n                        break;\n                    case 3:\n                        message.result = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a S2C_PrivateChatMsg message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.S2C_PrivateChatMsg\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.S2C_PrivateChatMsg} S2C_PrivateChatMsg\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            S2C_PrivateChatMsg.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a S2C_PrivateChatMsg message.\n             * @function verify\n             * @memberof gameproto.S2C_PrivateChatMsg\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            S2C_PrivateChatMsg.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.targetName != null && message.hasOwnProperty(\"targetName\"))\n                    if (!$util.isString(message.targetName))\n                        return \"targetName: string expected\";\n                if (message.msg != null && message.hasOwnProperty(\"msg\"))\n                    if (!$util.isString(message.msg))\n                        return \"msg: string expected\";\n                if (message.result != null && message.hasOwnProperty(\"result\"))\n                    if (!$util.isInteger(message.result))\n                        return \"result: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a S2C_PrivateChatMsg message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.S2C_PrivateChatMsg\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.S2C_PrivateChatMsg} S2C_PrivateChatMsg\n             */\n            S2C_PrivateChatMsg.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.S2C_PrivateChatMsg)\n                    return object;\n                var message = new $root.gameproto.S2C_PrivateChatMsg();\n                if (object.targetName != null)\n                    message.targetName = String(object.targetName);\n                if (object.msg != null)\n                    message.msg = String(object.msg);\n                if (object.result != null)\n                    message.result = object.result | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a S2C_PrivateChatMsg message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.S2C_PrivateChatMsg\n             * @static\n             * @param {gameproto.S2C_PrivateChatMsg} message S2C_PrivateChatMsg\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            S2C_PrivateChatMsg.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.targetName = \"\";\n                    object.msg = \"\";\n                    object.result = 0;\n                }\n                if (message.targetName != null && message.hasOwnProperty(\"targetName\"))\n                    object.targetName = message.targetName;\n                if (message.msg != null && message.hasOwnProperty(\"msg\"))\n                    object.msg = message.msg;\n                if (message.result != null && message.hasOwnProperty(\"result\"))\n                    object.result = message.result;\n                return object;\n            };\n    \n            /**\n             * Converts this S2C_PrivateChatMsg to JSON.\n             * @function toJSON\n             * @memberof gameproto.S2C_PrivateChatMsg\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            S2C_PrivateChatMsg.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return S2C_PrivateChatMsg;\n        })();\n    \n        gameproto.S2C_PrivateOtherChatMsg = (function() {\n    \n            /**\n             * Properties of a S2C_PrivateOtherChatMsg.\n             * @memberof gameproto\n             * @interface IS2C_PrivateOtherChatMsg\n             * @property {string|null} [sendName] S2C_PrivateOtherChatMsg sendName\n             * @property {string|null} [msg] S2C_PrivateOtherChatMsg msg\n             */\n    \n            /**\n             * Constructs a new S2C_PrivateOtherChatMsg.\n             * @memberof gameproto\n             * @classdesc Represents a S2C_PrivateOtherChatMsg.\n             * @implements IS2C_PrivateOtherChatMsg\n             * @constructor\n             * @param {gameproto.IS2C_PrivateOtherChatMsg=} [properties] Properties to set\n             */\n            function S2C_PrivateOtherChatMsg(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * S2C_PrivateOtherChatMsg sendName.\n             * @member {string} sendName\n             * @memberof gameproto.S2C_PrivateOtherChatMsg\n             * @instance\n             */\n            S2C_PrivateOtherChatMsg.prototype.sendName = \"\";\n    \n            /**\n             * S2C_PrivateOtherChatMsg msg.\n             * @member {string} msg\n             * @memberof gameproto.S2C_PrivateOtherChatMsg\n             * @instance\n             */\n            S2C_PrivateOtherChatMsg.prototype.msg = \"\";\n    \n            /**\n             * Creates a new S2C_PrivateOtherChatMsg instance using the specified properties.\n             * @function create\n             * @memberof gameproto.S2C_PrivateOtherChatMsg\n             * @static\n             * @param {gameproto.IS2C_PrivateOtherChatMsg=} [properties] Properties to set\n             * @returns {gameproto.S2C_PrivateOtherChatMsg} S2C_PrivateOtherChatMsg instance\n             */\n            S2C_PrivateOtherChatMsg.create = function create(properties) {\n                return new S2C_PrivateOtherChatMsg(properties);\n            };\n    \n            /**\n             * Encodes the specified S2C_PrivateOtherChatMsg message. Does not implicitly {@link gameproto.S2C_PrivateOtherChatMsg.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.S2C_PrivateOtherChatMsg\n             * @static\n             * @param {gameproto.IS2C_PrivateOtherChatMsg} message S2C_PrivateOtherChatMsg message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            S2C_PrivateOtherChatMsg.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.sendName != null && message.hasOwnProperty(\"sendName\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.sendName);\n                if (message.msg != null && message.hasOwnProperty(\"msg\"))\n                    writer.uint32(/* id 2, wireType 2 =*/18).string(message.msg);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified S2C_PrivateOtherChatMsg message, length delimited. Does not implicitly {@link gameproto.S2C_PrivateOtherChatMsg.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.S2C_PrivateOtherChatMsg\n             * @static\n             * @param {gameproto.IS2C_PrivateOtherChatMsg} message S2C_PrivateOtherChatMsg message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            S2C_PrivateOtherChatMsg.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a S2C_PrivateOtherChatMsg message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.S2C_PrivateOtherChatMsg\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.S2C_PrivateOtherChatMsg} S2C_PrivateOtherChatMsg\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            S2C_PrivateOtherChatMsg.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.S2C_PrivateOtherChatMsg();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.sendName = reader.string();\n                        break;\n                    case 2:\n                        message.msg = reader.string();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a S2C_PrivateOtherChatMsg message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.S2C_PrivateOtherChatMsg\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.S2C_PrivateOtherChatMsg} S2C_PrivateOtherChatMsg\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            S2C_PrivateOtherChatMsg.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a S2C_PrivateOtherChatMsg message.\n             * @function verify\n             * @memberof gameproto.S2C_PrivateOtherChatMsg\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            S2C_PrivateOtherChatMsg.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.sendName != null && message.hasOwnProperty(\"sendName\"))\n                    if (!$util.isString(message.sendName))\n                        return \"sendName: string expected\";\n                if (message.msg != null && message.hasOwnProperty(\"msg\"))\n                    if (!$util.isString(message.msg))\n                        return \"msg: string expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a S2C_PrivateOtherChatMsg message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.S2C_PrivateOtherChatMsg\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.S2C_PrivateOtherChatMsg} S2C_PrivateOtherChatMsg\n             */\n            S2C_PrivateOtherChatMsg.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.S2C_PrivateOtherChatMsg)\n                    return object;\n                var message = new $root.gameproto.S2C_PrivateOtherChatMsg();\n                if (object.sendName != null)\n                    message.sendName = String(object.sendName);\n                if (object.msg != null)\n                    message.msg = String(object.msg);\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a S2C_PrivateOtherChatMsg message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.S2C_PrivateOtherChatMsg\n             * @static\n             * @param {gameproto.S2C_PrivateOtherChatMsg} message S2C_PrivateOtherChatMsg\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            S2C_PrivateOtherChatMsg.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.sendName = \"\";\n                    object.msg = \"\";\n                }\n                if (message.sendName != null && message.hasOwnProperty(\"sendName\"))\n                    object.sendName = message.sendName;\n                if (message.msg != null && message.hasOwnProperty(\"msg\"))\n                    object.msg = message.msg;\n                return object;\n            };\n    \n            /**\n             * Converts this S2C_PrivateOtherChatMsg to JSON.\n             * @function toJSON\n             * @memberof gameproto.S2C_PrivateOtherChatMsg\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            S2C_PrivateOtherChatMsg.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return S2C_PrivateOtherChatMsg;\n        })();\n    \n        gameproto.C2S_WorldChatMsg = (function() {\n    \n            /**\n             * Properties of a C2S_WorldChatMsg.\n             * @memberof gameproto\n             * @interface IC2S_WorldChatMsg\n             * @property {string|null} [data] C2S_WorldChatMsg data\n             */\n    \n            /**\n             * Constructs a new C2S_WorldChatMsg.\n             * @memberof gameproto\n             * @classdesc Represents a C2S_WorldChatMsg.\n             * @implements IC2S_WorldChatMsg\n             * @constructor\n             * @param {gameproto.IC2S_WorldChatMsg=} [properties] Properties to set\n             */\n            function C2S_WorldChatMsg(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * C2S_WorldChatMsg data.\n             * @member {string} data\n             * @memberof gameproto.C2S_WorldChatMsg\n             * @instance\n             */\n            C2S_WorldChatMsg.prototype.data = \"\";\n    \n            /**\n             * Creates a new C2S_WorldChatMsg instance using the specified properties.\n             * @function create\n             * @memberof gameproto.C2S_WorldChatMsg\n             * @static\n             * @param {gameproto.IC2S_WorldChatMsg=} [properties] Properties to set\n             * @returns {gameproto.C2S_WorldChatMsg} C2S_WorldChatMsg instance\n             */\n            C2S_WorldChatMsg.create = function create(properties) {\n                return new C2S_WorldChatMsg(properties);\n            };\n    \n            /**\n             * Encodes the specified C2S_WorldChatMsg message. Does not implicitly {@link gameproto.C2S_WorldChatMsg.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.C2S_WorldChatMsg\n             * @static\n             * @param {gameproto.IC2S_WorldChatMsg} message C2S_WorldChatMsg message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C2S_WorldChatMsg.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.data != null && message.hasOwnProperty(\"data\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.data);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified C2S_WorldChatMsg message, length delimited. Does not implicitly {@link gameproto.C2S_WorldChatMsg.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.C2S_WorldChatMsg\n             * @static\n             * @param {gameproto.IC2S_WorldChatMsg} message C2S_WorldChatMsg message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C2S_WorldChatMsg.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a C2S_WorldChatMsg message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.C2S_WorldChatMsg\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.C2S_WorldChatMsg} C2S_WorldChatMsg\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C2S_WorldChatMsg.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.C2S_WorldChatMsg();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.data = reader.string();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a C2S_WorldChatMsg message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.C2S_WorldChatMsg\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.C2S_WorldChatMsg} C2S_WorldChatMsg\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C2S_WorldChatMsg.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a C2S_WorldChatMsg message.\n             * @function verify\n             * @memberof gameproto.C2S_WorldChatMsg\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            C2S_WorldChatMsg.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.data != null && message.hasOwnProperty(\"data\"))\n                    if (!$util.isString(message.data))\n                        return \"data: string expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a C2S_WorldChatMsg message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.C2S_WorldChatMsg\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.C2S_WorldChatMsg} C2S_WorldChatMsg\n             */\n            C2S_WorldChatMsg.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.C2S_WorldChatMsg)\n                    return object;\n                var message = new $root.gameproto.C2S_WorldChatMsg();\n                if (object.data != null)\n                    message.data = String(object.data);\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a C2S_WorldChatMsg message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.C2S_WorldChatMsg\n             * @static\n             * @param {gameproto.C2S_WorldChatMsg} message C2S_WorldChatMsg\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            C2S_WorldChatMsg.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults)\n                    object.data = \"\";\n                if (message.data != null && message.hasOwnProperty(\"data\"))\n                    object.data = message.data;\n                return object;\n            };\n    \n            /**\n             * Converts this C2S_WorldChatMsg to JSON.\n             * @function toJSON\n             * @memberof gameproto.C2S_WorldChatMsg\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            C2S_WorldChatMsg.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return C2S_WorldChatMsg;\n        })();\n    \n        gameproto.S2C_WorldChatMsg = (function() {\n    \n            /**\n             * Properties of a S2C_WorldChatMsg.\n             * @memberof gameproto\n             * @interface IS2C_WorldChatMsg\n             * @property {string|null} [name] S2C_WorldChatMsg name\n             * @property {string|null} [data] S2C_WorldChatMsg data\n             */\n    \n            /**\n             * Constructs a new S2C_WorldChatMsg.\n             * @memberof gameproto\n             * @classdesc Represents a S2C_WorldChatMsg.\n             * @implements IS2C_WorldChatMsg\n             * @constructor\n             * @param {gameproto.IS2C_WorldChatMsg=} [properties] Properties to set\n             */\n            function S2C_WorldChatMsg(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * S2C_WorldChatMsg name.\n             * @member {string} name\n             * @memberof gameproto.S2C_WorldChatMsg\n             * @instance\n             */\n            S2C_WorldChatMsg.prototype.name = \"\";\n    \n            /**\n             * S2C_WorldChatMsg data.\n             * @member {string} data\n             * @memberof gameproto.S2C_WorldChatMsg\n             * @instance\n             */\n            S2C_WorldChatMsg.prototype.data = \"\";\n    \n            /**\n             * Creates a new S2C_WorldChatMsg instance using the specified properties.\n             * @function create\n             * @memberof gameproto.S2C_WorldChatMsg\n             * @static\n             * @param {gameproto.IS2C_WorldChatMsg=} [properties] Properties to set\n             * @returns {gameproto.S2C_WorldChatMsg} S2C_WorldChatMsg instance\n             */\n            S2C_WorldChatMsg.create = function create(properties) {\n                return new S2C_WorldChatMsg(properties);\n            };\n    \n            /**\n             * Encodes the specified S2C_WorldChatMsg message. Does not implicitly {@link gameproto.S2C_WorldChatMsg.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.S2C_WorldChatMsg\n             * @static\n             * @param {gameproto.IS2C_WorldChatMsg} message S2C_WorldChatMsg message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            S2C_WorldChatMsg.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.name != null && message.hasOwnProperty(\"name\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n                if (message.data != null && message.hasOwnProperty(\"data\"))\n                    writer.uint32(/* id 2, wireType 2 =*/18).string(message.data);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified S2C_WorldChatMsg message, length delimited. Does not implicitly {@link gameproto.S2C_WorldChatMsg.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.S2C_WorldChatMsg\n             * @static\n             * @param {gameproto.IS2C_WorldChatMsg} message S2C_WorldChatMsg message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            S2C_WorldChatMsg.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a S2C_WorldChatMsg message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.S2C_WorldChatMsg\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.S2C_WorldChatMsg} S2C_WorldChatMsg\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            S2C_WorldChatMsg.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.S2C_WorldChatMsg();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.name = reader.string();\n                        break;\n                    case 2:\n                        message.data = reader.string();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a S2C_WorldChatMsg message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.S2C_WorldChatMsg\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.S2C_WorldChatMsg} S2C_WorldChatMsg\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            S2C_WorldChatMsg.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a S2C_WorldChatMsg message.\n             * @function verify\n             * @memberof gameproto.S2C_WorldChatMsg\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            S2C_WorldChatMsg.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.name != null && message.hasOwnProperty(\"name\"))\n                    if (!$util.isString(message.name))\n                        return \"name: string expected\";\n                if (message.data != null && message.hasOwnProperty(\"data\"))\n                    if (!$util.isString(message.data))\n                        return \"data: string expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a S2C_WorldChatMsg message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.S2C_WorldChatMsg\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.S2C_WorldChatMsg} S2C_WorldChatMsg\n             */\n            S2C_WorldChatMsg.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.S2C_WorldChatMsg)\n                    return object;\n                var message = new $root.gameproto.S2C_WorldChatMsg();\n                if (object.name != null)\n                    message.name = String(object.name);\n                if (object.data != null)\n                    message.data = String(object.data);\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a S2C_WorldChatMsg message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.S2C_WorldChatMsg\n             * @static\n             * @param {gameproto.S2C_WorldChatMsg} message S2C_WorldChatMsg\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            S2C_WorldChatMsg.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.name = \"\";\n                    object.data = \"\";\n                }\n                if (message.name != null && message.hasOwnProperty(\"name\"))\n                    object.name = message.name;\n                if (message.data != null && message.hasOwnProperty(\"data\"))\n                    object.data = message.data;\n                return object;\n            };\n    \n            /**\n             * Converts this S2C_WorldChatMsg to JSON.\n             * @function toJSON\n             * @memberof gameproto.S2C_WorldChatMsg\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            S2C_WorldChatMsg.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return S2C_WorldChatMsg;\n        })();\n    \n        gameproto.S_ReviseUserInfo = (function() {\n    \n            /**\n             * Properties of a S_ReviseUserInfo.\n             * @memberof gameproto\n             * @interface IS_ReviseUserInfo\n             * @property {string|null} [nickname] S_ReviseUserInfo nickname\n             * @property {number|null} [headId] S_ReviseUserInfo headId\n             */\n    \n            /**\n             * Constructs a new S_ReviseUserInfo.\n             * @memberof gameproto\n             * @classdesc Represents a S_ReviseUserInfo.\n             * @implements IS_ReviseUserInfo\n             * @constructor\n             * @param {gameproto.IS_ReviseUserInfo=} [properties] Properties to set\n             */\n            function S_ReviseUserInfo(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * S_ReviseUserInfo nickname.\n             * @member {string} nickname\n             * @memberof gameproto.S_ReviseUserInfo\n             * @instance\n             */\n            S_ReviseUserInfo.prototype.nickname = \"\";\n    \n            /**\n             * S_ReviseUserInfo headId.\n             * @member {number} headId\n             * @memberof gameproto.S_ReviseUserInfo\n             * @instance\n             */\n            S_ReviseUserInfo.prototype.headId = 0;\n    \n            /**\n             * Creates a new S_ReviseUserInfo instance using the specified properties.\n             * @function create\n             * @memberof gameproto.S_ReviseUserInfo\n             * @static\n             * @param {gameproto.IS_ReviseUserInfo=} [properties] Properties to set\n             * @returns {gameproto.S_ReviseUserInfo} S_ReviseUserInfo instance\n             */\n            S_ReviseUserInfo.create = function create(properties) {\n                return new S_ReviseUserInfo(properties);\n            };\n    \n            /**\n             * Encodes the specified S_ReviseUserInfo message. Does not implicitly {@link gameproto.S_ReviseUserInfo.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.S_ReviseUserInfo\n             * @static\n             * @param {gameproto.IS_ReviseUserInfo} message S_ReviseUserInfo message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            S_ReviseUserInfo.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.nickname != null && message.hasOwnProperty(\"nickname\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.nickname);\n                if (message.headId != null && message.hasOwnProperty(\"headId\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.headId);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified S_ReviseUserInfo message, length delimited. Does not implicitly {@link gameproto.S_ReviseUserInfo.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.S_ReviseUserInfo\n             * @static\n             * @param {gameproto.IS_ReviseUserInfo} message S_ReviseUserInfo message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            S_ReviseUserInfo.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a S_ReviseUserInfo message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.S_ReviseUserInfo\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.S_ReviseUserInfo} S_ReviseUserInfo\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            S_ReviseUserInfo.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.S_ReviseUserInfo();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.nickname = reader.string();\n                        break;\n                    case 2:\n                        message.headId = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a S_ReviseUserInfo message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.S_ReviseUserInfo\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.S_ReviseUserInfo} S_ReviseUserInfo\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            S_ReviseUserInfo.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a S_ReviseUserInfo message.\n             * @function verify\n             * @memberof gameproto.S_ReviseUserInfo\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            S_ReviseUserInfo.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.nickname != null && message.hasOwnProperty(\"nickname\"))\n                    if (!$util.isString(message.nickname))\n                        return \"nickname: string expected\";\n                if (message.headId != null && message.hasOwnProperty(\"headId\"))\n                    if (!$util.isInteger(message.headId))\n                        return \"headId: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a S_ReviseUserInfo message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.S_ReviseUserInfo\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.S_ReviseUserInfo} S_ReviseUserInfo\n             */\n            S_ReviseUserInfo.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.S_ReviseUserInfo)\n                    return object;\n                var message = new $root.gameproto.S_ReviseUserInfo();\n                if (object.nickname != null)\n                    message.nickname = String(object.nickname);\n                if (object.headId != null)\n                    message.headId = object.headId | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a S_ReviseUserInfo message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.S_ReviseUserInfo\n             * @static\n             * @param {gameproto.S_ReviseUserInfo} message S_ReviseUserInfo\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            S_ReviseUserInfo.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.nickname = \"\";\n                    object.headId = 0;\n                }\n                if (message.nickname != null && message.hasOwnProperty(\"nickname\"))\n                    object.nickname = message.nickname;\n                if (message.headId != null && message.hasOwnProperty(\"headId\"))\n                    object.headId = message.headId;\n                return object;\n            };\n    \n            /**\n             * Converts this S_ReviseUserInfo to JSON.\n             * @function toJSON\n             * @memberof gameproto.S_ReviseUserInfo\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            S_ReviseUserInfo.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return S_ReviseUserInfo;\n        })();\n    \n        gameproto.C_Response = (function() {\n    \n            /**\n             * Properties of a C_Response.\n             * @memberof gameproto\n             * @interface IC_Response\n             * @property {number|null} [errCode] C_Response errCode\n             * @property {string|null} [msg] C_Response msg\n             */\n    \n            /**\n             * Constructs a new C_Response.\n             * @memberof gameproto\n             * @classdesc Represents a C_Response.\n             * @implements IC_Response\n             * @constructor\n             * @param {gameproto.IC_Response=} [properties] Properties to set\n             */\n            function C_Response(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * C_Response errCode.\n             * @member {number} errCode\n             * @memberof gameproto.C_Response\n             * @instance\n             */\n            C_Response.prototype.errCode = 0;\n    \n            /**\n             * C_Response msg.\n             * @member {string} msg\n             * @memberof gameproto.C_Response\n             * @instance\n             */\n            C_Response.prototype.msg = \"\";\n    \n            /**\n             * Creates a new C_Response instance using the specified properties.\n             * @function create\n             * @memberof gameproto.C_Response\n             * @static\n             * @param {gameproto.IC_Response=} [properties] Properties to set\n             * @returns {gameproto.C_Response} C_Response instance\n             */\n            C_Response.create = function create(properties) {\n                return new C_Response(properties);\n            };\n    \n            /**\n             * Encodes the specified C_Response message. Does not implicitly {@link gameproto.C_Response.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.C_Response\n             * @static\n             * @param {gameproto.IC_Response} message C_Response message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C_Response.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.errCode != null && message.hasOwnProperty(\"errCode\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.errCode);\n                if (message.msg != null && message.hasOwnProperty(\"msg\"))\n                    writer.uint32(/* id 2, wireType 2 =*/18).string(message.msg);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified C_Response message, length delimited. Does not implicitly {@link gameproto.C_Response.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.C_Response\n             * @static\n             * @param {gameproto.IC_Response} message C_Response message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C_Response.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a C_Response message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.C_Response\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.C_Response} C_Response\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C_Response.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.C_Response();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.errCode = reader.int32();\n                        break;\n                    case 2:\n                        message.msg = reader.string();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a C_Response message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.C_Response\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.C_Response} C_Response\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C_Response.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a C_Response message.\n             * @function verify\n             * @memberof gameproto.C_Response\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            C_Response.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.errCode != null && message.hasOwnProperty(\"errCode\"))\n                    if (!$util.isInteger(message.errCode))\n                        return \"errCode: integer expected\";\n                if (message.msg != null && message.hasOwnProperty(\"msg\"))\n                    if (!$util.isString(message.msg))\n                        return \"msg: string expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a C_Response message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.C_Response\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.C_Response} C_Response\n             */\n            C_Response.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.C_Response)\n                    return object;\n                var message = new $root.gameproto.C_Response();\n                if (object.errCode != null)\n                    message.errCode = object.errCode | 0;\n                if (object.msg != null)\n                    message.msg = String(object.msg);\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a C_Response message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.C_Response\n             * @static\n             * @param {gameproto.C_Response} message C_Response\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            C_Response.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.errCode = 0;\n                    object.msg = \"\";\n                }\n                if (message.errCode != null && message.hasOwnProperty(\"errCode\"))\n                    object.errCode = message.errCode;\n                if (message.msg != null && message.hasOwnProperty(\"msg\"))\n                    object.msg = message.msg;\n                return object;\n            };\n    \n            /**\n             * Converts this C_Response to JSON.\n             * @function toJSON\n             * @memberof gameproto.C_Response\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            C_Response.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return C_Response;\n        })();\n    \n        gameproto.C_UpateAttr = (function() {\n    \n            /**\n             * Properties of a C_UpateAttr.\n             * @memberof gameproto\n             * @interface IC_UpateAttr\n             * @property {string|null} [key] C_UpateAttr key\n             * @property {number|Long|null} [val] C_UpateAttr val\n             */\n    \n            /**\n             * Constructs a new C_UpateAttr.\n             * @memberof gameproto\n             * @classdesc Represents a C_UpateAttr.\n             * @implements IC_UpateAttr\n             * @constructor\n             * @param {gameproto.IC_UpateAttr=} [properties] Properties to set\n             */\n            function C_UpateAttr(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * C_UpateAttr key.\n             * @member {string} key\n             * @memberof gameproto.C_UpateAttr\n             * @instance\n             */\n            C_UpateAttr.prototype.key = \"\";\n    \n            /**\n             * C_UpateAttr val.\n             * @member {number|Long} val\n             * @memberof gameproto.C_UpateAttr\n             * @instance\n             */\n            C_UpateAttr.prototype.val = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n    \n            /**\n             * Creates a new C_UpateAttr instance using the specified properties.\n             * @function create\n             * @memberof gameproto.C_UpateAttr\n             * @static\n             * @param {gameproto.IC_UpateAttr=} [properties] Properties to set\n             * @returns {gameproto.C_UpateAttr} C_UpateAttr instance\n             */\n            C_UpateAttr.create = function create(properties) {\n                return new C_UpateAttr(properties);\n            };\n    \n            /**\n             * Encodes the specified C_UpateAttr message. Does not implicitly {@link gameproto.C_UpateAttr.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.C_UpateAttr\n             * @static\n             * @param {gameproto.IC_UpateAttr} message C_UpateAttr message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C_UpateAttr.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.key != null && message.hasOwnProperty(\"key\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.key);\n                if (message.val != null && message.hasOwnProperty(\"val\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int64(message.val);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified C_UpateAttr message, length delimited. Does not implicitly {@link gameproto.C_UpateAttr.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.C_UpateAttr\n             * @static\n             * @param {gameproto.IC_UpateAttr} message C_UpateAttr message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C_UpateAttr.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a C_UpateAttr message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.C_UpateAttr\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.C_UpateAttr} C_UpateAttr\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C_UpateAttr.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.C_UpateAttr();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.key = reader.string();\n                        break;\n                    case 2:\n                        message.val = reader.int64();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a C_UpateAttr message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.C_UpateAttr\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.C_UpateAttr} C_UpateAttr\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C_UpateAttr.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a C_UpateAttr message.\n             * @function verify\n             * @memberof gameproto.C_UpateAttr\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            C_UpateAttr.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.key != null && message.hasOwnProperty(\"key\"))\n                    if (!$util.isString(message.key))\n                        return \"key: string expected\";\n                if (message.val != null && message.hasOwnProperty(\"val\"))\n                    if (!$util.isInteger(message.val) && !(message.val && $util.isInteger(message.val.low) && $util.isInteger(message.val.high)))\n                        return \"val: integer|Long expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a C_UpateAttr message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.C_UpateAttr\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.C_UpateAttr} C_UpateAttr\n             */\n            C_UpateAttr.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.C_UpateAttr)\n                    return object;\n                var message = new $root.gameproto.C_UpateAttr();\n                if (object.key != null)\n                    message.key = String(object.key);\n                if (object.val != null)\n                    if ($util.Long)\n                        (message.val = $util.Long.fromValue(object.val)).unsigned = false;\n                    else if (typeof object.val === \"string\")\n                        message.val = parseInt(object.val, 10);\n                    else if (typeof object.val === \"number\")\n                        message.val = object.val;\n                    else if (typeof object.val === \"object\")\n                        message.val = new $util.LongBits(object.val.low >>> 0, object.val.high >>> 0).toNumber();\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a C_UpateAttr message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.C_UpateAttr\n             * @static\n             * @param {gameproto.C_UpateAttr} message C_UpateAttr\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            C_UpateAttr.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.key = \"\";\n                    if ($util.Long) {\n                        var long = new $util.Long(0, 0, false);\n                        object.val = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n                    } else\n                        object.val = options.longs === String ? \"0\" : 0;\n                }\n                if (message.key != null && message.hasOwnProperty(\"key\"))\n                    object.key = message.key;\n                if (message.val != null && message.hasOwnProperty(\"val\"))\n                    if (typeof message.val === \"number\")\n                        object.val = options.longs === String ? String(message.val) : message.val;\n                    else\n                        object.val = options.longs === String ? $util.Long.prototype.toString.call(message.val) : options.longs === Number ? new $util.LongBits(message.val.low >>> 0, message.val.high >>> 0).toNumber() : message.val;\n                return object;\n            };\n    \n            /**\n             * Converts this C_UpateAttr to JSON.\n             * @function toJSON\n             * @memberof gameproto.C_UpateAttr\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            C_UpateAttr.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return C_UpateAttr;\n        })();\n    \n        gameproto.S_RequestBattle = (function() {\n    \n            /**\n             * Properties of a S_RequestBattle.\n             * @memberof gameproto\n             * @interface IS_RequestBattle\n             * @property {number|null} [stageId] S_RequestBattle stageId\n             * @property {number|null} [battleType] S_RequestBattle battleType\n             */\n    \n            /**\n             * Constructs a new S_RequestBattle.\n             * @memberof gameproto\n             * @classdesc Represents a S_RequestBattle.\n             * @implements IS_RequestBattle\n             * @constructor\n             * @param {gameproto.IS_RequestBattle=} [properties] Properties to set\n             */\n            function S_RequestBattle(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * S_RequestBattle stageId.\n             * @member {number} stageId\n             * @memberof gameproto.S_RequestBattle\n             * @instance\n             */\n            S_RequestBattle.prototype.stageId = 0;\n    \n            /**\n             * S_RequestBattle battleType.\n             * @member {number} battleType\n             * @memberof gameproto.S_RequestBattle\n             * @instance\n             */\n            S_RequestBattle.prototype.battleType = 0;\n    \n            /**\n             * Creates a new S_RequestBattle instance using the specified properties.\n             * @function create\n             * @memberof gameproto.S_RequestBattle\n             * @static\n             * @param {gameproto.IS_RequestBattle=} [properties] Properties to set\n             * @returns {gameproto.S_RequestBattle} S_RequestBattle instance\n             */\n            S_RequestBattle.create = function create(properties) {\n                return new S_RequestBattle(properties);\n            };\n    \n            /**\n             * Encodes the specified S_RequestBattle message. Does not implicitly {@link gameproto.S_RequestBattle.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.S_RequestBattle\n             * @static\n             * @param {gameproto.IS_RequestBattle} message S_RequestBattle message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            S_RequestBattle.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.stageId != null && message.hasOwnProperty(\"stageId\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.stageId);\n                if (message.battleType != null && message.hasOwnProperty(\"battleType\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.battleType);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified S_RequestBattle message, length delimited. Does not implicitly {@link gameproto.S_RequestBattle.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.S_RequestBattle\n             * @static\n             * @param {gameproto.IS_RequestBattle} message S_RequestBattle message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            S_RequestBattle.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a S_RequestBattle message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.S_RequestBattle\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.S_RequestBattle} S_RequestBattle\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            S_RequestBattle.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.S_RequestBattle();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.stageId = reader.int32();\n                        break;\n                    case 2:\n                        message.battleType = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a S_RequestBattle message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.S_RequestBattle\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.S_RequestBattle} S_RequestBattle\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            S_RequestBattle.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a S_RequestBattle message.\n             * @function verify\n             * @memberof gameproto.S_RequestBattle\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            S_RequestBattle.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.stageId != null && message.hasOwnProperty(\"stageId\"))\n                    if (!$util.isInteger(message.stageId))\n                        return \"stageId: integer expected\";\n                if (message.battleType != null && message.hasOwnProperty(\"battleType\"))\n                    if (!$util.isInteger(message.battleType))\n                        return \"battleType: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a S_RequestBattle message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.S_RequestBattle\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.S_RequestBattle} S_RequestBattle\n             */\n            S_RequestBattle.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.S_RequestBattle)\n                    return object;\n                var message = new $root.gameproto.S_RequestBattle();\n                if (object.stageId != null)\n                    message.stageId = object.stageId | 0;\n                if (object.battleType != null)\n                    message.battleType = object.battleType | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a S_RequestBattle message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.S_RequestBattle\n             * @static\n             * @param {gameproto.S_RequestBattle} message S_RequestBattle\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            S_RequestBattle.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.stageId = 0;\n                    object.battleType = 0;\n                }\n                if (message.stageId != null && message.hasOwnProperty(\"stageId\"))\n                    object.stageId = message.stageId;\n                if (message.battleType != null && message.hasOwnProperty(\"battleType\"))\n                    object.battleType = message.battleType;\n                return object;\n            };\n    \n            /**\n             * Converts this S_RequestBattle to JSON.\n             * @function toJSON\n             * @memberof gameproto.S_RequestBattle\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            S_RequestBattle.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return S_RequestBattle;\n        })();\n    \n        gameproto.C_RequestBattle = (function() {\n    \n            /**\n             * Properties of a C_RequestBattle.\n             * @memberof gameproto\n             * @interface IC_RequestBattle\n             * @property {number|null} [stageId] C_RequestBattle stageId\n             * @property {number|null} [battleType] C_RequestBattle battleType\n             * @property {number|null} [errCode] C_RequestBattle errCode\n             */\n    \n            /**\n             * Constructs a new C_RequestBattle.\n             * @memberof gameproto\n             * @classdesc Represents a C_RequestBattle.\n             * @implements IC_RequestBattle\n             * @constructor\n             * @param {gameproto.IC_RequestBattle=} [properties] Properties to set\n             */\n            function C_RequestBattle(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * C_RequestBattle stageId.\n             * @member {number} stageId\n             * @memberof gameproto.C_RequestBattle\n             * @instance\n             */\n            C_RequestBattle.prototype.stageId = 0;\n    \n            /**\n             * C_RequestBattle battleType.\n             * @member {number} battleType\n             * @memberof gameproto.C_RequestBattle\n             * @instance\n             */\n            C_RequestBattle.prototype.battleType = 0;\n    \n            /**\n             * C_RequestBattle errCode.\n             * @member {number} errCode\n             * @memberof gameproto.C_RequestBattle\n             * @instance\n             */\n            C_RequestBattle.prototype.errCode = 0;\n    \n            /**\n             * Creates a new C_RequestBattle instance using the specified properties.\n             * @function create\n             * @memberof gameproto.C_RequestBattle\n             * @static\n             * @param {gameproto.IC_RequestBattle=} [properties] Properties to set\n             * @returns {gameproto.C_RequestBattle} C_RequestBattle instance\n             */\n            C_RequestBattle.create = function create(properties) {\n                return new C_RequestBattle(properties);\n            };\n    \n            /**\n             * Encodes the specified C_RequestBattle message. Does not implicitly {@link gameproto.C_RequestBattle.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.C_RequestBattle\n             * @static\n             * @param {gameproto.IC_RequestBattle} message C_RequestBattle message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C_RequestBattle.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.stageId != null && message.hasOwnProperty(\"stageId\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.stageId);\n                if (message.battleType != null && message.hasOwnProperty(\"battleType\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.battleType);\n                if (message.errCode != null && message.hasOwnProperty(\"errCode\"))\n                    writer.uint32(/* id 3, wireType 0 =*/24).int32(message.errCode);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified C_RequestBattle message, length delimited. Does not implicitly {@link gameproto.C_RequestBattle.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.C_RequestBattle\n             * @static\n             * @param {gameproto.IC_RequestBattle} message C_RequestBattle message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C_RequestBattle.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a C_RequestBattle message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.C_RequestBattle\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.C_RequestBattle} C_RequestBattle\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C_RequestBattle.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.C_RequestBattle();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.stageId = reader.int32();\n                        break;\n                    case 2:\n                        message.battleType = reader.int32();\n                        break;\n                    case 3:\n                        message.errCode = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a C_RequestBattle message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.C_RequestBattle\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.C_RequestBattle} C_RequestBattle\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C_RequestBattle.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a C_RequestBattle message.\n             * @function verify\n             * @memberof gameproto.C_RequestBattle\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            C_RequestBattle.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.stageId != null && message.hasOwnProperty(\"stageId\"))\n                    if (!$util.isInteger(message.stageId))\n                        return \"stageId: integer expected\";\n                if (message.battleType != null && message.hasOwnProperty(\"battleType\"))\n                    if (!$util.isInteger(message.battleType))\n                        return \"battleType: integer expected\";\n                if (message.errCode != null && message.hasOwnProperty(\"errCode\"))\n                    if (!$util.isInteger(message.errCode))\n                        return \"errCode: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a C_RequestBattle message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.C_RequestBattle\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.C_RequestBattle} C_RequestBattle\n             */\n            C_RequestBattle.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.C_RequestBattle)\n                    return object;\n                var message = new $root.gameproto.C_RequestBattle();\n                if (object.stageId != null)\n                    message.stageId = object.stageId | 0;\n                if (object.battleType != null)\n                    message.battleType = object.battleType | 0;\n                if (object.errCode != null)\n                    message.errCode = object.errCode | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a C_RequestBattle message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.C_RequestBattle\n             * @static\n             * @param {gameproto.C_RequestBattle} message C_RequestBattle\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            C_RequestBattle.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.stageId = 0;\n                    object.battleType = 0;\n                    object.errCode = 0;\n                }\n                if (message.stageId != null && message.hasOwnProperty(\"stageId\"))\n                    object.stageId = message.stageId;\n                if (message.battleType != null && message.hasOwnProperty(\"battleType\"))\n                    object.battleType = message.battleType;\n                if (message.errCode != null && message.hasOwnProperty(\"errCode\"))\n                    object.errCode = message.errCode;\n                return object;\n            };\n    \n            /**\n             * Converts this C_RequestBattle to JSON.\n             * @function toJSON\n             * @memberof gameproto.C_RequestBattle\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            C_RequestBattle.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return C_RequestBattle;\n        })();\n    \n        gameproto.C_StartBattle = (function() {\n    \n            /**\n             * Properties of a C_StartBattle.\n             * @memberof gameproto\n             * @interface IC_StartBattle\n             * @property {number|null} [stageId] C_StartBattle stageId\n             * @property {number|null} [battleType] C_StartBattle battleType\n             * @property {string|null} [roomId] C_StartBattle roomId\n             */\n    \n            /**\n             * Constructs a new C_StartBattle.\n             * @memberof gameproto\n             * @classdesc Represents a C_StartBattle.\n             * @implements IC_StartBattle\n             * @constructor\n             * @param {gameproto.IC_StartBattle=} [properties] Properties to set\n             */\n            function C_StartBattle(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * C_StartBattle stageId.\n             * @member {number} stageId\n             * @memberof gameproto.C_StartBattle\n             * @instance\n             */\n            C_StartBattle.prototype.stageId = 0;\n    \n            /**\n             * C_StartBattle battleType.\n             * @member {number} battleType\n             * @memberof gameproto.C_StartBattle\n             * @instance\n             */\n            C_StartBattle.prototype.battleType = 0;\n    \n            /**\n             * C_StartBattle roomId.\n             * @member {string} roomId\n             * @memberof gameproto.C_StartBattle\n             * @instance\n             */\n            C_StartBattle.prototype.roomId = \"\";\n    \n            /**\n             * Creates a new C_StartBattle instance using the specified properties.\n             * @function create\n             * @memberof gameproto.C_StartBattle\n             * @static\n             * @param {gameproto.IC_StartBattle=} [properties] Properties to set\n             * @returns {gameproto.C_StartBattle} C_StartBattle instance\n             */\n            C_StartBattle.create = function create(properties) {\n                return new C_StartBattle(properties);\n            };\n    \n            /**\n             * Encodes the specified C_StartBattle message. Does not implicitly {@link gameproto.C_StartBattle.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.C_StartBattle\n             * @static\n             * @param {gameproto.IC_StartBattle} message C_StartBattle message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C_StartBattle.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.stageId != null && message.hasOwnProperty(\"stageId\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.stageId);\n                if (message.battleType != null && message.hasOwnProperty(\"battleType\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.battleType);\n                if (message.roomId != null && message.hasOwnProperty(\"roomId\"))\n                    writer.uint32(/* id 3, wireType 2 =*/26).string(message.roomId);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified C_StartBattle message, length delimited. Does not implicitly {@link gameproto.C_StartBattle.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.C_StartBattle\n             * @static\n             * @param {gameproto.IC_StartBattle} message C_StartBattle message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C_StartBattle.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a C_StartBattle message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.C_StartBattle\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.C_StartBattle} C_StartBattle\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C_StartBattle.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.C_StartBattle();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.stageId = reader.int32();\n                        break;\n                    case 2:\n                        message.battleType = reader.int32();\n                        break;\n                    case 3:\n                        message.roomId = reader.string();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a C_StartBattle message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.C_StartBattle\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.C_StartBattle} C_StartBattle\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C_StartBattle.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a C_StartBattle message.\n             * @function verify\n             * @memberof gameproto.C_StartBattle\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            C_StartBattle.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.stageId != null && message.hasOwnProperty(\"stageId\"))\n                    if (!$util.isInteger(message.stageId))\n                        return \"stageId: integer expected\";\n                if (message.battleType != null && message.hasOwnProperty(\"battleType\"))\n                    if (!$util.isInteger(message.battleType))\n                        return \"battleType: integer expected\";\n                if (message.roomId != null && message.hasOwnProperty(\"roomId\"))\n                    if (!$util.isString(message.roomId))\n                        return \"roomId: string expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a C_StartBattle message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.C_StartBattle\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.C_StartBattle} C_StartBattle\n             */\n            C_StartBattle.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.C_StartBattle)\n                    return object;\n                var message = new $root.gameproto.C_StartBattle();\n                if (object.stageId != null)\n                    message.stageId = object.stageId | 0;\n                if (object.battleType != null)\n                    message.battleType = object.battleType | 0;\n                if (object.roomId != null)\n                    message.roomId = String(object.roomId);\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a C_StartBattle message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.C_StartBattle\n             * @static\n             * @param {gameproto.C_StartBattle} message C_StartBattle\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            C_StartBattle.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.stageId = 0;\n                    object.battleType = 0;\n                    object.roomId = \"\";\n                }\n                if (message.stageId != null && message.hasOwnProperty(\"stageId\"))\n                    object.stageId = message.stageId;\n                if (message.battleType != null && message.hasOwnProperty(\"battleType\"))\n                    object.battleType = message.battleType;\n                if (message.roomId != null && message.hasOwnProperty(\"roomId\"))\n                    object.roomId = message.roomId;\n                return object;\n            };\n    \n            /**\n             * Converts this C_StartBattle to JSON.\n             * @function toJSON\n             * @memberof gameproto.C_StartBattle\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            C_StartBattle.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return C_StartBattle;\n        })();\n    \n        gameproto.C_Balance = (function() {\n    \n            /**\n             * Properties of a C_Balance.\n             * @memberof gameproto\n             * @interface IC_Balance\n             * @property {number|null} [stageId] C_Balance stageId\n             * @property {number|null} [battleType] C_Balance battleType\n             * @property {Array.<gameproto.IAward>|null} [awards] C_Balance awards\n             */\n    \n            /**\n             * Constructs a new C_Balance.\n             * @memberof gameproto\n             * @classdesc Represents a C_Balance.\n             * @implements IC_Balance\n             * @constructor\n             * @param {gameproto.IC_Balance=} [properties] Properties to set\n             */\n            function C_Balance(properties) {\n                this.awards = [];\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * C_Balance stageId.\n             * @member {number} stageId\n             * @memberof gameproto.C_Balance\n             * @instance\n             */\n            C_Balance.prototype.stageId = 0;\n    \n            /**\n             * C_Balance battleType.\n             * @member {number} battleType\n             * @memberof gameproto.C_Balance\n             * @instance\n             */\n            C_Balance.prototype.battleType = 0;\n    \n            /**\n             * C_Balance awards.\n             * @member {Array.<gameproto.IAward>} awards\n             * @memberof gameproto.C_Balance\n             * @instance\n             */\n            C_Balance.prototype.awards = $util.emptyArray;\n    \n            /**\n             * Creates a new C_Balance instance using the specified properties.\n             * @function create\n             * @memberof gameproto.C_Balance\n             * @static\n             * @param {gameproto.IC_Balance=} [properties] Properties to set\n             * @returns {gameproto.C_Balance} C_Balance instance\n             */\n            C_Balance.create = function create(properties) {\n                return new C_Balance(properties);\n            };\n    \n            /**\n             * Encodes the specified C_Balance message. Does not implicitly {@link gameproto.C_Balance.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.C_Balance\n             * @static\n             * @param {gameproto.IC_Balance} message C_Balance message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C_Balance.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.stageId != null && message.hasOwnProperty(\"stageId\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.stageId);\n                if (message.battleType != null && message.hasOwnProperty(\"battleType\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.battleType);\n                if (message.awards != null && message.awards.length)\n                    for (var i = 0; i < message.awards.length; ++i)\n                        $root.gameproto.Award.encode(message.awards[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified C_Balance message, length delimited. Does not implicitly {@link gameproto.C_Balance.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.C_Balance\n             * @static\n             * @param {gameproto.IC_Balance} message C_Balance message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C_Balance.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a C_Balance message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.C_Balance\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.C_Balance} C_Balance\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C_Balance.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.C_Balance();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.stageId = reader.int32();\n                        break;\n                    case 2:\n                        message.battleType = reader.int32();\n                        break;\n                    case 3:\n                        if (!(message.awards && message.awards.length))\n                            message.awards = [];\n                        message.awards.push($root.gameproto.Award.decode(reader, reader.uint32()));\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a C_Balance message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.C_Balance\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.C_Balance} C_Balance\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C_Balance.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a C_Balance message.\n             * @function verify\n             * @memberof gameproto.C_Balance\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            C_Balance.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.stageId != null && message.hasOwnProperty(\"stageId\"))\n                    if (!$util.isInteger(message.stageId))\n                        return \"stageId: integer expected\";\n                if (message.battleType != null && message.hasOwnProperty(\"battleType\"))\n                    if (!$util.isInteger(message.battleType))\n                        return \"battleType: integer expected\";\n                if (message.awards != null && message.hasOwnProperty(\"awards\")) {\n                    if (!Array.isArray(message.awards))\n                        return \"awards: array expected\";\n                    for (var i = 0; i < message.awards.length; ++i) {\n                        var error = $root.gameproto.Award.verify(message.awards[i]);\n                        if (error)\n                            return \"awards.\" + error;\n                    }\n                }\n                return null;\n            };\n    \n            /**\n             * Creates a C_Balance message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.C_Balance\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.C_Balance} C_Balance\n             */\n            C_Balance.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.C_Balance)\n                    return object;\n                var message = new $root.gameproto.C_Balance();\n                if (object.stageId != null)\n                    message.stageId = object.stageId | 0;\n                if (object.battleType != null)\n                    message.battleType = object.battleType | 0;\n                if (object.awards) {\n                    if (!Array.isArray(object.awards))\n                        throw TypeError(\".gameproto.C_Balance.awards: array expected\");\n                    message.awards = [];\n                    for (var i = 0; i < object.awards.length; ++i) {\n                        if (typeof object.awards[i] !== \"object\")\n                            throw TypeError(\".gameproto.C_Balance.awards: object expected\");\n                        message.awards[i] = $root.gameproto.Award.fromObject(object.awards[i]);\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a C_Balance message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.C_Balance\n             * @static\n             * @param {gameproto.C_Balance} message C_Balance\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            C_Balance.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.awards = [];\n                if (options.defaults) {\n                    object.stageId = 0;\n                    object.battleType = 0;\n                }\n                if (message.stageId != null && message.hasOwnProperty(\"stageId\"))\n                    object.stageId = message.stageId;\n                if (message.battleType != null && message.hasOwnProperty(\"battleType\"))\n                    object.battleType = message.battleType;\n                if (message.awards && message.awards.length) {\n                    object.awards = [];\n                    for (var j = 0; j < message.awards.length; ++j)\n                        object.awards[j] = $root.gameproto.Award.toObject(message.awards[j], options);\n                }\n                return object;\n            };\n    \n            /**\n             * Converts this C_Balance to JSON.\n             * @function toJSON\n             * @memberof gameproto.C_Balance\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            C_Balance.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return C_Balance;\n        })();\n    \n        gameproto.Award = (function() {\n    \n            /**\n             * Properties of an Award.\n             * @memberof gameproto\n             * @interface IAward\n             * @property {number|null} [aType] Award aType\n             * @property {number|null} [aVal] Award aVal\n             */\n    \n            /**\n             * Constructs a new Award.\n             * @memberof gameproto\n             * @classdesc Represents an Award.\n             * @implements IAward\n             * @constructor\n             * @param {gameproto.IAward=} [properties] Properties to set\n             */\n            function Award(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * Award aType.\n             * @member {number} aType\n             * @memberof gameproto.Award\n             * @instance\n             */\n            Award.prototype.aType = 0;\n    \n            /**\n             * Award aVal.\n             * @member {number} aVal\n             * @memberof gameproto.Award\n             * @instance\n             */\n            Award.prototype.aVal = 0;\n    \n            /**\n             * Creates a new Award instance using the specified properties.\n             * @function create\n             * @memberof gameproto.Award\n             * @static\n             * @param {gameproto.IAward=} [properties] Properties to set\n             * @returns {gameproto.Award} Award instance\n             */\n            Award.create = function create(properties) {\n                return new Award(properties);\n            };\n    \n            /**\n             * Encodes the specified Award message. Does not implicitly {@link gameproto.Award.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.Award\n             * @static\n             * @param {gameproto.IAward} message Award message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Award.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.aType != null && message.hasOwnProperty(\"aType\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.aType);\n                if (message.aVal != null && message.hasOwnProperty(\"aVal\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.aVal);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified Award message, length delimited. Does not implicitly {@link gameproto.Award.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.Award\n             * @static\n             * @param {gameproto.IAward} message Award message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Award.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes an Award message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.Award\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.Award} Award\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            Award.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.Award();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.aType = reader.int32();\n                        break;\n                    case 2:\n                        message.aVal = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes an Award message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.Award\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.Award} Award\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            Award.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies an Award message.\n             * @function verify\n             * @memberof gameproto.Award\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            Award.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.aType != null && message.hasOwnProperty(\"aType\"))\n                    if (!$util.isInteger(message.aType))\n                        return \"aType: integer expected\";\n                if (message.aVal != null && message.hasOwnProperty(\"aVal\"))\n                    if (!$util.isInteger(message.aVal))\n                        return \"aVal: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates an Award message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.Award\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.Award} Award\n             */\n            Award.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.Award)\n                    return object;\n                var message = new $root.gameproto.Award();\n                if (object.aType != null)\n                    message.aType = object.aType | 0;\n                if (object.aVal != null)\n                    message.aVal = object.aVal | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from an Award message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.Award\n             * @static\n             * @param {gameproto.Award} message Award\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            Award.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.aType = 0;\n                    object.aVal = 0;\n                }\n                if (message.aType != null && message.hasOwnProperty(\"aType\"))\n                    object.aType = message.aType;\n                if (message.aVal != null && message.hasOwnProperty(\"aVal\"))\n                    object.aVal = message.aVal;\n                return object;\n            };\n    \n            /**\n             * Converts this Award to JSON.\n             * @function toJSON\n             * @memberof gameproto.Award\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            Award.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return Award;\n        })();\n    \n        gameproto.FVector = (function() {\n    \n            /**\n             * Properties of a FVector.\n             * @memberof gameproto\n             * @interface IFVector\n             * @property {number|null} [x] FVector x\n             * @property {number|null} [y] FVector y\n             */\n    \n            /**\n             * Constructs a new FVector.\n             * @memberof gameproto\n             * @classdesc Represents a FVector.\n             * @implements IFVector\n             * @constructor\n             * @param {gameproto.IFVector=} [properties] Properties to set\n             */\n            function FVector(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * FVector x.\n             * @member {number} x\n             * @memberof gameproto.FVector\n             * @instance\n             */\n            FVector.prototype.x = 0;\n    \n            /**\n             * FVector y.\n             * @member {number} y\n             * @memberof gameproto.FVector\n             * @instance\n             */\n            FVector.prototype.y = 0;\n    \n            /**\n             * Creates a new FVector instance using the specified properties.\n             * @function create\n             * @memberof gameproto.FVector\n             * @static\n             * @param {gameproto.IFVector=} [properties] Properties to set\n             * @returns {gameproto.FVector} FVector instance\n             */\n            FVector.create = function create(properties) {\n                return new FVector(properties);\n            };\n    \n            /**\n             * Encodes the specified FVector message. Does not implicitly {@link gameproto.FVector.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.FVector\n             * @static\n             * @param {gameproto.IFVector} message FVector message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FVector.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.x != null && message.hasOwnProperty(\"x\"))\n                    writer.uint32(/* id 1, wireType 5 =*/13).float(message.x);\n                if (message.y != null && message.hasOwnProperty(\"y\"))\n                    writer.uint32(/* id 2, wireType 5 =*/21).float(message.y);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified FVector message, length delimited. Does not implicitly {@link gameproto.FVector.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.FVector\n             * @static\n             * @param {gameproto.IFVector} message FVector message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FVector.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a FVector message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.FVector\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.FVector} FVector\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            FVector.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.FVector();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.x = reader.float();\n                        break;\n                    case 2:\n                        message.y = reader.float();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a FVector message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.FVector\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.FVector} FVector\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            FVector.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a FVector message.\n             * @function verify\n             * @memberof gameproto.FVector\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            FVector.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.x != null && message.hasOwnProperty(\"x\"))\n                    if (typeof message.x !== \"number\")\n                        return \"x: number expected\";\n                if (message.y != null && message.hasOwnProperty(\"y\"))\n                    if (typeof message.y !== \"number\")\n                        return \"y: number expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a FVector message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.FVector\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.FVector} FVector\n             */\n            FVector.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.FVector)\n                    return object;\n                var message = new $root.gameproto.FVector();\n                if (object.x != null)\n                    message.x = Number(object.x);\n                if (object.y != null)\n                    message.y = Number(object.y);\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a FVector message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.FVector\n             * @static\n             * @param {gameproto.FVector} message FVector\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            FVector.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.x = 0;\n                    object.y = 0;\n                }\n                if (message.x != null && message.hasOwnProperty(\"x\"))\n                    object.x = options.json && !isFinite(message.x) ? String(message.x) : message.x;\n                if (message.y != null && message.hasOwnProperty(\"y\"))\n                    object.y = options.json && !isFinite(message.y) ? String(message.y) : message.y;\n                return object;\n            };\n    \n            /**\n             * Converts this FVector to JSON.\n             * @function toJSON\n             * @memberof gameproto.FVector\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            FVector.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return FVector;\n        })();\n    \n        gameproto.Move = (function() {\n    \n            /**\n             * Properties of a Move.\n             * @memberof gameproto\n             * @interface IMove\n             * @property {number|null} [angle] Move angle\n             */\n    \n            /**\n             * Constructs a new Move.\n             * @memberof gameproto\n             * @classdesc Represents a Move.\n             * @implements IMove\n             * @constructor\n             * @param {gameproto.IMove=} [properties] Properties to set\n             */\n            function Move(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * Move angle.\n             * @member {number} angle\n             * @memberof gameproto.Move\n             * @instance\n             */\n            Move.prototype.angle = 0;\n    \n            /**\n             * Creates a new Move instance using the specified properties.\n             * @function create\n             * @memberof gameproto.Move\n             * @static\n             * @param {gameproto.IMove=} [properties] Properties to set\n             * @returns {gameproto.Move} Move instance\n             */\n            Move.create = function create(properties) {\n                return new Move(properties);\n            };\n    \n            /**\n             * Encodes the specified Move message. Does not implicitly {@link gameproto.Move.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.Move\n             * @static\n             * @param {gameproto.IMove} message Move message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Move.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.angle != null && message.hasOwnProperty(\"angle\"))\n                    writer.uint32(/* id 1, wireType 5 =*/13).float(message.angle);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified Move message, length delimited. Does not implicitly {@link gameproto.Move.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.Move\n             * @static\n             * @param {gameproto.IMove} message Move message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Move.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a Move message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.Move\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.Move} Move\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            Move.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.Move();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.angle = reader.float();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a Move message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.Move\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.Move} Move\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            Move.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a Move message.\n             * @function verify\n             * @memberof gameproto.Move\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            Move.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.angle != null && message.hasOwnProperty(\"angle\"))\n                    if (typeof message.angle !== \"number\")\n                        return \"angle: number expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a Move message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.Move\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.Move} Move\n             */\n            Move.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.Move)\n                    return object;\n                var message = new $root.gameproto.Move();\n                if (object.angle != null)\n                    message.angle = Number(object.angle);\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a Move message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.Move\n             * @static\n             * @param {gameproto.Move} message Move\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            Move.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults)\n                    object.angle = 0;\n                if (message.angle != null && message.hasOwnProperty(\"angle\"))\n                    object.angle = options.json && !isFinite(message.angle) ? String(message.angle) : message.angle;\n                return object;\n            };\n    \n            /**\n             * Converts this Move to JSON.\n             * @function toJSON\n             * @memberof gameproto.Move\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            Move.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return Move;\n        })();\n    \n        gameproto.Shot = (function() {\n    \n            /**\n             * Properties of a Shot.\n             * @memberof gameproto\n             * @interface IShot\n             * @property {number|null} [id] Shot id\n             * @property {number|null} [bulletId] Shot bulletId\n             * @property {gameproto.IFVector|null} [pos] Shot pos\n             * @property {number|null} [angel] Shot angel\n             */\n    \n            /**\n             * Constructs a new Shot.\n             * @memberof gameproto\n             * @classdesc Represents a Shot.\n             * @implements IShot\n             * @constructor\n             * @param {gameproto.IShot=} [properties] Properties to set\n             */\n            function Shot(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * Shot id.\n             * @member {number} id\n             * @memberof gameproto.Shot\n             * @instance\n             */\n            Shot.prototype.id = 0;\n    \n            /**\n             * Shot bulletId.\n             * @member {number} bulletId\n             * @memberof gameproto.Shot\n             * @instance\n             */\n            Shot.prototype.bulletId = 0;\n    \n            /**\n             * Shot pos.\n             * @member {gameproto.IFVector|null|undefined} pos\n             * @memberof gameproto.Shot\n             * @instance\n             */\n            Shot.prototype.pos = null;\n    \n            /**\n             * Shot angel.\n             * @member {number} angel\n             * @memberof gameproto.Shot\n             * @instance\n             */\n            Shot.prototype.angel = 0;\n    \n            /**\n             * Creates a new Shot instance using the specified properties.\n             * @function create\n             * @memberof gameproto.Shot\n             * @static\n             * @param {gameproto.IShot=} [properties] Properties to set\n             * @returns {gameproto.Shot} Shot instance\n             */\n            Shot.create = function create(properties) {\n                return new Shot(properties);\n            };\n    \n            /**\n             * Encodes the specified Shot message. Does not implicitly {@link gameproto.Shot.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.Shot\n             * @static\n             * @param {gameproto.IShot} message Shot message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Shot.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id);\n                if (message.bulletId != null && message.hasOwnProperty(\"bulletId\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.bulletId);\n                if (message.pos != null && message.hasOwnProperty(\"pos\"))\n                    $root.gameproto.FVector.encode(message.pos, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n                if (message.angel != null && message.hasOwnProperty(\"angel\"))\n                    writer.uint32(/* id 4, wireType 5 =*/37).float(message.angel);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified Shot message, length delimited. Does not implicitly {@link gameproto.Shot.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.Shot\n             * @static\n             * @param {gameproto.IShot} message Shot message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Shot.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a Shot message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.Shot\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.Shot} Shot\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            Shot.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.Shot();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.id = reader.int32();\n                        break;\n                    case 2:\n                        message.bulletId = reader.int32();\n                        break;\n                    case 3:\n                        message.pos = $root.gameproto.FVector.decode(reader, reader.uint32());\n                        break;\n                    case 4:\n                        message.angel = reader.float();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a Shot message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.Shot\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.Shot} Shot\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            Shot.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a Shot message.\n             * @function verify\n             * @memberof gameproto.Shot\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            Shot.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    if (!$util.isInteger(message.id))\n                        return \"id: integer expected\";\n                if (message.bulletId != null && message.hasOwnProperty(\"bulletId\"))\n                    if (!$util.isInteger(message.bulletId))\n                        return \"bulletId: integer expected\";\n                if (message.pos != null && message.hasOwnProperty(\"pos\")) {\n                    var error = $root.gameproto.FVector.verify(message.pos);\n                    if (error)\n                        return \"pos.\" + error;\n                }\n                if (message.angel != null && message.hasOwnProperty(\"angel\"))\n                    if (typeof message.angel !== \"number\")\n                        return \"angel: number expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a Shot message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.Shot\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.Shot} Shot\n             */\n            Shot.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.Shot)\n                    return object;\n                var message = new $root.gameproto.Shot();\n                if (object.id != null)\n                    message.id = object.id | 0;\n                if (object.bulletId != null)\n                    message.bulletId = object.bulletId | 0;\n                if (object.pos != null) {\n                    if (typeof object.pos !== \"object\")\n                        throw TypeError(\".gameproto.Shot.pos: object expected\");\n                    message.pos = $root.gameproto.FVector.fromObject(object.pos);\n                }\n                if (object.angel != null)\n                    message.angel = Number(object.angel);\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a Shot message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.Shot\n             * @static\n             * @param {gameproto.Shot} message Shot\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            Shot.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.id = 0;\n                    object.bulletId = 0;\n                    object.pos = null;\n                    object.angel = 0;\n                }\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    object.id = message.id;\n                if (message.bulletId != null && message.hasOwnProperty(\"bulletId\"))\n                    object.bulletId = message.bulletId;\n                if (message.pos != null && message.hasOwnProperty(\"pos\"))\n                    object.pos = $root.gameproto.FVector.toObject(message.pos, options);\n                if (message.angel != null && message.hasOwnProperty(\"angel\"))\n                    object.angel = options.json && !isFinite(message.angel) ? String(message.angel) : message.angel;\n                return object;\n            };\n    \n            /**\n             * Converts this Shot to JSON.\n             * @function toJSON\n             * @memberof gameproto.Shot\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            Shot.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return Shot;\n        })();\n    \n        gameproto.UseItem = (function() {\n    \n            /**\n             * Properties of a UseItem.\n             * @memberof gameproto\n             * @interface IUseItem\n             * @property {number|null} [itemId] UseItem itemId\n             */\n    \n            /**\n             * Constructs a new UseItem.\n             * @memberof gameproto\n             * @classdesc Represents a UseItem.\n             * @implements IUseItem\n             * @constructor\n             * @param {gameproto.IUseItem=} [properties] Properties to set\n             */\n            function UseItem(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * UseItem itemId.\n             * @member {number} itemId\n             * @memberof gameproto.UseItem\n             * @instance\n             */\n            UseItem.prototype.itemId = 0;\n    \n            /**\n             * Creates a new UseItem instance using the specified properties.\n             * @function create\n             * @memberof gameproto.UseItem\n             * @static\n             * @param {gameproto.IUseItem=} [properties] Properties to set\n             * @returns {gameproto.UseItem} UseItem instance\n             */\n            UseItem.create = function create(properties) {\n                return new UseItem(properties);\n            };\n    \n            /**\n             * Encodes the specified UseItem message. Does not implicitly {@link gameproto.UseItem.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.UseItem\n             * @static\n             * @param {gameproto.IUseItem} message UseItem message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            UseItem.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.itemId != null && message.hasOwnProperty(\"itemId\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.itemId);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified UseItem message, length delimited. Does not implicitly {@link gameproto.UseItem.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.UseItem\n             * @static\n             * @param {gameproto.IUseItem} message UseItem message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            UseItem.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a UseItem message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.UseItem\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.UseItem} UseItem\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            UseItem.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.UseItem();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.itemId = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a UseItem message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.UseItem\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.UseItem} UseItem\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            UseItem.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a UseItem message.\n             * @function verify\n             * @memberof gameproto.UseItem\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            UseItem.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.itemId != null && message.hasOwnProperty(\"itemId\"))\n                    if (!$util.isInteger(message.itemId))\n                        return \"itemId: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a UseItem message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.UseItem\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.UseItem} UseItem\n             */\n            UseItem.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.UseItem)\n                    return object;\n                var message = new $root.gameproto.UseItem();\n                if (object.itemId != null)\n                    message.itemId = object.itemId | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a UseItem message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.UseItem\n             * @static\n             * @param {gameproto.UseItem} message UseItem\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            UseItem.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults)\n                    object.itemId = 0;\n                if (message.itemId != null && message.hasOwnProperty(\"itemId\"))\n                    object.itemId = message.itemId;\n                return object;\n            };\n    \n            /**\n             * Converts this UseItem to JSON.\n             * @function toJSON\n             * @memberof gameproto.UseItem\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            UseItem.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return UseItem;\n        })();\n    \n        gameproto.FighterSnapInfo = (function() {\n    \n            /**\n             * Properties of a FighterSnapInfo.\n             * @memberof gameproto\n             * @interface IFighterSnapInfo\n             * @property {number|null} [id] FighterSnapInfo id\n             * @property {gameproto.IFVector|null} [pos] FighterSnapInfo pos\n             * @property {gameproto.IFVector|null} [vel] FighterSnapInfo vel\n             */\n    \n            /**\n             * Constructs a new FighterSnapInfo.\n             * @memberof gameproto\n             * @classdesc Represents a FighterSnapInfo.\n             * @implements IFighterSnapInfo\n             * @constructor\n             * @param {gameproto.IFighterSnapInfo=} [properties] Properties to set\n             */\n            function FighterSnapInfo(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * FighterSnapInfo id.\n             * @member {number} id\n             * @memberof gameproto.FighterSnapInfo\n             * @instance\n             */\n            FighterSnapInfo.prototype.id = 0;\n    \n            /**\n             * FighterSnapInfo pos.\n             * @member {gameproto.IFVector|null|undefined} pos\n             * @memberof gameproto.FighterSnapInfo\n             * @instance\n             */\n            FighterSnapInfo.prototype.pos = null;\n    \n            /**\n             * FighterSnapInfo vel.\n             * @member {gameproto.IFVector|null|undefined} vel\n             * @memberof gameproto.FighterSnapInfo\n             * @instance\n             */\n            FighterSnapInfo.prototype.vel = null;\n    \n            /**\n             * Creates a new FighterSnapInfo instance using the specified properties.\n             * @function create\n             * @memberof gameproto.FighterSnapInfo\n             * @static\n             * @param {gameproto.IFighterSnapInfo=} [properties] Properties to set\n             * @returns {gameproto.FighterSnapInfo} FighterSnapInfo instance\n             */\n            FighterSnapInfo.create = function create(properties) {\n                return new FighterSnapInfo(properties);\n            };\n    \n            /**\n             * Encodes the specified FighterSnapInfo message. Does not implicitly {@link gameproto.FighterSnapInfo.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.FighterSnapInfo\n             * @static\n             * @param {gameproto.IFighterSnapInfo} message FighterSnapInfo message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FighterSnapInfo.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id);\n                if (message.pos != null && message.hasOwnProperty(\"pos\"))\n                    $root.gameproto.FVector.encode(message.pos, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n                if (message.vel != null && message.hasOwnProperty(\"vel\"))\n                    $root.gameproto.FVector.encode(message.vel, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified FighterSnapInfo message, length delimited. Does not implicitly {@link gameproto.FighterSnapInfo.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.FighterSnapInfo\n             * @static\n             * @param {gameproto.IFighterSnapInfo} message FighterSnapInfo message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FighterSnapInfo.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a FighterSnapInfo message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.FighterSnapInfo\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.FighterSnapInfo} FighterSnapInfo\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            FighterSnapInfo.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.FighterSnapInfo();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.id = reader.int32();\n                        break;\n                    case 2:\n                        message.pos = $root.gameproto.FVector.decode(reader, reader.uint32());\n                        break;\n                    case 3:\n                        message.vel = $root.gameproto.FVector.decode(reader, reader.uint32());\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a FighterSnapInfo message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.FighterSnapInfo\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.FighterSnapInfo} FighterSnapInfo\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            FighterSnapInfo.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a FighterSnapInfo message.\n             * @function verify\n             * @memberof gameproto.FighterSnapInfo\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            FighterSnapInfo.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    if (!$util.isInteger(message.id))\n                        return \"id: integer expected\";\n                if (message.pos != null && message.hasOwnProperty(\"pos\")) {\n                    var error = $root.gameproto.FVector.verify(message.pos);\n                    if (error)\n                        return \"pos.\" + error;\n                }\n                if (message.vel != null && message.hasOwnProperty(\"vel\")) {\n                    var error = $root.gameproto.FVector.verify(message.vel);\n                    if (error)\n                        return \"vel.\" + error;\n                }\n                return null;\n            };\n    \n            /**\n             * Creates a FighterSnapInfo message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.FighterSnapInfo\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.FighterSnapInfo} FighterSnapInfo\n             */\n            FighterSnapInfo.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.FighterSnapInfo)\n                    return object;\n                var message = new $root.gameproto.FighterSnapInfo();\n                if (object.id != null)\n                    message.id = object.id | 0;\n                if (object.pos != null) {\n                    if (typeof object.pos !== \"object\")\n                        throw TypeError(\".gameproto.FighterSnapInfo.pos: object expected\");\n                    message.pos = $root.gameproto.FVector.fromObject(object.pos);\n                }\n                if (object.vel != null) {\n                    if (typeof object.vel !== \"object\")\n                        throw TypeError(\".gameproto.FighterSnapInfo.vel: object expected\");\n                    message.vel = $root.gameproto.FVector.fromObject(object.vel);\n                }\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a FighterSnapInfo message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.FighterSnapInfo\n             * @static\n             * @param {gameproto.FighterSnapInfo} message FighterSnapInfo\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            FighterSnapInfo.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.id = 0;\n                    object.pos = null;\n                    object.vel = null;\n                }\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    object.id = message.id;\n                if (message.pos != null && message.hasOwnProperty(\"pos\"))\n                    object.pos = $root.gameproto.FVector.toObject(message.pos, options);\n                if (message.vel != null && message.hasOwnProperty(\"vel\"))\n                    object.vel = $root.gameproto.FVector.toObject(message.vel, options);\n                return object;\n            };\n    \n            /**\n             * Converts this FighterSnapInfo to JSON.\n             * @function toJSON\n             * @memberof gameproto.FighterSnapInfo\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            FighterSnapInfo.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return FighterSnapInfo;\n        })();\n    \n        gameproto.Snap = (function() {\n    \n            /**\n             * Properties of a Snap.\n             * @memberof gameproto\n             * @interface ISnap\n             * @property {Array.<gameproto.IFighterSnapInfo>|null} [infos] Snap infos\n             */\n    \n            /**\n             * Constructs a new Snap.\n             * @memberof gameproto\n             * @classdesc Represents a Snap.\n             * @implements ISnap\n             * @constructor\n             * @param {gameproto.ISnap=} [properties] Properties to set\n             */\n            function Snap(properties) {\n                this.infos = [];\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * Snap infos.\n             * @member {Array.<gameproto.IFighterSnapInfo>} infos\n             * @memberof gameproto.Snap\n             * @instance\n             */\n            Snap.prototype.infos = $util.emptyArray;\n    \n            /**\n             * Creates a new Snap instance using the specified properties.\n             * @function create\n             * @memberof gameproto.Snap\n             * @static\n             * @param {gameproto.ISnap=} [properties] Properties to set\n             * @returns {gameproto.Snap} Snap instance\n             */\n            Snap.create = function create(properties) {\n                return new Snap(properties);\n            };\n    \n            /**\n             * Encodes the specified Snap message. Does not implicitly {@link gameproto.Snap.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.Snap\n             * @static\n             * @param {gameproto.ISnap} message Snap message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Snap.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.infos != null && message.infos.length)\n                    for (var i = 0; i < message.infos.length; ++i)\n                        $root.gameproto.FighterSnapInfo.encode(message.infos[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified Snap message, length delimited. Does not implicitly {@link gameproto.Snap.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.Snap\n             * @static\n             * @param {gameproto.ISnap} message Snap message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Snap.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a Snap message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.Snap\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.Snap} Snap\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            Snap.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.Snap();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        if (!(message.infos && message.infos.length))\n                            message.infos = [];\n                        message.infos.push($root.gameproto.FighterSnapInfo.decode(reader, reader.uint32()));\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a Snap message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.Snap\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.Snap} Snap\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            Snap.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a Snap message.\n             * @function verify\n             * @memberof gameproto.Snap\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            Snap.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.infos != null && message.hasOwnProperty(\"infos\")) {\n                    if (!Array.isArray(message.infos))\n                        return \"infos: array expected\";\n                    for (var i = 0; i < message.infos.length; ++i) {\n                        var error = $root.gameproto.FighterSnapInfo.verify(message.infos[i]);\n                        if (error)\n                            return \"infos.\" + error;\n                    }\n                }\n                return null;\n            };\n    \n            /**\n             * Creates a Snap message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.Snap\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.Snap} Snap\n             */\n            Snap.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.Snap)\n                    return object;\n                var message = new $root.gameproto.Snap();\n                if (object.infos) {\n                    if (!Array.isArray(object.infos))\n                        throw TypeError(\".gameproto.Snap.infos: array expected\");\n                    message.infos = [];\n                    for (var i = 0; i < object.infos.length; ++i) {\n                        if (typeof object.infos[i] !== \"object\")\n                            throw TypeError(\".gameproto.Snap.infos: object expected\");\n                        message.infos[i] = $root.gameproto.FighterSnapInfo.fromObject(object.infos[i]);\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a Snap message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.Snap\n             * @static\n             * @param {gameproto.Snap} message Snap\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            Snap.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.infos = [];\n                if (message.infos && message.infos.length) {\n                    object.infos = [];\n                    for (var j = 0; j < message.infos.length; ++j)\n                        object.infos[j] = $root.gameproto.FighterSnapInfo.toObject(message.infos[j], options);\n                }\n                return object;\n            };\n    \n            /**\n             * Converts this Snap to JSON.\n             * @function toJSON\n             * @memberof gameproto.Snap\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            Snap.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return Snap;\n        })();\n    \n        gameproto.FighterInfo = (function() {\n    \n            /**\n             * Properties of a FighterInfo.\n             * @memberof gameproto\n             * @interface IFighterInfo\n             * @property {number|null} [id] FighterInfo id\n             * @property {gameproto.IFVector|null} [pos] FighterInfo pos\n             * @property {gameproto.IFVector|null} [vel] FighterInfo vel\n             * @property {string|null} [name] FighterInfo name\n             * @property {number|null} [hp] FighterInfo hp\n             */\n    \n            /**\n             * Constructs a new FighterInfo.\n             * @memberof gameproto\n             * @classdesc Represents a FighterInfo.\n             * @implements IFighterInfo\n             * @constructor\n             * @param {gameproto.IFighterInfo=} [properties] Properties to set\n             */\n            function FighterInfo(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * FighterInfo id.\n             * @member {number} id\n             * @memberof gameproto.FighterInfo\n             * @instance\n             */\n            FighterInfo.prototype.id = 0;\n    \n            /**\n             * FighterInfo pos.\n             * @member {gameproto.IFVector|null|undefined} pos\n             * @memberof gameproto.FighterInfo\n             * @instance\n             */\n            FighterInfo.prototype.pos = null;\n    \n            /**\n             * FighterInfo vel.\n             * @member {gameproto.IFVector|null|undefined} vel\n             * @memberof gameproto.FighterInfo\n             * @instance\n             */\n            FighterInfo.prototype.vel = null;\n    \n            /**\n             * FighterInfo name.\n             * @member {string} name\n             * @memberof gameproto.FighterInfo\n             * @instance\n             */\n            FighterInfo.prototype.name = \"\";\n    \n            /**\n             * FighterInfo hp.\n             * @member {number} hp\n             * @memberof gameproto.FighterInfo\n             * @instance\n             */\n            FighterInfo.prototype.hp = 0;\n    \n            /**\n             * Creates a new FighterInfo instance using the specified properties.\n             * @function create\n             * @memberof gameproto.FighterInfo\n             * @static\n             * @param {gameproto.IFighterInfo=} [properties] Properties to set\n             * @returns {gameproto.FighterInfo} FighterInfo instance\n             */\n            FighterInfo.create = function create(properties) {\n                return new FighterInfo(properties);\n            };\n    \n            /**\n             * Encodes the specified FighterInfo message. Does not implicitly {@link gameproto.FighterInfo.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.FighterInfo\n             * @static\n             * @param {gameproto.IFighterInfo} message FighterInfo message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FighterInfo.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id);\n                if (message.pos != null && message.hasOwnProperty(\"pos\"))\n                    $root.gameproto.FVector.encode(message.pos, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n                if (message.vel != null && message.hasOwnProperty(\"vel\"))\n                    $root.gameproto.FVector.encode(message.vel, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n                if (message.name != null && message.hasOwnProperty(\"name\"))\n                    writer.uint32(/* id 4, wireType 2 =*/34).string(message.name);\n                if (message.hp != null && message.hasOwnProperty(\"hp\"))\n                    writer.uint32(/* id 5, wireType 0 =*/40).int32(message.hp);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified FighterInfo message, length delimited. Does not implicitly {@link gameproto.FighterInfo.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.FighterInfo\n             * @static\n             * @param {gameproto.IFighterInfo} message FighterInfo message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FighterInfo.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a FighterInfo message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.FighterInfo\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.FighterInfo} FighterInfo\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            FighterInfo.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.FighterInfo();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.id = reader.int32();\n                        break;\n                    case 2:\n                        message.pos = $root.gameproto.FVector.decode(reader, reader.uint32());\n                        break;\n                    case 3:\n                        message.vel = $root.gameproto.FVector.decode(reader, reader.uint32());\n                        break;\n                    case 4:\n                        message.name = reader.string();\n                        break;\n                    case 5:\n                        message.hp = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a FighterInfo message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.FighterInfo\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.FighterInfo} FighterInfo\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            FighterInfo.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a FighterInfo message.\n             * @function verify\n             * @memberof gameproto.FighterInfo\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            FighterInfo.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    if (!$util.isInteger(message.id))\n                        return \"id: integer expected\";\n                if (message.pos != null && message.hasOwnProperty(\"pos\")) {\n                    var error = $root.gameproto.FVector.verify(message.pos);\n                    if (error)\n                        return \"pos.\" + error;\n                }\n                if (message.vel != null && message.hasOwnProperty(\"vel\")) {\n                    var error = $root.gameproto.FVector.verify(message.vel);\n                    if (error)\n                        return \"vel.\" + error;\n                }\n                if (message.name != null && message.hasOwnProperty(\"name\"))\n                    if (!$util.isString(message.name))\n                        return \"name: string expected\";\n                if (message.hp != null && message.hasOwnProperty(\"hp\"))\n                    if (!$util.isInteger(message.hp))\n                        return \"hp: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a FighterInfo message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.FighterInfo\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.FighterInfo} FighterInfo\n             */\n            FighterInfo.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.FighterInfo)\n                    return object;\n                var message = new $root.gameproto.FighterInfo();\n                if (object.id != null)\n                    message.id = object.id | 0;\n                if (object.pos != null) {\n                    if (typeof object.pos !== \"object\")\n                        throw TypeError(\".gameproto.FighterInfo.pos: object expected\");\n                    message.pos = $root.gameproto.FVector.fromObject(object.pos);\n                }\n                if (object.vel != null) {\n                    if (typeof object.vel !== \"object\")\n                        throw TypeError(\".gameproto.FighterInfo.vel: object expected\");\n                    message.vel = $root.gameproto.FVector.fromObject(object.vel);\n                }\n                if (object.name != null)\n                    message.name = String(object.name);\n                if (object.hp != null)\n                    message.hp = object.hp | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a FighterInfo message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.FighterInfo\n             * @static\n             * @param {gameproto.FighterInfo} message FighterInfo\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            FighterInfo.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.id = 0;\n                    object.pos = null;\n                    object.vel = null;\n                    object.name = \"\";\n                    object.hp = 0;\n                }\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    object.id = message.id;\n                if (message.pos != null && message.hasOwnProperty(\"pos\"))\n                    object.pos = $root.gameproto.FVector.toObject(message.pos, options);\n                if (message.vel != null && message.hasOwnProperty(\"vel\"))\n                    object.vel = $root.gameproto.FVector.toObject(message.vel, options);\n                if (message.name != null && message.hasOwnProperty(\"name\"))\n                    object.name = message.name;\n                if (message.hp != null && message.hasOwnProperty(\"hp\"))\n                    object.hp = message.hp;\n                return object;\n            };\n    \n            /**\n             * Converts this FighterInfo to JSON.\n             * @function toJSON\n             * @memberof gameproto.FighterInfo\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            FighterInfo.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return FighterInfo;\n        })();\n    \n        gameproto.BattleStart = (function() {\n    \n            /**\n             * Properties of a BattleStart.\n             * @memberof gameproto\n             * @interface IBattleStart\n             * @property {gameproto.IFighterInfo|null} [self] BattleStart self\n             * @property {Array.<gameproto.IFighterInfo>|null} [fighters] BattleStart fighters\n             */\n    \n            /**\n             * Constructs a new BattleStart.\n             * @memberof gameproto\n             * @classdesc Represents a BattleStart.\n             * @implements IBattleStart\n             * @constructor\n             * @param {gameproto.IBattleStart=} [properties] Properties to set\n             */\n            function BattleStart(properties) {\n                this.fighters = [];\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * BattleStart self.\n             * @member {gameproto.IFighterInfo|null|undefined} self\n             * @memberof gameproto.BattleStart\n             * @instance\n             */\n            BattleStart.prototype.self = null;\n    \n            /**\n             * BattleStart fighters.\n             * @member {Array.<gameproto.IFighterInfo>} fighters\n             * @memberof gameproto.BattleStart\n             * @instance\n             */\n            BattleStart.prototype.fighters = $util.emptyArray;\n    \n            /**\n             * Creates a new BattleStart instance using the specified properties.\n             * @function create\n             * @memberof gameproto.BattleStart\n             * @static\n             * @param {gameproto.IBattleStart=} [properties] Properties to set\n             * @returns {gameproto.BattleStart} BattleStart instance\n             */\n            BattleStart.create = function create(properties) {\n                return new BattleStart(properties);\n            };\n    \n            /**\n             * Encodes the specified BattleStart message. Does not implicitly {@link gameproto.BattleStart.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.BattleStart\n             * @static\n             * @param {gameproto.IBattleStart} message BattleStart message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            BattleStart.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.self != null && message.hasOwnProperty(\"self\"))\n                    $root.gameproto.FighterInfo.encode(message.self, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n                if (message.fighters != null && message.fighters.length)\n                    for (var i = 0; i < message.fighters.length; ++i)\n                        $root.gameproto.FighterInfo.encode(message.fighters[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified BattleStart message, length delimited. Does not implicitly {@link gameproto.BattleStart.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.BattleStart\n             * @static\n             * @param {gameproto.IBattleStart} message BattleStart message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            BattleStart.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a BattleStart message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.BattleStart\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.BattleStart} BattleStart\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            BattleStart.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.BattleStart();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.self = $root.gameproto.FighterInfo.decode(reader, reader.uint32());\n                        break;\n                    case 2:\n                        if (!(message.fighters && message.fighters.length))\n                            message.fighters = [];\n                        message.fighters.push($root.gameproto.FighterInfo.decode(reader, reader.uint32()));\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a BattleStart message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.BattleStart\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.BattleStart} BattleStart\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            BattleStart.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a BattleStart message.\n             * @function verify\n             * @memberof gameproto.BattleStart\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            BattleStart.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.self != null && message.hasOwnProperty(\"self\")) {\n                    var error = $root.gameproto.FighterInfo.verify(message.self);\n                    if (error)\n                        return \"self.\" + error;\n                }\n                if (message.fighters != null && message.hasOwnProperty(\"fighters\")) {\n                    if (!Array.isArray(message.fighters))\n                        return \"fighters: array expected\";\n                    for (var i = 0; i < message.fighters.length; ++i) {\n                        var error = $root.gameproto.FighterInfo.verify(message.fighters[i]);\n                        if (error)\n                            return \"fighters.\" + error;\n                    }\n                }\n                return null;\n            };\n    \n            /**\n             * Creates a BattleStart message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.BattleStart\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.BattleStart} BattleStart\n             */\n            BattleStart.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.BattleStart)\n                    return object;\n                var message = new $root.gameproto.BattleStart();\n                if (object.self != null) {\n                    if (typeof object.self !== \"object\")\n                        throw TypeError(\".gameproto.BattleStart.self: object expected\");\n                    message.self = $root.gameproto.FighterInfo.fromObject(object.self);\n                }\n                if (object.fighters) {\n                    if (!Array.isArray(object.fighters))\n                        throw TypeError(\".gameproto.BattleStart.fighters: array expected\");\n                    message.fighters = [];\n                    for (var i = 0; i < object.fighters.length; ++i) {\n                        if (typeof object.fighters[i] !== \"object\")\n                            throw TypeError(\".gameproto.BattleStart.fighters: object expected\");\n                        message.fighters[i] = $root.gameproto.FighterInfo.fromObject(object.fighters[i]);\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a BattleStart message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.BattleStart\n             * @static\n             * @param {gameproto.BattleStart} message BattleStart\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            BattleStart.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.fighters = [];\n                if (options.defaults)\n                    object.self = null;\n                if (message.self != null && message.hasOwnProperty(\"self\"))\n                    object.self = $root.gameproto.FighterInfo.toObject(message.self, options);\n                if (message.fighters && message.fighters.length) {\n                    object.fighters = [];\n                    for (var j = 0; j < message.fighters.length; ++j)\n                        object.fighters[j] = $root.gameproto.FighterInfo.toObject(message.fighters[j], options);\n                }\n                return object;\n            };\n    \n            /**\n             * Converts this BattleStart to JSON.\n             * @function toJSON\n             * @memberof gameproto.BattleStart\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            BattleStart.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return BattleStart;\n        })();\n    \n        gameproto.NewStage = (function() {\n    \n            /**\n             * Properties of a NewStage.\n             * @memberof gameproto\n             * @interface INewStage\n             * @property {number|null} [stage] NewStage stage\n             * @property {Array.<gameproto.IFighterInfo>|null} [fighters] NewStage fighters\n             */\n    \n            /**\n             * Constructs a new NewStage.\n             * @memberof gameproto\n             * @classdesc Represents a NewStage.\n             * @implements INewStage\n             * @constructor\n             * @param {gameproto.INewStage=} [properties] Properties to set\n             */\n            function NewStage(properties) {\n                this.fighters = [];\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * NewStage stage.\n             * @member {number} stage\n             * @memberof gameproto.NewStage\n             * @instance\n             */\n            NewStage.prototype.stage = 0;\n    \n            /**\n             * NewStage fighters.\n             * @member {Array.<gameproto.IFighterInfo>} fighters\n             * @memberof gameproto.NewStage\n             * @instance\n             */\n            NewStage.prototype.fighters = $util.emptyArray;\n    \n            /**\n             * Creates a new NewStage instance using the specified properties.\n             * @function create\n             * @memberof gameproto.NewStage\n             * @static\n             * @param {gameproto.INewStage=} [properties] Properties to set\n             * @returns {gameproto.NewStage} NewStage instance\n             */\n            NewStage.create = function create(properties) {\n                return new NewStage(properties);\n            };\n    \n            /**\n             * Encodes the specified NewStage message. Does not implicitly {@link gameproto.NewStage.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.NewStage\n             * @static\n             * @param {gameproto.INewStage} message NewStage message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            NewStage.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.stage != null && message.hasOwnProperty(\"stage\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.stage);\n                if (message.fighters != null && message.fighters.length)\n                    for (var i = 0; i < message.fighters.length; ++i)\n                        $root.gameproto.FighterInfo.encode(message.fighters[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified NewStage message, length delimited. Does not implicitly {@link gameproto.NewStage.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.NewStage\n             * @static\n             * @param {gameproto.INewStage} message NewStage message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            NewStage.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a NewStage message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.NewStage\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.NewStage} NewStage\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            NewStage.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.NewStage();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.stage = reader.int32();\n                        break;\n                    case 2:\n                        if (!(message.fighters && message.fighters.length))\n                            message.fighters = [];\n                        message.fighters.push($root.gameproto.FighterInfo.decode(reader, reader.uint32()));\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a NewStage message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.NewStage\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.NewStage} NewStage\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            NewStage.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a NewStage message.\n             * @function verify\n             * @memberof gameproto.NewStage\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            NewStage.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.stage != null && message.hasOwnProperty(\"stage\"))\n                    if (!$util.isInteger(message.stage))\n                        return \"stage: integer expected\";\n                if (message.fighters != null && message.hasOwnProperty(\"fighters\")) {\n                    if (!Array.isArray(message.fighters))\n                        return \"fighters: array expected\";\n                    for (var i = 0; i < message.fighters.length; ++i) {\n                        var error = $root.gameproto.FighterInfo.verify(message.fighters[i]);\n                        if (error)\n                            return \"fighters.\" + error;\n                    }\n                }\n                return null;\n            };\n    \n            /**\n             * Creates a NewStage message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.NewStage\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.NewStage} NewStage\n             */\n            NewStage.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.NewStage)\n                    return object;\n                var message = new $root.gameproto.NewStage();\n                if (object.stage != null)\n                    message.stage = object.stage | 0;\n                if (object.fighters) {\n                    if (!Array.isArray(object.fighters))\n                        throw TypeError(\".gameproto.NewStage.fighters: array expected\");\n                    message.fighters = [];\n                    for (var i = 0; i < object.fighters.length; ++i) {\n                        if (typeof object.fighters[i] !== \"object\")\n                            throw TypeError(\".gameproto.NewStage.fighters: object expected\");\n                        message.fighters[i] = $root.gameproto.FighterInfo.fromObject(object.fighters[i]);\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a NewStage message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.NewStage\n             * @static\n             * @param {gameproto.NewStage} message NewStage\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            NewStage.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.fighters = [];\n                if (options.defaults)\n                    object.stage = 0;\n                if (message.stage != null && message.hasOwnProperty(\"stage\"))\n                    object.stage = message.stage;\n                if (message.fighters && message.fighters.length) {\n                    object.fighters = [];\n                    for (var j = 0; j < message.fighters.length; ++j)\n                        object.fighters[j] = $root.gameproto.FighterInfo.toObject(message.fighters[j], options);\n                }\n                return object;\n            };\n    \n            /**\n             * Converts this NewStage to JSON.\n             * @function toJSON\n             * @memberof gameproto.NewStage\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            NewStage.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return NewStage;\n        })();\n    \n        gameproto.GameOver = (function() {\n    \n            /**\n             * Properties of a GameOver.\n             * @memberof gameproto\n             * @interface IGameOver\n             * @property {number|null} [winner] GameOver winner\n             * @property {number|null} [time] GameOver time\n             * @property {number|null} [stage] GameOver stage\n             * @property {number|null} [kill] GameOver kill\n             */\n    \n            /**\n             * Constructs a new GameOver.\n             * @memberof gameproto\n             * @classdesc Represents a GameOver.\n             * @implements IGameOver\n             * @constructor\n             * @param {gameproto.IGameOver=} [properties] Properties to set\n             */\n            function GameOver(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * GameOver winner.\n             * @member {number} winner\n             * @memberof gameproto.GameOver\n             * @instance\n             */\n            GameOver.prototype.winner = 0;\n    \n            /**\n             * GameOver time.\n             * @member {number} time\n             * @memberof gameproto.GameOver\n             * @instance\n             */\n            GameOver.prototype.time = 0;\n    \n            /**\n             * GameOver stage.\n             * @member {number} stage\n             * @memberof gameproto.GameOver\n             * @instance\n             */\n            GameOver.prototype.stage = 0;\n    \n            /**\n             * GameOver kill.\n             * @member {number} kill\n             * @memberof gameproto.GameOver\n             * @instance\n             */\n            GameOver.prototype.kill = 0;\n    \n            /**\n             * Creates a new GameOver instance using the specified properties.\n             * @function create\n             * @memberof gameproto.GameOver\n             * @static\n             * @param {gameproto.IGameOver=} [properties] Properties to set\n             * @returns {gameproto.GameOver} GameOver instance\n             */\n            GameOver.create = function create(properties) {\n                return new GameOver(properties);\n            };\n    \n            /**\n             * Encodes the specified GameOver message. Does not implicitly {@link gameproto.GameOver.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.GameOver\n             * @static\n             * @param {gameproto.IGameOver} message GameOver message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            GameOver.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.winner != null && message.hasOwnProperty(\"winner\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.winner);\n                if (message.time != null && message.hasOwnProperty(\"time\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.time);\n                if (message.stage != null && message.hasOwnProperty(\"stage\"))\n                    writer.uint32(/* id 3, wireType 0 =*/24).int32(message.stage);\n                if (message.kill != null && message.hasOwnProperty(\"kill\"))\n                    writer.uint32(/* id 4, wireType 0 =*/32).int32(message.kill);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified GameOver message, length delimited. Does not implicitly {@link gameproto.GameOver.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.GameOver\n             * @static\n             * @param {gameproto.IGameOver} message GameOver message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            GameOver.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a GameOver message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.GameOver\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.GameOver} GameOver\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            GameOver.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.GameOver();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.winner = reader.int32();\n                        break;\n                    case 2:\n                        message.time = reader.int32();\n                        break;\n                    case 3:\n                        message.stage = reader.int32();\n                        break;\n                    case 4:\n                        message.kill = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a GameOver message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.GameOver\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.GameOver} GameOver\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            GameOver.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a GameOver message.\n             * @function verify\n             * @memberof gameproto.GameOver\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            GameOver.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.winner != null && message.hasOwnProperty(\"winner\"))\n                    if (!$util.isInteger(message.winner))\n                        return \"winner: integer expected\";\n                if (message.time != null && message.hasOwnProperty(\"time\"))\n                    if (!$util.isInteger(message.time))\n                        return \"time: integer expected\";\n                if (message.stage != null && message.hasOwnProperty(\"stage\"))\n                    if (!$util.isInteger(message.stage))\n                        return \"stage: integer expected\";\n                if (message.kill != null && message.hasOwnProperty(\"kill\"))\n                    if (!$util.isInteger(message.kill))\n                        return \"kill: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a GameOver message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.GameOver\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.GameOver} GameOver\n             */\n            GameOver.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.GameOver)\n                    return object;\n                var message = new $root.gameproto.GameOver();\n                if (object.winner != null)\n                    message.winner = object.winner | 0;\n                if (object.time != null)\n                    message.time = object.time | 0;\n                if (object.stage != null)\n                    message.stage = object.stage | 0;\n                if (object.kill != null)\n                    message.kill = object.kill | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a GameOver message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.GameOver\n             * @static\n             * @param {gameproto.GameOver} message GameOver\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            GameOver.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.winner = 0;\n                    object.time = 0;\n                    object.stage = 0;\n                    object.kill = 0;\n                }\n                if (message.winner != null && message.hasOwnProperty(\"winner\"))\n                    object.winner = message.winner;\n                if (message.time != null && message.hasOwnProperty(\"time\"))\n                    object.time = message.time;\n                if (message.stage != null && message.hasOwnProperty(\"stage\"))\n                    object.stage = message.stage;\n                if (message.kill != null && message.hasOwnProperty(\"kill\"))\n                    object.kill = message.kill;\n                return object;\n            };\n    \n            /**\n             * Converts this GameOver to JSON.\n             * @function toJSON\n             * @memberof gameproto.GameOver\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            GameOver.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return GameOver;\n        })();\n    \n        gameproto.Hit = (function() {\n    \n            /**\n             * Properties of a Hit.\n             * @memberof gameproto\n             * @interface IHit\n             * @property {number|null} [bulletId] Hit bulletId\n             * @property {number|null} [targetId] Hit targetId\n             * @property {number|null} [loseHP] Hit loseHP\n             */\n    \n            /**\n             * Constructs a new Hit.\n             * @memberof gameproto\n             * @classdesc Represents a Hit.\n             * @implements IHit\n             * @constructor\n             * @param {gameproto.IHit=} [properties] Properties to set\n             */\n            function Hit(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * Hit bulletId.\n             * @member {number} bulletId\n             * @memberof gameproto.Hit\n             * @instance\n             */\n            Hit.prototype.bulletId = 0;\n    \n            /**\n             * Hit targetId.\n             * @member {number} targetId\n             * @memberof gameproto.Hit\n             * @instance\n             */\n            Hit.prototype.targetId = 0;\n    \n            /**\n             * Hit loseHP.\n             * @member {number} loseHP\n             * @memberof gameproto.Hit\n             * @instance\n             */\n            Hit.prototype.loseHP = 0;\n    \n            /**\n             * Creates a new Hit instance using the specified properties.\n             * @function create\n             * @memberof gameproto.Hit\n             * @static\n             * @param {gameproto.IHit=} [properties] Properties to set\n             * @returns {gameproto.Hit} Hit instance\n             */\n            Hit.create = function create(properties) {\n                return new Hit(properties);\n            };\n    \n            /**\n             * Encodes the specified Hit message. Does not implicitly {@link gameproto.Hit.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.Hit\n             * @static\n             * @param {gameproto.IHit} message Hit message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Hit.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.bulletId != null && message.hasOwnProperty(\"bulletId\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.bulletId);\n                if (message.targetId != null && message.hasOwnProperty(\"targetId\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.targetId);\n                if (message.loseHP != null && message.hasOwnProperty(\"loseHP\"))\n                    writer.uint32(/* id 3, wireType 0 =*/24).int32(message.loseHP);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified Hit message, length delimited. Does not implicitly {@link gameproto.Hit.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.Hit\n             * @static\n             * @param {gameproto.IHit} message Hit message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Hit.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a Hit message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.Hit\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.Hit} Hit\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            Hit.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.Hit();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.bulletId = reader.int32();\n                        break;\n                    case 2:\n                        message.targetId = reader.int32();\n                        break;\n                    case 3:\n                        message.loseHP = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a Hit message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.Hit\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.Hit} Hit\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            Hit.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a Hit message.\n             * @function verify\n             * @memberof gameproto.Hit\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            Hit.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.bulletId != null && message.hasOwnProperty(\"bulletId\"))\n                    if (!$util.isInteger(message.bulletId))\n                        return \"bulletId: integer expected\";\n                if (message.targetId != null && message.hasOwnProperty(\"targetId\"))\n                    if (!$util.isInteger(message.targetId))\n                        return \"targetId: integer expected\";\n                if (message.loseHP != null && message.hasOwnProperty(\"loseHP\"))\n                    if (!$util.isInteger(message.loseHP))\n                        return \"loseHP: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a Hit message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.Hit\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.Hit} Hit\n             */\n            Hit.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.Hit)\n                    return object;\n                var message = new $root.gameproto.Hit();\n                if (object.bulletId != null)\n                    message.bulletId = object.bulletId | 0;\n                if (object.targetId != null)\n                    message.targetId = object.targetId | 0;\n                if (object.loseHP != null)\n                    message.loseHP = object.loseHP | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a Hit message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.Hit\n             * @static\n             * @param {gameproto.Hit} message Hit\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            Hit.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.bulletId = 0;\n                    object.targetId = 0;\n                    object.loseHP = 0;\n                }\n                if (message.bulletId != null && message.hasOwnProperty(\"bulletId\"))\n                    object.bulletId = message.bulletId;\n                if (message.targetId != null && message.hasOwnProperty(\"targetId\"))\n                    object.targetId = message.targetId;\n                if (message.loseHP != null && message.hasOwnProperty(\"loseHP\"))\n                    object.loseHP = message.loseHP;\n                return object;\n            };\n    \n            /**\n             * Converts this Hit to JSON.\n             * @function toJSON\n             * @memberof gameproto.Hit\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            Hit.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return Hit;\n        })();\n    \n        gameproto.AddHP = (function() {\n    \n            /**\n             * Properties of an AddHP.\n             * @memberof gameproto\n             * @interface IAddHP\n             * @property {number|null} [add] AddHP add\n             * @property {number|null} [id] AddHP id\n             */\n    \n            /**\n             * Constructs a new AddHP.\n             * @memberof gameproto\n             * @classdesc Represents an AddHP.\n             * @implements IAddHP\n             * @constructor\n             * @param {gameproto.IAddHP=} [properties] Properties to set\n             */\n            function AddHP(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * AddHP add.\n             * @member {number} add\n             * @memberof gameproto.AddHP\n             * @instance\n             */\n            AddHP.prototype.add = 0;\n    \n            /**\n             * AddHP id.\n             * @member {number} id\n             * @memberof gameproto.AddHP\n             * @instance\n             */\n            AddHP.prototype.id = 0;\n    \n            /**\n             * Creates a new AddHP instance using the specified properties.\n             * @function create\n             * @memberof gameproto.AddHP\n             * @static\n             * @param {gameproto.IAddHP=} [properties] Properties to set\n             * @returns {gameproto.AddHP} AddHP instance\n             */\n            AddHP.create = function create(properties) {\n                return new AddHP(properties);\n            };\n    \n            /**\n             * Encodes the specified AddHP message. Does not implicitly {@link gameproto.AddHP.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.AddHP\n             * @static\n             * @param {gameproto.IAddHP} message AddHP message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            AddHP.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.add != null && message.hasOwnProperty(\"add\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.add);\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.id);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified AddHP message, length delimited. Does not implicitly {@link gameproto.AddHP.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.AddHP\n             * @static\n             * @param {gameproto.IAddHP} message AddHP message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            AddHP.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes an AddHP message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.AddHP\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.AddHP} AddHP\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            AddHP.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.AddHP();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.add = reader.int32();\n                        break;\n                    case 2:\n                        message.id = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes an AddHP message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.AddHP\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.AddHP} AddHP\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            AddHP.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies an AddHP message.\n             * @function verify\n             * @memberof gameproto.AddHP\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            AddHP.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.add != null && message.hasOwnProperty(\"add\"))\n                    if (!$util.isInteger(message.add))\n                        return \"add: integer expected\";\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    if (!$util.isInteger(message.id))\n                        return \"id: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates an AddHP message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.AddHP\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.AddHP} AddHP\n             */\n            AddHP.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.AddHP)\n                    return object;\n                var message = new $root.gameproto.AddHP();\n                if (object.add != null)\n                    message.add = object.add | 0;\n                if (object.id != null)\n                    message.id = object.id | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from an AddHP message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.AddHP\n             * @static\n             * @param {gameproto.AddHP} message AddHP\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            AddHP.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.add = 0;\n                    object.id = 0;\n                }\n                if (message.add != null && message.hasOwnProperty(\"add\"))\n                    object.add = message.add;\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    object.id = message.id;\n                return object;\n            };\n    \n            /**\n             * Converts this AddHP to JSON.\n             * @function toJSON\n             * @memberof gameproto.AddHP\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            AddHP.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return AddHP;\n        })();\n    \n        gameproto.Dead = (function() {\n    \n            /**\n             * Properties of a Dead.\n             * @memberof gameproto\n             * @interface IDead\n             * @property {number|null} [id] Dead id\n             * @property {number|null} [enemyId] Dead enemyId\n             */\n    \n            /**\n             * Constructs a new Dead.\n             * @memberof gameproto\n             * @classdesc Represents a Dead.\n             * @implements IDead\n             * @constructor\n             * @param {gameproto.IDead=} [properties] Properties to set\n             */\n            function Dead(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * Dead id.\n             * @member {number} id\n             * @memberof gameproto.Dead\n             * @instance\n             */\n            Dead.prototype.id = 0;\n    \n            /**\n             * Dead enemyId.\n             * @member {number} enemyId\n             * @memberof gameproto.Dead\n             * @instance\n             */\n            Dead.prototype.enemyId = 0;\n    \n            /**\n             * Creates a new Dead instance using the specified properties.\n             * @function create\n             * @memberof gameproto.Dead\n             * @static\n             * @param {gameproto.IDead=} [properties] Properties to set\n             * @returns {gameproto.Dead} Dead instance\n             */\n            Dead.create = function create(properties) {\n                return new Dead(properties);\n            };\n    \n            /**\n             * Encodes the specified Dead message. Does not implicitly {@link gameproto.Dead.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.Dead\n             * @static\n             * @param {gameproto.IDead} message Dead message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Dead.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id);\n                if (message.enemyId != null && message.hasOwnProperty(\"enemyId\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.enemyId);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified Dead message, length delimited. Does not implicitly {@link gameproto.Dead.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.Dead\n             * @static\n             * @param {gameproto.IDead} message Dead message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Dead.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a Dead message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.Dead\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.Dead} Dead\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            Dead.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.Dead();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.id = reader.int32();\n                        break;\n                    case 2:\n                        message.enemyId = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a Dead message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.Dead\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.Dead} Dead\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            Dead.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a Dead message.\n             * @function verify\n             * @memberof gameproto.Dead\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            Dead.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    if (!$util.isInteger(message.id))\n                        return \"id: integer expected\";\n                if (message.enemyId != null && message.hasOwnProperty(\"enemyId\"))\n                    if (!$util.isInteger(message.enemyId))\n                        return \"enemyId: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a Dead message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.Dead\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.Dead} Dead\n             */\n            Dead.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.Dead)\n                    return object;\n                var message = new $root.gameproto.Dead();\n                if (object.id != null)\n                    message.id = object.id | 0;\n                if (object.enemyId != null)\n                    message.enemyId = object.enemyId | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a Dead message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.Dead\n             * @static\n             * @param {gameproto.Dead} message Dead\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            Dead.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.id = 0;\n                    object.enemyId = 0;\n                }\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    object.id = message.id;\n                if (message.enemyId != null && message.hasOwnProperty(\"enemyId\"))\n                    object.enemyId = message.enemyId;\n                return object;\n            };\n    \n            /**\n             * Converts this Dead to JSON.\n             * @function toJSON\n             * @memberof gameproto.Dead\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            Dead.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return Dead;\n        })();\n    \n        gameproto.AddEntity = (function() {\n    \n            /**\n             * Properties of an AddEntity.\n             * @memberof gameproto\n             * @interface IAddEntity\n             * @property {number|null} [id] AddEntity id\n             * @property {gameproto.IFVector|null} [pos] AddEntity pos\n             * @property {gameproto.IFVector|null} [vel] AddEntity vel\n             * @property {number|null} [etype] AddEntity etype\n             */\n    \n            /**\n             * Constructs a new AddEntity.\n             * @memberof gameproto\n             * @classdesc Represents an AddEntity.\n             * @implements IAddEntity\n             * @constructor\n             * @param {gameproto.IAddEntity=} [properties] Properties to set\n             */\n            function AddEntity(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * AddEntity id.\n             * @member {number} id\n             * @memberof gameproto.AddEntity\n             * @instance\n             */\n            AddEntity.prototype.id = 0;\n    \n            /**\n             * AddEntity pos.\n             * @member {gameproto.IFVector|null|undefined} pos\n             * @memberof gameproto.AddEntity\n             * @instance\n             */\n            AddEntity.prototype.pos = null;\n    \n            /**\n             * AddEntity vel.\n             * @member {gameproto.IFVector|null|undefined} vel\n             * @memberof gameproto.AddEntity\n             * @instance\n             */\n            AddEntity.prototype.vel = null;\n    \n            /**\n             * AddEntity etype.\n             * @member {number} etype\n             * @memberof gameproto.AddEntity\n             * @instance\n             */\n            AddEntity.prototype.etype = 0;\n    \n            /**\n             * Creates a new AddEntity instance using the specified properties.\n             * @function create\n             * @memberof gameproto.AddEntity\n             * @static\n             * @param {gameproto.IAddEntity=} [properties] Properties to set\n             * @returns {gameproto.AddEntity} AddEntity instance\n             */\n            AddEntity.create = function create(properties) {\n                return new AddEntity(properties);\n            };\n    \n            /**\n             * Encodes the specified AddEntity message. Does not implicitly {@link gameproto.AddEntity.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.AddEntity\n             * @static\n             * @param {gameproto.IAddEntity} message AddEntity message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            AddEntity.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id);\n                if (message.pos != null && message.hasOwnProperty(\"pos\"))\n                    $root.gameproto.FVector.encode(message.pos, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n                if (message.vel != null && message.hasOwnProperty(\"vel\"))\n                    $root.gameproto.FVector.encode(message.vel, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n                if (message.etype != null && message.hasOwnProperty(\"etype\"))\n                    writer.uint32(/* id 4, wireType 0 =*/32).int32(message.etype);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified AddEntity message, length delimited. Does not implicitly {@link gameproto.AddEntity.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.AddEntity\n             * @static\n             * @param {gameproto.IAddEntity} message AddEntity message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            AddEntity.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes an AddEntity message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.AddEntity\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.AddEntity} AddEntity\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            AddEntity.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.AddEntity();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.id = reader.int32();\n                        break;\n                    case 2:\n                        message.pos = $root.gameproto.FVector.decode(reader, reader.uint32());\n                        break;\n                    case 3:\n                        message.vel = $root.gameproto.FVector.decode(reader, reader.uint32());\n                        break;\n                    case 4:\n                        message.etype = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes an AddEntity message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.AddEntity\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.AddEntity} AddEntity\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            AddEntity.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies an AddEntity message.\n             * @function verify\n             * @memberof gameproto.AddEntity\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            AddEntity.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    if (!$util.isInteger(message.id))\n                        return \"id: integer expected\";\n                if (message.pos != null && message.hasOwnProperty(\"pos\")) {\n                    var error = $root.gameproto.FVector.verify(message.pos);\n                    if (error)\n                        return \"pos.\" + error;\n                }\n                if (message.vel != null && message.hasOwnProperty(\"vel\")) {\n                    var error = $root.gameproto.FVector.verify(message.vel);\n                    if (error)\n                        return \"vel.\" + error;\n                }\n                if (message.etype != null && message.hasOwnProperty(\"etype\"))\n                    if (!$util.isInteger(message.etype))\n                        return \"etype: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates an AddEntity message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.AddEntity\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.AddEntity} AddEntity\n             */\n            AddEntity.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.AddEntity)\n                    return object;\n                var message = new $root.gameproto.AddEntity();\n                if (object.id != null)\n                    message.id = object.id | 0;\n                if (object.pos != null) {\n                    if (typeof object.pos !== \"object\")\n                        throw TypeError(\".gameproto.AddEntity.pos: object expected\");\n                    message.pos = $root.gameproto.FVector.fromObject(object.pos);\n                }\n                if (object.vel != null) {\n                    if (typeof object.vel !== \"object\")\n                        throw TypeError(\".gameproto.AddEntity.vel: object expected\");\n                    message.vel = $root.gameproto.FVector.fromObject(object.vel);\n                }\n                if (object.etype != null)\n                    message.etype = object.etype | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from an AddEntity message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.AddEntity\n             * @static\n             * @param {gameproto.AddEntity} message AddEntity\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            AddEntity.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.id = 0;\n                    object.pos = null;\n                    object.vel = null;\n                    object.etype = 0;\n                }\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    object.id = message.id;\n                if (message.pos != null && message.hasOwnProperty(\"pos\"))\n                    object.pos = $root.gameproto.FVector.toObject(message.pos, options);\n                if (message.vel != null && message.hasOwnProperty(\"vel\"))\n                    object.vel = $root.gameproto.FVector.toObject(message.vel, options);\n                if (message.etype != null && message.hasOwnProperty(\"etype\"))\n                    object.etype = message.etype;\n                return object;\n            };\n    \n            /**\n             * Converts this AddEntity to JSON.\n             * @function toJSON\n             * @memberof gameproto.AddEntity\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            AddEntity.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return AddEntity;\n        })();\n    \n        gameproto.RemoveEntity = (function() {\n    \n            /**\n             * Properties of a RemoveEntity.\n             * @memberof gameproto\n             * @interface IRemoveEntity\n             * @property {number|null} [id] RemoveEntity id\n             * @property {number|null} [etype] RemoveEntity etype\n             */\n    \n            /**\n             * Constructs a new RemoveEntity.\n             * @memberof gameproto\n             * @classdesc Represents a RemoveEntity.\n             * @implements IRemoveEntity\n             * @constructor\n             * @param {gameproto.IRemoveEntity=} [properties] Properties to set\n             */\n            function RemoveEntity(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * RemoveEntity id.\n             * @member {number} id\n             * @memberof gameproto.RemoveEntity\n             * @instance\n             */\n            RemoveEntity.prototype.id = 0;\n    \n            /**\n             * RemoveEntity etype.\n             * @member {number} etype\n             * @memberof gameproto.RemoveEntity\n             * @instance\n             */\n            RemoveEntity.prototype.etype = 0;\n    \n            /**\n             * Creates a new RemoveEntity instance using the specified properties.\n             * @function create\n             * @memberof gameproto.RemoveEntity\n             * @static\n             * @param {gameproto.IRemoveEntity=} [properties] Properties to set\n             * @returns {gameproto.RemoveEntity} RemoveEntity instance\n             */\n            RemoveEntity.create = function create(properties) {\n                return new RemoveEntity(properties);\n            };\n    \n            /**\n             * Encodes the specified RemoveEntity message. Does not implicitly {@link gameproto.RemoveEntity.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.RemoveEntity\n             * @static\n             * @param {gameproto.IRemoveEntity} message RemoveEntity message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            RemoveEntity.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id);\n                if (message.etype != null && message.hasOwnProperty(\"etype\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.etype);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified RemoveEntity message, length delimited. Does not implicitly {@link gameproto.RemoveEntity.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.RemoveEntity\n             * @static\n             * @param {gameproto.IRemoveEntity} message RemoveEntity message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            RemoveEntity.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a RemoveEntity message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.RemoveEntity\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.RemoveEntity} RemoveEntity\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            RemoveEntity.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.RemoveEntity();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.id = reader.int32();\n                        break;\n                    case 2:\n                        message.etype = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a RemoveEntity message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.RemoveEntity\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.RemoveEntity} RemoveEntity\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            RemoveEntity.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a RemoveEntity message.\n             * @function verify\n             * @memberof gameproto.RemoveEntity\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            RemoveEntity.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    if (!$util.isInteger(message.id))\n                        return \"id: integer expected\";\n                if (message.etype != null && message.hasOwnProperty(\"etype\"))\n                    if (!$util.isInteger(message.etype))\n                        return \"etype: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a RemoveEntity message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.RemoveEntity\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.RemoveEntity} RemoveEntity\n             */\n            RemoveEntity.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.RemoveEntity)\n                    return object;\n                var message = new $root.gameproto.RemoveEntity();\n                if (object.id != null)\n                    message.id = object.id | 0;\n                if (object.etype != null)\n                    message.etype = object.etype | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a RemoveEntity message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.RemoveEntity\n             * @static\n             * @param {gameproto.RemoveEntity} message RemoveEntity\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            RemoveEntity.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.id = 0;\n                    object.etype = 0;\n                }\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    object.id = message.id;\n                if (message.etype != null && message.hasOwnProperty(\"etype\"))\n                    object.etype = message.etype;\n                return object;\n            };\n    \n            /**\n             * Converts this RemoveEntity to JSON.\n             * @function toJSON\n             * @memberof gameproto.RemoveEntity\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            RemoveEntity.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return RemoveEntity;\n        })();\n    \n        return gameproto;\n    })();\n\n    return $root;\n});\n"
  },
  {
    "path": "server/config/gameproto/temp/login.js",
    "content": "/*eslint-disable block-scoped-var, no-redeclare, no-control-regex, no-prototype-builtins*/\n(function(global, factory) { /* global define, require, module */\n\n    /* AMD */ if (typeof define === 'function' && define.amd)\n        define([\"protobufjs/minimal\"], factory);\n\n    /* CommonJS */ else if (typeof require === 'function' && typeof module === 'object' && module && module.exports)\n        module.exports = factory(require(\"protobufjs/minimal\"));\n\n})(this, function($protobuf) {\n    \"use strict\";\n\n    // Common aliases\n    var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n    \n    // Exported root namespace\n    var $root = $protobuf.roots[\"default\"] || ($protobuf.roots[\"default\"] = {});\n    \n    $root.gameproto = (function() {\n    \n        /**\n         * Namespace gameproto.\n         * @exports gameproto\n         * @namespace\n         */\n        var gameproto = {};\n    \n        gameproto.UserLoginResult = (function() {\n    \n            /**\n             * Properties of a UserLoginResult.\n             * @memberof gameproto\n             * @interface IUserLoginResult\n             * @property {number|null} [uid] UserLoginResult uid\n             * @property {string|null} [gateTcpAddr] UserLoginResult gateTcpAddr\n             * @property {string|null} [gateWsAddr] UserLoginResult gateWsAddr\n             * @property {string|null} [key] UserLoginResult key\n             * @property {number|null} [result] UserLoginResult result\n             */\n    \n            /**\n             * Constructs a new UserLoginResult.\n             * @memberof gameproto\n             * @classdesc Represents a UserLoginResult.\n             * @implements IUserLoginResult\n             * @constructor\n             * @param {gameproto.IUserLoginResult=} [properties] Properties to set\n             */\n            function UserLoginResult(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * UserLoginResult uid.\n             * @member {number} uid\n             * @memberof gameproto.UserLoginResult\n             * @instance\n             */\n            UserLoginResult.prototype.uid = 0;\n    \n            /**\n             * UserLoginResult gateTcpAddr.\n             * @member {string} gateTcpAddr\n             * @memberof gameproto.UserLoginResult\n             * @instance\n             */\n            UserLoginResult.prototype.gateTcpAddr = \"\";\n    \n            /**\n             * UserLoginResult gateWsAddr.\n             * @member {string} gateWsAddr\n             * @memberof gameproto.UserLoginResult\n             * @instance\n             */\n            UserLoginResult.prototype.gateWsAddr = \"\";\n    \n            /**\n             * UserLoginResult key.\n             * @member {string} key\n             * @memberof gameproto.UserLoginResult\n             * @instance\n             */\n            UserLoginResult.prototype.key = \"\";\n    \n            /**\n             * UserLoginResult result.\n             * @member {number} result\n             * @memberof gameproto.UserLoginResult\n             * @instance\n             */\n            UserLoginResult.prototype.result = 0;\n    \n            /**\n             * Creates a new UserLoginResult instance using the specified properties.\n             * @function create\n             * @memberof gameproto.UserLoginResult\n             * @static\n             * @param {gameproto.IUserLoginResult=} [properties] Properties to set\n             * @returns {gameproto.UserLoginResult} UserLoginResult instance\n             */\n            UserLoginResult.create = function create(properties) {\n                return new UserLoginResult(properties);\n            };\n    \n            /**\n             * Encodes the specified UserLoginResult message. Does not implicitly {@link gameproto.UserLoginResult.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.UserLoginResult\n             * @static\n             * @param {gameproto.IUserLoginResult} message UserLoginResult message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            UserLoginResult.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.uid != null && message.hasOwnProperty(\"uid\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.uid);\n                if (message.gateTcpAddr != null && message.hasOwnProperty(\"gateTcpAddr\"))\n                    writer.uint32(/* id 2, wireType 2 =*/18).string(message.gateTcpAddr);\n                if (message.gateWsAddr != null && message.hasOwnProperty(\"gateWsAddr\"))\n                    writer.uint32(/* id 3, wireType 2 =*/26).string(message.gateWsAddr);\n                if (message.key != null && message.hasOwnProperty(\"key\"))\n                    writer.uint32(/* id 4, wireType 2 =*/34).string(message.key);\n                if (message.result != null && message.hasOwnProperty(\"result\"))\n                    writer.uint32(/* id 5, wireType 0 =*/40).int32(message.result);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified UserLoginResult message, length delimited. Does not implicitly {@link gameproto.UserLoginResult.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.UserLoginResult\n             * @static\n             * @param {gameproto.IUserLoginResult} message UserLoginResult message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            UserLoginResult.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a UserLoginResult message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.UserLoginResult\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.UserLoginResult} UserLoginResult\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            UserLoginResult.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.UserLoginResult();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.uid = reader.uint32();\n                        break;\n                    case 2:\n                        message.gateTcpAddr = reader.string();\n                        break;\n                    case 3:\n                        message.gateWsAddr = reader.string();\n                        break;\n                    case 4:\n                        message.key = reader.string();\n                        break;\n                    case 5:\n                        message.result = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a UserLoginResult message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.UserLoginResult\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.UserLoginResult} UserLoginResult\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            UserLoginResult.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a UserLoginResult message.\n             * @function verify\n             * @memberof gameproto.UserLoginResult\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            UserLoginResult.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.uid != null && message.hasOwnProperty(\"uid\"))\n                    if (!$util.isInteger(message.uid))\n                        return \"uid: integer expected\";\n                if (message.gateTcpAddr != null && message.hasOwnProperty(\"gateTcpAddr\"))\n                    if (!$util.isString(message.gateTcpAddr))\n                        return \"gateTcpAddr: string expected\";\n                if (message.gateWsAddr != null && message.hasOwnProperty(\"gateWsAddr\"))\n                    if (!$util.isString(message.gateWsAddr))\n                        return \"gateWsAddr: string expected\";\n                if (message.key != null && message.hasOwnProperty(\"key\"))\n                    if (!$util.isString(message.key))\n                        return \"key: string expected\";\n                if (message.result != null && message.hasOwnProperty(\"result\"))\n                    if (!$util.isInteger(message.result))\n                        return \"result: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a UserLoginResult message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.UserLoginResult\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.UserLoginResult} UserLoginResult\n             */\n            UserLoginResult.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.UserLoginResult)\n                    return object;\n                var message = new $root.gameproto.UserLoginResult();\n                if (object.uid != null)\n                    message.uid = object.uid >>> 0;\n                if (object.gateTcpAddr != null)\n                    message.gateTcpAddr = String(object.gateTcpAddr);\n                if (object.gateWsAddr != null)\n                    message.gateWsAddr = String(object.gateWsAddr);\n                if (object.key != null)\n                    message.key = String(object.key);\n                if (object.result != null)\n                    message.result = object.result | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a UserLoginResult message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.UserLoginResult\n             * @static\n             * @param {gameproto.UserLoginResult} message UserLoginResult\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            UserLoginResult.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.uid = 0;\n                    object.gateTcpAddr = \"\";\n                    object.gateWsAddr = \"\";\n                    object.key = \"\";\n                    object.result = 0;\n                }\n                if (message.uid != null && message.hasOwnProperty(\"uid\"))\n                    object.uid = message.uid;\n                if (message.gateTcpAddr != null && message.hasOwnProperty(\"gateTcpAddr\"))\n                    object.gateTcpAddr = message.gateTcpAddr;\n                if (message.gateWsAddr != null && message.hasOwnProperty(\"gateWsAddr\"))\n                    object.gateWsAddr = message.gateWsAddr;\n                if (message.key != null && message.hasOwnProperty(\"key\"))\n                    object.key = message.key;\n                if (message.result != null && message.hasOwnProperty(\"result\"))\n                    object.result = message.result;\n                return object;\n            };\n    \n            /**\n             * Converts this UserLoginResult to JSON.\n             * @function toJSON\n             * @memberof gameproto.UserLoginResult\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            UserLoginResult.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return UserLoginResult;\n        })();\n    \n        gameproto.PlatformUser = (function() {\n    \n            /**\n             * Properties of a PlatformUser.\n             * @memberof gameproto\n             * @interface IPlatformUser\n             * @property {string|null} [platformId] PlatformUser platformId\n             * @property {gameproto.PlatformUser.PlatformType|null} [platform] PlatformUser platform\n             * @property {string|null} [platformSession] PlatformUser platformSession\n             * @property {number|null} [platformUid] PlatformUser platformUid\n             * @property {number|null} [serverID] PlatformUser serverID\n             * @property {string|null} [channelId] PlatformUser channelId\n             * @property {number|null} [version] PlatformUser version\n             * @property {string|null} [key] PlatformUser key\n             */\n    \n            /**\n             * Constructs a new PlatformUser.\n             * @memberof gameproto\n             * @classdesc Represents a PlatformUser.\n             * @implements IPlatformUser\n             * @constructor\n             * @param {gameproto.IPlatformUser=} [properties] Properties to set\n             */\n            function PlatformUser(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * PlatformUser platformId.\n             * @member {string} platformId\n             * @memberof gameproto.PlatformUser\n             * @instance\n             */\n            PlatformUser.prototype.platformId = \"\";\n    \n            /**\n             * PlatformUser platform.\n             * @member {gameproto.PlatformUser.PlatformType} platform\n             * @memberof gameproto.PlatformUser\n             * @instance\n             */\n            PlatformUser.prototype.platform = 0;\n    \n            /**\n             * PlatformUser platformSession.\n             * @member {string} platformSession\n             * @memberof gameproto.PlatformUser\n             * @instance\n             */\n            PlatformUser.prototype.platformSession = \"\";\n    \n            /**\n             * PlatformUser platformUid.\n             * @member {number} platformUid\n             * @memberof gameproto.PlatformUser\n             * @instance\n             */\n            PlatformUser.prototype.platformUid = 0;\n    \n            /**\n             * PlatformUser serverID.\n             * @member {number} serverID\n             * @memberof gameproto.PlatformUser\n             * @instance\n             */\n            PlatformUser.prototype.serverID = 0;\n    \n            /**\n             * PlatformUser channelId.\n             * @member {string} channelId\n             * @memberof gameproto.PlatformUser\n             * @instance\n             */\n            PlatformUser.prototype.channelId = \"\";\n    \n            /**\n             * PlatformUser version.\n             * @member {number} version\n             * @memberof gameproto.PlatformUser\n             * @instance\n             */\n            PlatformUser.prototype.version = 0;\n    \n            /**\n             * PlatformUser key.\n             * @member {string} key\n             * @memberof gameproto.PlatformUser\n             * @instance\n             */\n            PlatformUser.prototype.key = \"\";\n    \n            /**\n             * Creates a new PlatformUser instance using the specified properties.\n             * @function create\n             * @memberof gameproto.PlatformUser\n             * @static\n             * @param {gameproto.IPlatformUser=} [properties] Properties to set\n             * @returns {gameproto.PlatformUser} PlatformUser instance\n             */\n            PlatformUser.create = function create(properties) {\n                return new PlatformUser(properties);\n            };\n    \n            /**\n             * Encodes the specified PlatformUser message. Does not implicitly {@link gameproto.PlatformUser.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.PlatformUser\n             * @static\n             * @param {gameproto.IPlatformUser} message PlatformUser message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            PlatformUser.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.platformId != null && message.hasOwnProperty(\"platformId\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.platformId);\n                if (message.platform != null && message.hasOwnProperty(\"platform\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.platform);\n                if (message.platformSession != null && message.hasOwnProperty(\"platformSession\"))\n                    writer.uint32(/* id 3, wireType 2 =*/26).string(message.platformSession);\n                if (message.platformUid != null && message.hasOwnProperty(\"platformUid\"))\n                    writer.uint32(/* id 4, wireType 0 =*/32).int32(message.platformUid);\n                if (message.serverID != null && message.hasOwnProperty(\"serverID\"))\n                    writer.uint32(/* id 5, wireType 0 =*/40).int32(message.serverID);\n                if (message.channelId != null && message.hasOwnProperty(\"channelId\"))\n                    writer.uint32(/* id 6, wireType 2 =*/50).string(message.channelId);\n                if (message.version != null && message.hasOwnProperty(\"version\"))\n                    writer.uint32(/* id 7, wireType 0 =*/56).int32(message.version);\n                if (message.key != null && message.hasOwnProperty(\"key\"))\n                    writer.uint32(/* id 8, wireType 2 =*/66).string(message.key);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified PlatformUser message, length delimited. Does not implicitly {@link gameproto.PlatformUser.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.PlatformUser\n             * @static\n             * @param {gameproto.IPlatformUser} message PlatformUser message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            PlatformUser.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a PlatformUser message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.PlatformUser\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.PlatformUser} PlatformUser\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            PlatformUser.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.PlatformUser();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.platformId = reader.string();\n                        break;\n                    case 2:\n                        message.platform = reader.int32();\n                        break;\n                    case 3:\n                        message.platformSession = reader.string();\n                        break;\n                    case 4:\n                        message.platformUid = reader.int32();\n                        break;\n                    case 5:\n                        message.serverID = reader.int32();\n                        break;\n                    case 6:\n                        message.channelId = reader.string();\n                        break;\n                    case 7:\n                        message.version = reader.int32();\n                        break;\n                    case 8:\n                        message.key = reader.string();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a PlatformUser message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.PlatformUser\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.PlatformUser} PlatformUser\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            PlatformUser.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a PlatformUser message.\n             * @function verify\n             * @memberof gameproto.PlatformUser\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            PlatformUser.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.platformId != null && message.hasOwnProperty(\"platformId\"))\n                    if (!$util.isString(message.platformId))\n                        return \"platformId: string expected\";\n                if (message.platform != null && message.hasOwnProperty(\"platform\"))\n                    switch (message.platform) {\n                    default:\n                        return \"platform: enum value expected\";\n                    case 0:\n                    case 99:\n                        break;\n                    }\n                if (message.platformSession != null && message.hasOwnProperty(\"platformSession\"))\n                    if (!$util.isString(message.platformSession))\n                        return \"platformSession: string expected\";\n                if (message.platformUid != null && message.hasOwnProperty(\"platformUid\"))\n                    if (!$util.isInteger(message.platformUid))\n                        return \"platformUid: integer expected\";\n                if (message.serverID != null && message.hasOwnProperty(\"serverID\"))\n                    if (!$util.isInteger(message.serverID))\n                        return \"serverID: integer expected\";\n                if (message.channelId != null && message.hasOwnProperty(\"channelId\"))\n                    if (!$util.isString(message.channelId))\n                        return \"channelId: string expected\";\n                if (message.version != null && message.hasOwnProperty(\"version\"))\n                    if (!$util.isInteger(message.version))\n                        return \"version: integer expected\";\n                if (message.key != null && message.hasOwnProperty(\"key\"))\n                    if (!$util.isString(message.key))\n                        return \"key: string expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a PlatformUser message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.PlatformUser\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.PlatformUser} PlatformUser\n             */\n            PlatformUser.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.PlatformUser)\n                    return object;\n                var message = new $root.gameproto.PlatformUser();\n                if (object.platformId != null)\n                    message.platformId = String(object.platformId);\n                switch (object.platform) {\n                case \"Engine\":\n                case 0:\n                    message.platform = 0;\n                    break;\n                case \"DEVICE\":\n                case 99:\n                    message.platform = 99;\n                    break;\n                }\n                if (object.platformSession != null)\n                    message.platformSession = String(object.platformSession);\n                if (object.platformUid != null)\n                    message.platformUid = object.platformUid | 0;\n                if (object.serverID != null)\n                    message.serverID = object.serverID | 0;\n                if (object.channelId != null)\n                    message.channelId = String(object.channelId);\n                if (object.version != null)\n                    message.version = object.version | 0;\n                if (object.key != null)\n                    message.key = String(object.key);\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a PlatformUser message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.PlatformUser\n             * @static\n             * @param {gameproto.PlatformUser} message PlatformUser\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            PlatformUser.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.platformId = \"\";\n                    object.platform = options.enums === String ? \"Engine\" : 0;\n                    object.platformSession = \"\";\n                    object.platformUid = 0;\n                    object.serverID = 0;\n                    object.channelId = \"\";\n                    object.version = 0;\n                    object.key = \"\";\n                }\n                if (message.platformId != null && message.hasOwnProperty(\"platformId\"))\n                    object.platformId = message.platformId;\n                if (message.platform != null && message.hasOwnProperty(\"platform\"))\n                    object.platform = options.enums === String ? $root.gameproto.PlatformUser.PlatformType[message.platform] : message.platform;\n                if (message.platformSession != null && message.hasOwnProperty(\"platformSession\"))\n                    object.platformSession = message.platformSession;\n                if (message.platformUid != null && message.hasOwnProperty(\"platformUid\"))\n                    object.platformUid = message.platformUid;\n                if (message.serverID != null && message.hasOwnProperty(\"serverID\"))\n                    object.serverID = message.serverID;\n                if (message.channelId != null && message.hasOwnProperty(\"channelId\"))\n                    object.channelId = message.channelId;\n                if (message.version != null && message.hasOwnProperty(\"version\"))\n                    object.version = message.version;\n                if (message.key != null && message.hasOwnProperty(\"key\"))\n                    object.key = message.key;\n                return object;\n            };\n    \n            /**\n             * Converts this PlatformUser to JSON.\n             * @function toJSON\n             * @memberof gameproto.PlatformUser\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            PlatformUser.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            /**\n             * PlatformType enum.\n             * @name gameproto.PlatformUser.PlatformType\n             * @enum {string}\n             * @property {number} Engine=0 Engine value\n             * @property {number} DEVICE=99 DEVICE value\n             */\n            PlatformUser.PlatformType = (function() {\n                var valuesById = {}, values = Object.create(valuesById);\n                values[valuesById[0] = \"Engine\"] = 0;\n                values[valuesById[99] = \"DEVICE\"] = 99;\n                return values;\n            })();\n    \n            return PlatformUser;\n        })();\n    \n        gameproto.LoginReturn = (function() {\n    \n            /**\n             * Properties of a LoginReturn.\n             * @memberof gameproto\n             * @interface ILoginReturn\n             * @property {number|null} [errCode] LoginReturn errCode\n             * @property {number|null} [serverTime] LoginReturn serverTime\n             * @property {string|null} [args] LoginReturn args\n             * @property {number|null} [bFirst] LoginReturn bFirst\n             */\n    \n            /**\n             * Constructs a new LoginReturn.\n             * @memberof gameproto\n             * @classdesc Represents a LoginReturn.\n             * @implements ILoginReturn\n             * @constructor\n             * @param {gameproto.ILoginReturn=} [properties] Properties to set\n             */\n            function LoginReturn(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * LoginReturn errCode.\n             * @member {number} errCode\n             * @memberof gameproto.LoginReturn\n             * @instance\n             */\n            LoginReturn.prototype.errCode = 0;\n    \n            /**\n             * LoginReturn serverTime.\n             * @member {number} serverTime\n             * @memberof gameproto.LoginReturn\n             * @instance\n             */\n            LoginReturn.prototype.serverTime = 0;\n    \n            /**\n             * LoginReturn args.\n             * @member {string} args\n             * @memberof gameproto.LoginReturn\n             * @instance\n             */\n            LoginReturn.prototype.args = \"\";\n    \n            /**\n             * LoginReturn bFirst.\n             * @member {number} bFirst\n             * @memberof gameproto.LoginReturn\n             * @instance\n             */\n            LoginReturn.prototype.bFirst = 0;\n    \n            /**\n             * Creates a new LoginReturn instance using the specified properties.\n             * @function create\n             * @memberof gameproto.LoginReturn\n             * @static\n             * @param {gameproto.ILoginReturn=} [properties] Properties to set\n             * @returns {gameproto.LoginReturn} LoginReturn instance\n             */\n            LoginReturn.create = function create(properties) {\n                return new LoginReturn(properties);\n            };\n    \n            /**\n             * Encodes the specified LoginReturn message. Does not implicitly {@link gameproto.LoginReturn.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.LoginReturn\n             * @static\n             * @param {gameproto.ILoginReturn} message LoginReturn message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            LoginReturn.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.errCode != null && message.hasOwnProperty(\"errCode\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.errCode);\n                if (message.serverTime != null && message.hasOwnProperty(\"serverTime\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.serverTime);\n                if (message.args != null && message.hasOwnProperty(\"args\"))\n                    writer.uint32(/* id 3, wireType 2 =*/26).string(message.args);\n                if (message.bFirst != null && message.hasOwnProperty(\"bFirst\"))\n                    writer.uint32(/* id 4, wireType 0 =*/32).int32(message.bFirst);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified LoginReturn message, length delimited. Does not implicitly {@link gameproto.LoginReturn.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.LoginReturn\n             * @static\n             * @param {gameproto.ILoginReturn} message LoginReturn message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            LoginReturn.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a LoginReturn message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.LoginReturn\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.LoginReturn} LoginReturn\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            LoginReturn.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.LoginReturn();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.errCode = reader.int32();\n                        break;\n                    case 2:\n                        message.serverTime = reader.int32();\n                        break;\n                    case 3:\n                        message.args = reader.string();\n                        break;\n                    case 4:\n                        message.bFirst = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a LoginReturn message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.LoginReturn\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.LoginReturn} LoginReturn\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            LoginReturn.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a LoginReturn message.\n             * @function verify\n             * @memberof gameproto.LoginReturn\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            LoginReturn.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.errCode != null && message.hasOwnProperty(\"errCode\"))\n                    if (!$util.isInteger(message.errCode))\n                        return \"errCode: integer expected\";\n                if (message.serverTime != null && message.hasOwnProperty(\"serverTime\"))\n                    if (!$util.isInteger(message.serverTime))\n                        return \"serverTime: integer expected\";\n                if (message.args != null && message.hasOwnProperty(\"args\"))\n                    if (!$util.isString(message.args))\n                        return \"args: string expected\";\n                if (message.bFirst != null && message.hasOwnProperty(\"bFirst\"))\n                    if (!$util.isInteger(message.bFirst))\n                        return \"bFirst: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a LoginReturn message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.LoginReturn\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.LoginReturn} LoginReturn\n             */\n            LoginReturn.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.LoginReturn)\n                    return object;\n                var message = new $root.gameproto.LoginReturn();\n                if (object.errCode != null)\n                    message.errCode = object.errCode | 0;\n                if (object.serverTime != null)\n                    message.serverTime = object.serverTime | 0;\n                if (object.args != null)\n                    message.args = String(object.args);\n                if (object.bFirst != null)\n                    message.bFirst = object.bFirst | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a LoginReturn message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.LoginReturn\n             * @static\n             * @param {gameproto.LoginReturn} message LoginReturn\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            LoginReturn.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.errCode = 0;\n                    object.serverTime = 0;\n                    object.args = \"\";\n                    object.bFirst = 0;\n                }\n                if (message.errCode != null && message.hasOwnProperty(\"errCode\"))\n                    object.errCode = message.errCode;\n                if (message.serverTime != null && message.hasOwnProperty(\"serverTime\"))\n                    object.serverTime = message.serverTime;\n                if (message.args != null && message.hasOwnProperty(\"args\"))\n                    object.args = message.args;\n                if (message.bFirst != null && message.hasOwnProperty(\"bFirst\"))\n                    object.bFirst = message.bFirst;\n                return object;\n            };\n    \n            /**\n             * Converts this LoginReturn to JSON.\n             * @function toJSON\n             * @memberof gameproto.LoginReturn\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            LoginReturn.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return LoginReturn;\n        })();\n    \n        gameproto.LoginInfo = (function() {\n    \n            /**\n             * Properties of a LoginInfo.\n             * @memberof gameproto\n             * @interface ILoginInfo\n             * @property {number|null} [headId] LoginInfo headId\n             * @property {number|null} [level] LoginInfo level\n             * @property {number|Long|null} [exp] LoginInfo exp\n             * @property {string|null} [nickname] LoginInfo nickname\n             * @property {number|null} [sex] LoginInfo sex\n             * @property {number|Long|null} [id] LoginInfo id\n             * @property {number|null} [gold] LoginInfo gold\n             * @property {number|null} [diamond] LoginInfo diamond\n             */\n    \n            /**\n             * Constructs a new LoginInfo.\n             * @memberof gameproto\n             * @classdesc Represents a LoginInfo.\n             * @implements ILoginInfo\n             * @constructor\n             * @param {gameproto.ILoginInfo=} [properties] Properties to set\n             */\n            function LoginInfo(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * LoginInfo headId.\n             * @member {number} headId\n             * @memberof gameproto.LoginInfo\n             * @instance\n             */\n            LoginInfo.prototype.headId = 0;\n    \n            /**\n             * LoginInfo level.\n             * @member {number} level\n             * @memberof gameproto.LoginInfo\n             * @instance\n             */\n            LoginInfo.prototype.level = 0;\n    \n            /**\n             * LoginInfo exp.\n             * @member {number|Long} exp\n             * @memberof gameproto.LoginInfo\n             * @instance\n             */\n            LoginInfo.prototype.exp = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n    \n            /**\n             * LoginInfo nickname.\n             * @member {string} nickname\n             * @memberof gameproto.LoginInfo\n             * @instance\n             */\n            LoginInfo.prototype.nickname = \"\";\n    \n            /**\n             * LoginInfo sex.\n             * @member {number} sex\n             * @memberof gameproto.LoginInfo\n             * @instance\n             */\n            LoginInfo.prototype.sex = 0;\n    \n            /**\n             * LoginInfo id.\n             * @member {number|Long} id\n             * @memberof gameproto.LoginInfo\n             * @instance\n             */\n            LoginInfo.prototype.id = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n    \n            /**\n             * LoginInfo gold.\n             * @member {number} gold\n             * @memberof gameproto.LoginInfo\n             * @instance\n             */\n            LoginInfo.prototype.gold = 0;\n    \n            /**\n             * LoginInfo diamond.\n             * @member {number} diamond\n             * @memberof gameproto.LoginInfo\n             * @instance\n             */\n            LoginInfo.prototype.diamond = 0;\n    \n            /**\n             * Creates a new LoginInfo instance using the specified properties.\n             * @function create\n             * @memberof gameproto.LoginInfo\n             * @static\n             * @param {gameproto.ILoginInfo=} [properties] Properties to set\n             * @returns {gameproto.LoginInfo} LoginInfo instance\n             */\n            LoginInfo.create = function create(properties) {\n                return new LoginInfo(properties);\n            };\n    \n            /**\n             * Encodes the specified LoginInfo message. Does not implicitly {@link gameproto.LoginInfo.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.LoginInfo\n             * @static\n             * @param {gameproto.ILoginInfo} message LoginInfo message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            LoginInfo.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.headId != null && message.hasOwnProperty(\"headId\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.headId);\n                if (message.level != null && message.hasOwnProperty(\"level\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.level);\n                if (message.exp != null && message.hasOwnProperty(\"exp\"))\n                    writer.uint32(/* id 3, wireType 0 =*/24).int64(message.exp);\n                if (message.nickname != null && message.hasOwnProperty(\"nickname\"))\n                    writer.uint32(/* id 4, wireType 2 =*/34).string(message.nickname);\n                if (message.sex != null && message.hasOwnProperty(\"sex\"))\n                    writer.uint32(/* id 5, wireType 0 =*/40).int32(message.sex);\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    writer.uint32(/* id 6, wireType 0 =*/48).int64(message.id);\n                if (message.gold != null && message.hasOwnProperty(\"gold\"))\n                    writer.uint32(/* id 7, wireType 0 =*/56).int32(message.gold);\n                if (message.diamond != null && message.hasOwnProperty(\"diamond\"))\n                    writer.uint32(/* id 8, wireType 0 =*/64).int32(message.diamond);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified LoginInfo message, length delimited. Does not implicitly {@link gameproto.LoginInfo.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.LoginInfo\n             * @static\n             * @param {gameproto.ILoginInfo} message LoginInfo message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            LoginInfo.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a LoginInfo message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.LoginInfo\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.LoginInfo} LoginInfo\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            LoginInfo.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.LoginInfo();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.headId = reader.int32();\n                        break;\n                    case 2:\n                        message.level = reader.int32();\n                        break;\n                    case 3:\n                        message.exp = reader.int64();\n                        break;\n                    case 4:\n                        message.nickname = reader.string();\n                        break;\n                    case 5:\n                        message.sex = reader.int32();\n                        break;\n                    case 6:\n                        message.id = reader.int64();\n                        break;\n                    case 7:\n                        message.gold = reader.int32();\n                        break;\n                    case 8:\n                        message.diamond = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a LoginInfo message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.LoginInfo\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.LoginInfo} LoginInfo\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            LoginInfo.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a LoginInfo message.\n             * @function verify\n             * @memberof gameproto.LoginInfo\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            LoginInfo.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.headId != null && message.hasOwnProperty(\"headId\"))\n                    if (!$util.isInteger(message.headId))\n                        return \"headId: integer expected\";\n                if (message.level != null && message.hasOwnProperty(\"level\"))\n                    if (!$util.isInteger(message.level))\n                        return \"level: integer expected\";\n                if (message.exp != null && message.hasOwnProperty(\"exp\"))\n                    if (!$util.isInteger(message.exp) && !(message.exp && $util.isInteger(message.exp.low) && $util.isInteger(message.exp.high)))\n                        return \"exp: integer|Long expected\";\n                if (message.nickname != null && message.hasOwnProperty(\"nickname\"))\n                    if (!$util.isString(message.nickname))\n                        return \"nickname: string expected\";\n                if (message.sex != null && message.hasOwnProperty(\"sex\"))\n                    if (!$util.isInteger(message.sex))\n                        return \"sex: integer expected\";\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    if (!$util.isInteger(message.id) && !(message.id && $util.isInteger(message.id.low) && $util.isInteger(message.id.high)))\n                        return \"id: integer|Long expected\";\n                if (message.gold != null && message.hasOwnProperty(\"gold\"))\n                    if (!$util.isInteger(message.gold))\n                        return \"gold: integer expected\";\n                if (message.diamond != null && message.hasOwnProperty(\"diamond\"))\n                    if (!$util.isInteger(message.diamond))\n                        return \"diamond: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a LoginInfo message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.LoginInfo\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.LoginInfo} LoginInfo\n             */\n            LoginInfo.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.LoginInfo)\n                    return object;\n                var message = new $root.gameproto.LoginInfo();\n                if (object.headId != null)\n                    message.headId = object.headId | 0;\n                if (object.level != null)\n                    message.level = object.level | 0;\n                if (object.exp != null)\n                    if ($util.Long)\n                        (message.exp = $util.Long.fromValue(object.exp)).unsigned = false;\n                    else if (typeof object.exp === \"string\")\n                        message.exp = parseInt(object.exp, 10);\n                    else if (typeof object.exp === \"number\")\n                        message.exp = object.exp;\n                    else if (typeof object.exp === \"object\")\n                        message.exp = new $util.LongBits(object.exp.low >>> 0, object.exp.high >>> 0).toNumber();\n                if (object.nickname != null)\n                    message.nickname = String(object.nickname);\n                if (object.sex != null)\n                    message.sex = object.sex | 0;\n                if (object.id != null)\n                    if ($util.Long)\n                        (message.id = $util.Long.fromValue(object.id)).unsigned = false;\n                    else if (typeof object.id === \"string\")\n                        message.id = parseInt(object.id, 10);\n                    else if (typeof object.id === \"number\")\n                        message.id = object.id;\n                    else if (typeof object.id === \"object\")\n                        message.id = new $util.LongBits(object.id.low >>> 0, object.id.high >>> 0).toNumber();\n                if (object.gold != null)\n                    message.gold = object.gold | 0;\n                if (object.diamond != null)\n                    message.diamond = object.diamond | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a LoginInfo message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.LoginInfo\n             * @static\n             * @param {gameproto.LoginInfo} message LoginInfo\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            LoginInfo.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.headId = 0;\n                    object.level = 0;\n                    if ($util.Long) {\n                        var long = new $util.Long(0, 0, false);\n                        object.exp = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n                    } else\n                        object.exp = options.longs === String ? \"0\" : 0;\n                    object.nickname = \"\";\n                    object.sex = 0;\n                    if ($util.Long) {\n                        var long = new $util.Long(0, 0, false);\n                        object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n                    } else\n                        object.id = options.longs === String ? \"0\" : 0;\n                    object.gold = 0;\n                    object.diamond = 0;\n                }\n                if (message.headId != null && message.hasOwnProperty(\"headId\"))\n                    object.headId = message.headId;\n                if (message.level != null && message.hasOwnProperty(\"level\"))\n                    object.level = message.level;\n                if (message.exp != null && message.hasOwnProperty(\"exp\"))\n                    if (typeof message.exp === \"number\")\n                        object.exp = options.longs === String ? String(message.exp) : message.exp;\n                    else\n                        object.exp = options.longs === String ? $util.Long.prototype.toString.call(message.exp) : options.longs === Number ? new $util.LongBits(message.exp.low >>> 0, message.exp.high >>> 0).toNumber() : message.exp;\n                if (message.nickname != null && message.hasOwnProperty(\"nickname\"))\n                    object.nickname = message.nickname;\n                if (message.sex != null && message.hasOwnProperty(\"sex\"))\n                    object.sex = message.sex;\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    if (typeof message.id === \"number\")\n                        object.id = options.longs === String ? String(message.id) : message.id;\n                    else\n                        object.id = options.longs === String ? $util.Long.prototype.toString.call(message.id) : options.longs === Number ? new $util.LongBits(message.id.low >>> 0, message.id.high >>> 0).toNumber() : message.id;\n                if (message.gold != null && message.hasOwnProperty(\"gold\"))\n                    object.gold = message.gold;\n                if (message.diamond != null && message.hasOwnProperty(\"diamond\"))\n                    object.diamond = message.diamond;\n                return object;\n            };\n    \n            /**\n             * Converts this LoginInfo to JSON.\n             * @function toJSON\n             * @memberof gameproto.LoginInfo\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            LoginInfo.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return LoginInfo;\n        })();\n    \n        return gameproto;\n    })();\n\n    return $root;\n});\n"
  },
  {
    "path": "server/config/gameproto/temp/share.js",
    "content": "/*eslint-disable block-scoped-var, no-redeclare, no-control-regex, no-prototype-builtins*/\n(function(global, factory) { /* global define, require, module */\n\n    /* AMD */ if (typeof define === 'function' && define.amd)\n        define([\"protobufjs/minimal\"], factory);\n\n    /* CommonJS */ else if (typeof require === 'function' && typeof module === 'object' && module && module.exports)\n        module.exports = factory(require(\"protobufjs/minimal\"));\n\n})(this, function($protobuf) {\n    \"use strict\";\n\n    // Common aliases\n    var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n    \n    // Exported root namespace\n    var $root = $protobuf.roots[\"default\"] || ($protobuf.roots[\"default\"] = {});\n    \n    $root.gameproto = (function() {\n    \n        /**\n         * Namespace gameproto.\n         * @exports gameproto\n         * @namespace\n         */\n        var gameproto = {};\n    \n        /**\n         * ErrorCode enum.\n         * @name gameproto.ErrorCode\n         * @enum {string}\n         * @property {number} OK=0 OK value\n         * @property {number} Fail=1 Fail value\n         * @property {number} Error=2 Error value\n         * @property {number} ServerFull=3 ServerFull value\n         * @property {number} KeyError=4 KeyError value\n         * @property {number} NoFoundTarget=5 NoFoundTarget value\n         * @property {number} IMPORTANT_WRONG_HEAD=-1000 IMPORTANT_WRONG_HEAD value\n         * @property {number} RESOURCE_VITALITY_ERROR=1002 RESOURCE_VITALITY_ERROR value\n         * @property {number} RESOURCE_GOLD_ERROR=1003 RESOURCE_GOLD_ERROR value\n         * @property {number} RESOURCE_RMB_ERROR=1004 RESOURCE_RMB_ERROR value\n         * @property {number} GUILD_EXIT_CHAIRMAN_ERROR=1022 GUILD_EXIT_CHAIRMAN_ERROR value\n         * @property {number} UNKNOWN_ERROR=-9999 UNKNOWN_ERROR value\n         */\n        gameproto.ErrorCode = (function() {\n            var valuesById = {}, values = Object.create(valuesById);\n            values[valuesById[0] = \"OK\"] = 0;\n            values[valuesById[1] = \"Fail\"] = 1;\n            values[valuesById[2] = \"Error\"] = 2;\n            values[valuesById[3] = \"ServerFull\"] = 3;\n            values[valuesById[4] = \"KeyError\"] = 4;\n            values[valuesById[5] = \"NoFoundTarget\"] = 5;\n            values[valuesById[-1000] = \"IMPORTANT_WRONG_HEAD\"] = -1000;\n            values[valuesById[1002] = \"RESOURCE_VITALITY_ERROR\"] = 1002;\n            values[valuesById[1003] = \"RESOURCE_GOLD_ERROR\"] = 1003;\n            values[valuesById[1004] = \"RESOURCE_RMB_ERROR\"] = 1004;\n            values[valuesById[1022] = \"GUILD_EXIT_CHAIRMAN_ERROR\"] = 1022;\n            values[valuesById[-9999] = \"UNKNOWN_ERROR\"] = -9999;\n            return values;\n        })();\n    \n        gameproto.C2S_TestMsg = (function() {\n    \n            /**\n             * Properties of a C2S_TestMsg.\n             * @memberof gameproto\n             * @interface IC2S_TestMsg\n             * @property {number|null} [id] C2S_TestMsg id\n             */\n    \n            /**\n             * Constructs a new C2S_TestMsg.\n             * @memberof gameproto\n             * @classdesc Represents a C2S_TestMsg.\n             * @implements IC2S_TestMsg\n             * @constructor\n             * @param {gameproto.IC2S_TestMsg=} [properties] Properties to set\n             */\n            function C2S_TestMsg(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * C2S_TestMsg id.\n             * @member {number} id\n             * @memberof gameproto.C2S_TestMsg\n             * @instance\n             */\n            C2S_TestMsg.prototype.id = 0;\n    \n            /**\n             * Creates a new C2S_TestMsg instance using the specified properties.\n             * @function create\n             * @memberof gameproto.C2S_TestMsg\n             * @static\n             * @param {gameproto.IC2S_TestMsg=} [properties] Properties to set\n             * @returns {gameproto.C2S_TestMsg} C2S_TestMsg instance\n             */\n            C2S_TestMsg.create = function create(properties) {\n                return new C2S_TestMsg(properties);\n            };\n    \n            /**\n             * Encodes the specified C2S_TestMsg message. Does not implicitly {@link gameproto.C2S_TestMsg.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.C2S_TestMsg\n             * @static\n             * @param {gameproto.IC2S_TestMsg} message C2S_TestMsg message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C2S_TestMsg.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.id);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified C2S_TestMsg message, length delimited. Does not implicitly {@link gameproto.C2S_TestMsg.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.C2S_TestMsg\n             * @static\n             * @param {gameproto.IC2S_TestMsg} message C2S_TestMsg message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            C2S_TestMsg.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a C2S_TestMsg message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.C2S_TestMsg\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.C2S_TestMsg} C2S_TestMsg\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C2S_TestMsg.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.C2S_TestMsg();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.id = reader.uint32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a C2S_TestMsg message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.C2S_TestMsg\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.C2S_TestMsg} C2S_TestMsg\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            C2S_TestMsg.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a C2S_TestMsg message.\n             * @function verify\n             * @memberof gameproto.C2S_TestMsg\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            C2S_TestMsg.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    if (!$util.isInteger(message.id))\n                        return \"id: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a C2S_TestMsg message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.C2S_TestMsg\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.C2S_TestMsg} C2S_TestMsg\n             */\n            C2S_TestMsg.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.C2S_TestMsg)\n                    return object;\n                var message = new $root.gameproto.C2S_TestMsg();\n                if (object.id != null)\n                    message.id = object.id >>> 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a C2S_TestMsg message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.C2S_TestMsg\n             * @static\n             * @param {gameproto.C2S_TestMsg} message C2S_TestMsg\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            C2S_TestMsg.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults)\n                    object.id = 0;\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    object.id = message.id;\n                return object;\n            };\n    \n            /**\n             * Converts this C2S_TestMsg to JSON.\n             * @function toJSON\n             * @memberof gameproto.C2S_TestMsg\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            C2S_TestMsg.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return C2S_TestMsg;\n        })();\n    \n        gameproto.S2C_TestMsg = (function() {\n    \n            /**\n             * Properties of a S2C_TestMsg.\n             * @memberof gameproto\n             * @interface IS2C_TestMsg\n             * @property {number|null} [id] S2C_TestMsg id\n             */\n    \n            /**\n             * Constructs a new S2C_TestMsg.\n             * @memberof gameproto\n             * @classdesc Represents a S2C_TestMsg.\n             * @implements IS2C_TestMsg\n             * @constructor\n             * @param {gameproto.IS2C_TestMsg=} [properties] Properties to set\n             */\n            function S2C_TestMsg(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * S2C_TestMsg id.\n             * @member {number} id\n             * @memberof gameproto.S2C_TestMsg\n             * @instance\n             */\n            S2C_TestMsg.prototype.id = 0;\n    \n            /**\n             * Creates a new S2C_TestMsg instance using the specified properties.\n             * @function create\n             * @memberof gameproto.S2C_TestMsg\n             * @static\n             * @param {gameproto.IS2C_TestMsg=} [properties] Properties to set\n             * @returns {gameproto.S2C_TestMsg} S2C_TestMsg instance\n             */\n            S2C_TestMsg.create = function create(properties) {\n                return new S2C_TestMsg(properties);\n            };\n    \n            /**\n             * Encodes the specified S2C_TestMsg message. Does not implicitly {@link gameproto.S2C_TestMsg.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.S2C_TestMsg\n             * @static\n             * @param {gameproto.IS2C_TestMsg} message S2C_TestMsg message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            S2C_TestMsg.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.id);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified S2C_TestMsg message, length delimited. Does not implicitly {@link gameproto.S2C_TestMsg.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.S2C_TestMsg\n             * @static\n             * @param {gameproto.IS2C_TestMsg} message S2C_TestMsg message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            S2C_TestMsg.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a S2C_TestMsg message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.S2C_TestMsg\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.S2C_TestMsg} S2C_TestMsg\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            S2C_TestMsg.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.S2C_TestMsg();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.id = reader.uint32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a S2C_TestMsg message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.S2C_TestMsg\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.S2C_TestMsg} S2C_TestMsg\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            S2C_TestMsg.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a S2C_TestMsg message.\n             * @function verify\n             * @memberof gameproto.S2C_TestMsg\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            S2C_TestMsg.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    if (!$util.isInteger(message.id))\n                        return \"id: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a S2C_TestMsg message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.S2C_TestMsg\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.S2C_TestMsg} S2C_TestMsg\n             */\n            S2C_TestMsg.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.S2C_TestMsg)\n                    return object;\n                var message = new $root.gameproto.S2C_TestMsg();\n                if (object.id != null)\n                    message.id = object.id >>> 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a S2C_TestMsg message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.S2C_TestMsg\n             * @static\n             * @param {gameproto.S2C_TestMsg} message S2C_TestMsg\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            S2C_TestMsg.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults)\n                    object.id = 0;\n                if (message.id != null && message.hasOwnProperty(\"id\"))\n                    object.id = message.id;\n                return object;\n            };\n    \n            /**\n             * Converts this S2C_TestMsg to JSON.\n             * @function toJSON\n             * @memberof gameproto.S2C_TestMsg\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            S2C_TestMsg.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return S2C_TestMsg;\n        })();\n    \n        gameproto.S2C_ConfirmInfo = (function() {\n    \n            /**\n             * Properties of a S2C_ConfirmInfo.\n             * @memberof gameproto\n             * @interface IS2C_ConfirmInfo\n             * @property {number|null} [msgHead] S2C_ConfirmInfo msgHead\n             * @property {number|null} [code] S2C_ConfirmInfo code\n             */\n    \n            /**\n             * Constructs a new S2C_ConfirmInfo.\n             * @memberof gameproto\n             * @classdesc Represents a S2C_ConfirmInfo.\n             * @implements IS2C_ConfirmInfo\n             * @constructor\n             * @param {gameproto.IS2C_ConfirmInfo=} [properties] Properties to set\n             */\n            function S2C_ConfirmInfo(properties) {\n                if (properties)\n                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n                        if (properties[keys[i]] != null)\n                            this[keys[i]] = properties[keys[i]];\n            }\n    \n            /**\n             * S2C_ConfirmInfo msgHead.\n             * @member {number} msgHead\n             * @memberof gameproto.S2C_ConfirmInfo\n             * @instance\n             */\n            S2C_ConfirmInfo.prototype.msgHead = 0;\n    \n            /**\n             * S2C_ConfirmInfo code.\n             * @member {number} code\n             * @memberof gameproto.S2C_ConfirmInfo\n             * @instance\n             */\n            S2C_ConfirmInfo.prototype.code = 0;\n    \n            /**\n             * Creates a new S2C_ConfirmInfo instance using the specified properties.\n             * @function create\n             * @memberof gameproto.S2C_ConfirmInfo\n             * @static\n             * @param {gameproto.IS2C_ConfirmInfo=} [properties] Properties to set\n             * @returns {gameproto.S2C_ConfirmInfo} S2C_ConfirmInfo instance\n             */\n            S2C_ConfirmInfo.create = function create(properties) {\n                return new S2C_ConfirmInfo(properties);\n            };\n    \n            /**\n             * Encodes the specified S2C_ConfirmInfo message. Does not implicitly {@link gameproto.S2C_ConfirmInfo.verify|verify} messages.\n             * @function encode\n             * @memberof gameproto.S2C_ConfirmInfo\n             * @static\n             * @param {gameproto.IS2C_ConfirmInfo} message S2C_ConfirmInfo message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            S2C_ConfirmInfo.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.msgHead != null && message.hasOwnProperty(\"msgHead\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.msgHead);\n                if (message.code != null && message.hasOwnProperty(\"code\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.code);\n                return writer;\n            };\n    \n            /**\n             * Encodes the specified S2C_ConfirmInfo message, length delimited. Does not implicitly {@link gameproto.S2C_ConfirmInfo.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof gameproto.S2C_ConfirmInfo\n             * @static\n             * @param {gameproto.IS2C_ConfirmInfo} message S2C_ConfirmInfo message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            S2C_ConfirmInfo.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n    \n            /**\n             * Decodes a S2C_ConfirmInfo message from the specified reader or buffer.\n             * @function decode\n             * @memberof gameproto.S2C_ConfirmInfo\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @param {number} [length] Message length if known beforehand\n             * @returns {gameproto.S2C_ConfirmInfo} S2C_ConfirmInfo\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            S2C_ConfirmInfo.decode = function decode(reader, length) {\n                if (!(reader instanceof $Reader))\n                    reader = $Reader.create(reader);\n                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.gameproto.S2C_ConfirmInfo();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1:\n                        message.msgHead = reader.int32();\n                        break;\n                    case 2:\n                        message.code = reader.int32();\n                        break;\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n    \n            /**\n             * Decodes a S2C_ConfirmInfo message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof gameproto.S2C_ConfirmInfo\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {gameproto.S2C_ConfirmInfo} S2C_ConfirmInfo\n             * @throws {Error} If the payload is not a reader or valid buffer\n             * @throws {$protobuf.util.ProtocolError} If required fields are missing\n             */\n            S2C_ConfirmInfo.decodeDelimited = function decodeDelimited(reader) {\n                if (!(reader instanceof $Reader))\n                    reader = new $Reader(reader);\n                return this.decode(reader, reader.uint32());\n            };\n    \n            /**\n             * Verifies a S2C_ConfirmInfo message.\n             * @function verify\n             * @memberof gameproto.S2C_ConfirmInfo\n             * @static\n             * @param {Object.<string,*>} message Plain object to verify\n             * @returns {string|null} `null` if valid, otherwise the reason why it is not\n             */\n            S2C_ConfirmInfo.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.msgHead != null && message.hasOwnProperty(\"msgHead\"))\n                    if (!$util.isInteger(message.msgHead))\n                        return \"msgHead: integer expected\";\n                if (message.code != null && message.hasOwnProperty(\"code\"))\n                    if (!$util.isInteger(message.code))\n                        return \"code: integer expected\";\n                return null;\n            };\n    \n            /**\n             * Creates a S2C_ConfirmInfo message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof gameproto.S2C_ConfirmInfo\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {gameproto.S2C_ConfirmInfo} S2C_ConfirmInfo\n             */\n            S2C_ConfirmInfo.fromObject = function fromObject(object) {\n                if (object instanceof $root.gameproto.S2C_ConfirmInfo)\n                    return object;\n                var message = new $root.gameproto.S2C_ConfirmInfo();\n                if (object.msgHead != null)\n                    message.msgHead = object.msgHead | 0;\n                if (object.code != null)\n                    message.code = object.code | 0;\n                return message;\n            };\n    \n            /**\n             * Creates a plain object from a S2C_ConfirmInfo message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof gameproto.S2C_ConfirmInfo\n             * @static\n             * @param {gameproto.S2C_ConfirmInfo} message S2C_ConfirmInfo\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            S2C_ConfirmInfo.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.msgHead = 0;\n                    object.code = 0;\n                }\n                if (message.msgHead != null && message.hasOwnProperty(\"msgHead\"))\n                    object.msgHead = message.msgHead;\n                if (message.code != null && message.hasOwnProperty(\"code\"))\n                    object.code = message.code;\n                return object;\n            };\n    \n            /**\n             * Converts this S2C_ConfirmInfo to JSON.\n             * @function toJSON\n             * @memberof gameproto.S2C_ConfirmInfo\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            S2C_ConfirmInfo.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n    \n            return S2C_ConfirmInfo;\n        })();\n    \n        /**\n         * BattleType enum.\n         * @name gameproto.BattleType\n         * @enum {string}\n         * @property {number} PVE=0 PVE value\n         * @property {number} PVP=1 PVP value\n         */\n        gameproto.BattleType = (function() {\n            var valuesById = {}, values = Object.create(valuesById);\n            values[valuesById[0] = \"PVE\"] = 0;\n            values[valuesById[1] = \"PVP\"] = 1;\n            return values;\n        })();\n    \n        return gameproto;\n    })();\n\n    return $root;\n});\n"
  },
  {
    "path": "server/config/gameproto/tools/Readme.txt",
    "content": "protoc github.com/protocolbuffers/protobuf/releases/tag/v3.6.1\nprotoc-gen-gogoslick https://github.com/gogo/protobuf/releases/tag/v1.2.1"
  },
  {
    "path": "server/src/Robot/go.mod",
    "content": "module robotTest\n\ngo 1.13\n\nrequire (\n\tgameproto v0.0.0-00010101000000-000000000000\n\tgithub.com/gogo/protobuf v1.3.1\n\tgithub.com/gorilla/websocket v1.4.2 // indirect\n\tgithub.com/magicsea/ganet v0.0.0-20200721080758-d33e58ea37d8\n)\n\nreplace (\n\tcomm => ../comm\n\tgameproto => ../gameproto\n)\n"
  },
  {
    "path": "server/src/Robot/go.sum",
    "content": "cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.36.0/go.mod h1:RUoy9p/M4ge0HzT8L+SDZ8jg+Q6fth0CiBuhFJpSV40=\ncloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=\ncloud.google.com/go v0.41.0/go.mod h1:OauMR7DV8fzvZIl2qg6rkaIhD/vmgk4iwEw/h6ercmg=\ncloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=\ncloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=\ncloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=\ncloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=\ncloud.google.com/go v0.48.0/go.mod h1:gGOnoa/XMQYHAscREBlbdHduGchEaP9N0//OXdrPI/M=\ncloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=\ncloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=\ncloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=\ncloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=\ncollectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE=\ndmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU=\ndmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=\ndmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU=\ndmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4=\ndmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU=\ngit.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=\ngithub.com/AsynkronIT/goconsole v0.0.0-20160504192649-bfa12eebf716/go.mod h1:2wH9LwjNrSqVmCIi35aqCJ0OGTE4DZ53LCRaGQESBp8=\ngithub.com/AsynkronIT/gonet v0.0.0-20161127091928-0553637be225/go.mod h1:RwIiSK8AJBCPP7hBBfXD1iferErYAmGbqv/Lu84ZFIA=\ngithub.com/AsynkronIT/protoactor-go v0.0.0-20200317173033-c483abfa40e2 h1:UTgOl+i/Y/91Si6EZeWLGbw5qoOw/gG918VKe6eqUm4=\ngithub.com/AsynkronIT/protoactor-go v0.0.0-20200317173033-c483abfa40e2/go.mod h1:oA0usvSnxPdbRUKVDvMBUqFyWQdVes7Xfcg5QSLE87A=\ngithub.com/Azure/azure-sdk-for-go v16.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=\ngithub.com/Azure/azure-sdk-for-go v31.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=\ngithub.com/Azure/azure-sdk-for-go v36.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=\ngithub.com/Azure/go-autorest v10.7.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest v10.15.3+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest v11.1.2+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest v13.3.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=\ngithub.com/Azure/go-autorest/autorest v0.9.2/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=\ngithub.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=\ngithub.com/Azure/go-autorest/autorest/adal v0.6.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=\ngithub.com/Azure/go-autorest/autorest/adal v0.7.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=\ngithub.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=\ngithub.com/Azure/go-autorest/autorest/azure/auth v0.4.0/go.mod h1:Oo5cRhLvZteXzI2itUm5ziqsoIxRkzrt3t61FeZaS18=\ngithub.com/Azure/go-autorest/autorest/azure/cli v0.3.0/go.mod h1:rNYMNAefZMRowqCV0cVhr/YDW5dD7afFq9nXAXL4ykE=\ngithub.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=\ngithub.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g=\ngithub.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=\ngithub.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=\ngithub.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM=\ngithub.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc=\ngithub.com/Azure/go-autorest/autorest/to v0.3.0/go.mod h1:MgwOyqaIuKdG4TL/2ywSsIWKAfJfgHDo8ObuUk3t5sA=\ngithub.com/Azure/go-autorest/autorest/validation v0.2.0/go.mod h1:3EEqHnBxQGHXRYq3HT1WyXAvT7LLY3tl70hw6tQIbjI=\ngithub.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=\ngithub.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk=\ngithub.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=\ngithub.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=\ngithub.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=\ngithub.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=\ngithub.com/DataDog/zstd v1.3.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=\ngithub.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=\ngithub.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=\ngithub.com/Microsoft/go-winio v0.4.3/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=\ngithub.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=\ngithub.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=\ngithub.com/NYTimes/gziphandler v1.0.1/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=\ngithub.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=\ngithub.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=\ngithub.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=\ngithub.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=\ngithub.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=\ngithub.com/Shopify/sarama v1.21.0/go.mod h1:yuqtN/pe8cXRWG5zPaO7hCfNJp5MwmkoJEoLjkm5tCQ=\ngithub.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=\ngithub.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=\ngithub.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=\ngithub.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=\ngithub.com/Workiva/go-datastructures v1.0.50 h1:slDmfW6KCHcC7U+LP3DDBbm4fqTwZGn1beOFPfGaLvo=\ngithub.com/Workiva/go-datastructures v1.0.50/go.mod h1:Z+F2Rca0qCsVYDS8z7bAGm8f3UkzuWYS/oBZz5a7VVA=\ngithub.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af/go.mod h1:5Jv4cbFiHJMsVxt52+i0Ha45fjshj6wxYr1r19tB9bw=\ngithub.com/aclements/go-gg v0.0.0-20170323211221-abd1f791f5ee/go.mod h1:55qNq4vcpkIuHowELi5C8e+1yUHtoLoOUR9QU5j7Tes=\ngithub.com/aclements/go-moremath v0.0.0-20190506201756-286cc0be6f75/go.mod h1:idZL3yvz4kzx1dsBOAC+oYv6L92P1oFEhUXUB1A/lwQ=\ngithub.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=\ngithub.com/ajg/form v0.0.0-20160822230020-523a5da1a92f/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=\ngithub.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=\ngithub.com/ajstarks/deck v0.0.0-20190526003814-edf08d731d5a/go.mod h1:j3f/59diR4DorW5A78eDYvRkdrkh+nps4p5LA1Tl05U=\ngithub.com/ajstarks/svgo v0.0.0-20181006003313-6ce6a3bcf6cd/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=\ngithub.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs=\ngithub.com/alecthomas/kingpin v2.2.6+incompatible/go.mod h1:59OFYbFVLKQKq+mqrL6Rw5bR0c3ACQaawgXx0QYndlE=\ngithub.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=\ngithub.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=\ngithub.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=\ngithub.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=\ngithub.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=\ngithub.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c=\ngithub.com/apache/arrow/go/arrow v0.0.0-20190426170622-338c62a2a205/go.mod h1:W8yIftLTH1FLJvxuZc4tFnIlZ2tWg7RCoJR1HcETAso=\ngithub.com/apache/arrow/go/arrow v0.0.0-20190626211233-e980b2024a28/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0=\ngithub.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=\ngithub.com/apex/log v1.1.0/go.mod h1:yA770aXIDQrhVOIGurT/pVdfCpSq1GQV/auzMN5fzvY=\ngithub.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy8kCu4PNA+aP7WUV72eXWJeP9/r3/K9aLE=\ngithub.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=\ngithub.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=\ngithub.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=\ngithub.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=\ngithub.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg=\ngithub.com/armon/go-metrics v0.3.0/go.mod h1:zXjbSimjXTd7vOpY8B0/2LpvNvDoXBuplAD+gJD3GYs=\ngithub.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=\ngithub.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=\ngithub.com/aws/aws-sdk-go v1.15.24/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0=\ngithub.com/aws/aws-sdk-go v1.15.64/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM=\ngithub.com/aws/aws-sdk-go v1.20.9/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=\ngithub.com/aws/aws-sdk-go v1.25.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=\ngithub.com/aws/aws-sdk-go v1.25.36/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=\ngithub.com/aws/aws-sdk-go-v2 v0.9.0/go.mod h1:sa1GePZ/LfBGI4dSq30f6uR4Tthll8axxtEPvlpXZ8U=\ngithub.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I=\ngithub.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=\ngithub.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=\ngithub.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=\ngithub.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=\ngithub.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU=\ngithub.com/blakesmith/ar v0.0.0-20150311145944-8bd4349a67f2/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI=\ngithub.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=\ngithub.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c=\ngithub.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=\ngithub.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=\ngithub.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g=\ngithub.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA=\ngithub.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34=\ngithub.com/caarlos0/ctrlc v1.0.0/go.mod h1:CdXpj4rmq0q/1Eb44M9zi2nKB0QraNKuRGYGrrHhcQw=\ngithub.com/cactus/go-statsd-client/statsd v0.0.0-20190501063751-9a7692639588/go.mod h1:3/sdo8I67TaOslRGJ6FqQC/ynu+wg7H6IE4WYtr51hk=\ngithub.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E=\ngithub.com/campoy/unique v0.0.0-20180121183637-88950e537e7e/go.mod h1:9IOqJGCPMSc6E5ydlp5NIonxObaeu/Iub/X03EKPVYo=\ngithub.com/casbin/casbin v1.8.3/go.mod h1:z8uPsfBJGUsnkagrt3G8QvjgTKFMBJ32UP8HpZllfog=\ngithub.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=\ngithub.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=\ngithub.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=\ngithub.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM=\ngithub.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=\ngithub.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ=\ngithub.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=\ngithub.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag=\ngithub.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=\ngithub.com/clbanning/x2j v0.0.0-20180326210544-5e605d46809c/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=\ngithub.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=\ngithub.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=\ngithub.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=\ngithub.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=\ngithub.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=\ngithub.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM=\ngithub.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0=\ngithub.com/coredns/coredns v1.1.2/go.mod h1:zASH/MVDgR6XZTbxvOnsZfffS+31vg6Ackf/wo1+AM0=\ngithub.com/coredns/coredns v1.6.5/go.mod h1:BvAJtEvf7XOlRB+4kj03JSkL0J1ntukFHiEdHWJA3xU=\ngithub.com/coredns/federation v0.0.0-20190818181423-e032b096babe/go.mod h1:MoqTEFX8GlnKkyq8eBCF94VzkNAOgjdlCJ+Pz/oCLPk=\ngithub.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=\ngithub.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=\ngithub.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=\ngithub.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=\ngithub.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=\ngithub.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=\ngithub.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=\ngithub.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20190212144455-93d5ec2c7f76/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20190620071333-e64a0ec8b42a/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=\ngithub.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=\ngithub.com/couchbase/gocb v1.5.2/go.mod h1:AtRhXLpjgHmkRgG3e0K9t41qnWFonb8iohS/u/TZzxM=\ngithub.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=\ngithub.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=\ngithub.com/cznic/cc v0.0.0-20181122101902-d673e9b70d4d/go.mod h1:m3fD/V+XTB35Kh9zw6dzjMY+We0Q7PMf6LLIC4vuG9k=\ngithub.com/cznic/fileutil v0.0.0-20181122101858-4d67cfea8c87/go.mod h1:8S58EK26zhXSxzv7NQFpnliaOQsmDUxvoQO3rt154Vg=\ngithub.com/cznic/golex v0.0.0-20181122101858-9c343928389c/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc=\ngithub.com/cznic/internal v0.0.0-20181122101858-3279554c546e/go.mod h1:olo7eAdKwJdXxb55TKGLiJ6xt1H0/tiiRCWKVLmtjY4=\ngithub.com/cznic/ir v0.0.0-20181122101859-da7ba2ecce8b/go.mod h1:bctvsSxTD8Lpaj5RRQ0OrAAu4+0mD4KognDQItBNMn0=\ngithub.com/cznic/lex v0.0.0-20181122101858-ce0fb5e9bb1b/go.mod h1:LcYbbl1tn/c31gGxe2EOWyzr7EaBcdQOoIVGvJMc7Dc=\ngithub.com/cznic/lexer v0.0.0-20181122101858-e884d4bd112e/go.mod h1:YNGh5qsZlhFHDfWBp/3DrJ37Uy4pRqlwxtL+LS7a/Qw=\ngithub.com/cznic/mathutil v0.0.0-20181122101859-297441e03548/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM=\ngithub.com/cznic/strutil v0.0.0-20181122101858-275e90344537/go.mod h1:AHHPPPXTw0h6pVabbcbyGRK1DckRn7r/STdZEeIDzZc=\ngithub.com/cznic/xc v0.0.0-20181122101856-45b06973881e/go.mod h1:3oFoiOvCDBYH+swwf5+k/woVmWy7h1Fcyu8Qig/jjX0=\ngithub.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg=\ngithub.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-xdr v0.0.0-20161123171359-e6a2ba005892/go.mod h1:CTDl0pzVzE5DEzZhPfvhY/9sPFMQIxaJ9VAMs9AagrE=\ngithub.com/denverdino/aliyungo v0.0.0-20170926055100-d3308649c661/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=\ngithub.com/denverdino/aliyungo v0.0.0-20191112021521-0e9f4c697da3/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=\ngithub.com/dgrijalva/jwt-go v0.0.0-20160705203006-01aeca54ebda/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=\ngithub.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=\ngithub.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ=\ngithub.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=\ngithub.com/digitalocean/godo v1.1.1/go.mod h1:h6faOIcZ8lWIwNQ+DN7b3CgX4Kwby5T+nbpNqkUIozU=\ngithub.com/digitalocean/godo v1.10.0/go.mod h1:h6faOIcZ8lWIwNQ+DN7b3CgX4Kwby5T+nbpNqkUIozU=\ngithub.com/digitalocean/godo v1.26.0/go.mod h1:iJnN9rVu6K5LioLxLimlq0uRI+y/eAQjROUmeU/r0hY=\ngithub.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8=\ngithub.com/disintegration/gift v1.2.0/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI=\ngithub.com/djherbis/buffer v1.0.0/go.mod h1:VwN8VdFkMY0DCALdY8o00d3IZ6Amz/UNVMWcSaJT44o=\ngithub.com/djherbis/nio v2.0.3+incompatible/go.mod h1:v74owXPROGWsr1y28T13rlXf5Hn/bWJ1bbX8M+BqyPo=\ngithub.com/dnaeon/go-vcr v0.0.0-20180814043457-aafff18a5cc2/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=\ngithub.com/dnstap/golang-dnstap v0.0.0-20170829151710-2cf77a2b5e11/go.mod h1:s1PfVYYVmTMgCSPtho4LKBDecEHJWtiVDPNv78Z985U=\ngithub.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=\ngithub.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=\ngithub.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=\ngithub.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=\ngithub.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=\ngithub.com/dustin/go-humanize v0.0.0-20180713052910-9f541cc9db5d/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=\ngithub.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=\ngithub.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=\ngithub.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=\ngithub.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=\ngithub.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=\ngithub.com/elazarl/go-bindata-assetfs v0.0.0-20160803192304-e1a2a7ec64b0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=\ngithub.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=\ngithub.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=\ngithub.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=\ngithub.com/emirpasic/gods v1.9.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=\ngithub.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg=\ngithub.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=\ngithub.com/envoyproxy/go-control-plane v0.8.0/go.mod h1:GSSbY9P1neVhdY7G4wu+IK1rk/dqhiCC/4ExuWJZVuk=\ngithub.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=\ngithub.com/envoyproxy/go-control-plane v0.9.1/go.mod h1:G1fbsNGAFpC1aaERrShZQVdUV2ZuZuv6FCl2v9JNSxQ=\ngithub.com/envoyproxy/protoc-gen-validate v0.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=\ngithub.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=\ngithub.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=\ngithub.com/evanphx/json-patch v4.1.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=\ngithub.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=\ngithub.com/farsightsec/golang-framestream v0.0.0-20181102145529-8a0cb8ba8710/go.mod h1:eNde4IQyEiA5br02AouhEHCu3p3UzrCdFR4LuQHklMI=\ngithub.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=\ngithub.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=\ngithub.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=\ngithub.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=\ngithub.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=\ngithub.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=\ngithub.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=\ngithub.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=\ngithub.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=\ngithub.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=\ngithub.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=\ngithub.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM=\ngithub.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=\ngithub.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=\ngithub.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M=\ngithub.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ=\ngithub.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=\ngithub.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=\ngithub.com/go-ini/ini v1.51.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=\ngithub.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=\ngithub.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=\ngithub.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc=\ngithub.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=\ngithub.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=\ngithub.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=\ngithub.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8=\ngithub.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8=\ngithub.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=\ngithub.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=\ngithub.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=\ngithub.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=\ngithub.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=\ngithub.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=\ngithub.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=\ngithub.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=\ngithub.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=\ngithub.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=\ngithub.com/gobuffalo/attrs v0.0.0-20190219185331-f338c9388485/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=\ngithub.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=\ngithub.com/gobuffalo/attrs v0.1.0/go.mod h1:fmNpaWyHM0tRm8gCZWKx8yY9fvaNLo2PyzBNSrBZ5Hw=\ngithub.com/gobuffalo/buffalo v0.12.8-0.20181004233540-fac9bb505aa8/go.mod h1:sLyT7/dceRXJUxSsE813JTQtA3Eb1vjxWfo/N//vXIY=\ngithub.com/gobuffalo/buffalo v0.13.0/go.mod h1:Mjn1Ba9wpIbpbrD+lIDMy99pQ0H0LiddMIIDGse7qT4=\ngithub.com/gobuffalo/buffalo v0.13.1/go.mod h1:K9c22KLfDz7obgxvHv1amvJtCQEZNiox9+q6FDJ1Zcs=\ngithub.com/gobuffalo/buffalo v0.13.2/go.mod h1:vA8I4Dwcfkx7RAzIRHVDZxfS3QJR7muiOjX4r8P2/GE=\ngithub.com/gobuffalo/buffalo v0.13.4/go.mod h1:y2jbKkO0k49OrNIOAkbWQiPBqxAFpHn5OKnkc7BDh+I=\ngithub.com/gobuffalo/buffalo v0.13.5/go.mod h1:hPcP12TkFSZmT3gUVHZ24KRhTX3deSgu6QSgn0nbWf4=\ngithub.com/gobuffalo/buffalo v0.13.6/go.mod h1:/Pm0MPLusPhWDayjRD+/vKYnelScIiv0sX9YYek0wpg=\ngithub.com/gobuffalo/buffalo v0.13.7/go.mod h1:3gQwZhI8DSbqmDqlFh7kfwuv/wd40rqdVxXtFWlCQHw=\ngithub.com/gobuffalo/buffalo v0.13.9/go.mod h1:vIItiQkTHq46D1p+bw8mFc5w3BwrtJhMvYjSIYK3yjE=\ngithub.com/gobuffalo/buffalo v0.13.12/go.mod h1:Y9e0p0cdo/eI+lHm7EFzlkc9YzjwGo5QeDj+FbsyqVA=\ngithub.com/gobuffalo/buffalo v0.13.13/go.mod h1:WAL36xBN8OkU71lNjuYv6llmgl0o8twjlY+j7oGUmYw=\ngithub.com/gobuffalo/buffalo v0.14.0/go.mod h1:A9JI3juErlXNrPBeJ/0Pdky9Wz+GffEg7ZN0d1B5h48=\ngithub.com/gobuffalo/buffalo v0.14.2/go.mod h1:VNMTzddg7bMnkVxCUXzqTS4PvUo6cDOs/imtG8Cnt/k=\ngithub.com/gobuffalo/buffalo v0.14.3/go.mod h1:3O9vB/a4UNb16TevehTvDCaPnb98NWvYz0msJQ6ZlVA=\ngithub.com/gobuffalo/buffalo v0.14.5/go.mod h1:RWK6evR4hY4nRVfw9xie9V/LYK3j0U9wU2oKgQUFZ88=\ngithub.com/gobuffalo/buffalo v0.14.6/go.mod h1:71Un+T2JGgwXLjBqYFdGSooz/OUjw15BJM0nbbcAM0o=\ngithub.com/gobuffalo/buffalo-docker v1.0.5/go.mod h1:NZ3+21WIdqOUlOlM2onCt7cwojYp4Qwlsngoolw8zlE=\ngithub.com/gobuffalo/buffalo-docker v1.0.6/go.mod h1:UlqKHJD8CQvyIb+pFq+m/JQW2w2mXuhxsaKaTj1X1XI=\ngithub.com/gobuffalo/buffalo-docker v1.0.7/go.mod h1:BdB8AhcmjwR6Lo3rDPMzyh/+eNjYnZ1TAO0eZeLkhig=\ngithub.com/gobuffalo/buffalo-plugins v1.0.2/go.mod h1:pOp/uF7X3IShFHyobahTkTLZaeUXwb0GrUTb9ngJWTs=\ngithub.com/gobuffalo/buffalo-plugins v1.0.4/go.mod h1:pWS1vjtQ6uD17MVFWf7i3zfThrEKWlI5+PYLw/NaDB4=\ngithub.com/gobuffalo/buffalo-plugins v1.4.3/go.mod h1:uCzTY0woez4nDMdQjkcOYKanngeUVRO2HZi7ezmAjWY=\ngithub.com/gobuffalo/buffalo-plugins v1.5.1/go.mod h1:jbmwSZK5+PiAP9cC09VQOrGMZFCa/P0UMlIS3O12r5w=\ngithub.com/gobuffalo/buffalo-plugins v1.6.1/go.mod h1:/XZt7UuuDnx5P4v3cStK0+XoYiNOA2f0wDIsm1oLJQA=\ngithub.com/gobuffalo/buffalo-plugins v1.6.4/go.mod h1:/+N1aophkA2jZ1ifB2O3Y9yGwu6gKOVMtUmJnbg+OZI=\ngithub.com/gobuffalo/buffalo-plugins v1.6.5/go.mod h1:0HVkbgrVs/MnPZ/FOseDMVanCTm2RNcdM0PuXcL1NNI=\ngithub.com/gobuffalo/buffalo-plugins v1.6.6/go.mod h1:hSWAEkJyL9RENJlmanMivgnNkrQ9RC4xJARz8dQryi0=\ngithub.com/gobuffalo/buffalo-plugins v1.6.7/go.mod h1:ZGZRkzz2PiKWHs0z7QsPBOTo2EpcGRArMEym6ghKYgk=\ngithub.com/gobuffalo/buffalo-plugins v1.6.9/go.mod h1:yYlYTrPdMCz+6/+UaXg5Jm4gN3xhsvsQ2ygVatZV5vw=\ngithub.com/gobuffalo/buffalo-plugins v1.6.10/go.mod h1:HxzPZjAEzh9H0gnHelObxxrut9O+1dxydf7U93SYsc8=\ngithub.com/gobuffalo/buffalo-plugins v1.6.11/go.mod h1:eAA6xJIL8OuynJZ8amXjRmHND6YiusVAaJdHDN1Lu8Q=\ngithub.com/gobuffalo/buffalo-plugins v1.7.2/go.mod h1:vEbx30cLFeeZ48gBA/rkhbqC2M/2JpsKs5CoESWhkPw=\ngithub.com/gobuffalo/buffalo-plugins v1.8.1/go.mod h1:vu71J3fD4b7KKywJQ1tyaJGtahG837Cj6kgbxX0e4UI=\ngithub.com/gobuffalo/buffalo-plugins v1.8.2/go.mod h1:9te6/VjEQ7pKp7lXlDIMqzxgGpjlKoAcAANdCgoR960=\ngithub.com/gobuffalo/buffalo-plugins v1.8.3/go.mod h1:IAWq6vjZJVXebIq2qGTLOdlXzmpyTZ5iJG5b59fza5U=\ngithub.com/gobuffalo/buffalo-plugins v1.9.3/go.mod h1:BNRunDThMZKjqx6R+n14Rk3sRSOWgbMuzCKXLqbd7m0=\ngithub.com/gobuffalo/buffalo-plugins v1.9.4/go.mod h1:grCV6DGsQlVzQwk6XdgcL3ZPgLm9BVxlBmXPMF8oBHI=\ngithub.com/gobuffalo/buffalo-plugins v1.10.0/go.mod h1:4osg8d9s60txLuGwXnqH+RCjPHj9K466cDFRl3PErHI=\ngithub.com/gobuffalo/buffalo-plugins v1.11.0/go.mod h1:rtIvAYRjYibgmWhnjKmo7OadtnxuMG5ZQLr25ozAzjg=\ngithub.com/gobuffalo/buffalo-plugins v1.12.0/go.mod h1:kw4Mj2vQXqe4X5TI36PEQgswbL30heGQwJEeDKd1v+4=\ngithub.com/gobuffalo/buffalo-plugins v1.13.0/go.mod h1:Y9nH2VwHVkeKhmdM380ulNXmhhD5On81nRVeD+WlDTQ=\ngithub.com/gobuffalo/buffalo-plugins v1.13.1/go.mod h1:VcvhrgWcZLhOp8JPLckHBDtv05KepY/MxHsT2+06xX4=\ngithub.com/gobuffalo/buffalo-plugins v1.14.0/go.mod h1:r2lykSXBT79c3T5JK1ouivVDrHvvCZUdZBmn+lPMHU8=\ngithub.com/gobuffalo/buffalo-plugins v1.14.1/go.mod h1:9BRBvXuKxR0m4YttVFRtuUcAP9Rs97mGq6OleyDbIuo=\ngithub.com/gobuffalo/buffalo-pop v1.0.5/go.mod h1:Fw/LfFDnSmB/vvQXPvcXEjzP98Tc+AudyNWUBWKCwQ8=\ngithub.com/gobuffalo/buffalo-pop v1.1.2/go.mod h1:czNLXcYbg5/fjr+uht0NyjZaQ0V2W23H1jzyORgCzQ4=\ngithub.com/gobuffalo/buffalo-pop v1.1.5/go.mod h1:H01JIg42XwOHS4gRMhSeDZqBovNVlfBUsVXckU617s4=\ngithub.com/gobuffalo/buffalo-pop v1.1.8/go.mod h1:1uaxOFzzVud/zR5f1OEBr21tMVLQS3OZpQ1A5cr0svE=\ngithub.com/gobuffalo/buffalo-pop v1.1.13/go.mod h1:47GQoBjCMcl5Pw40iCWHQYJvd0HsT9kdaOPWgnzHzk4=\ngithub.com/gobuffalo/buffalo-pop v1.1.14/go.mod h1:sAMh6+s7wytCn5cHqZIuItJbAqzvs6M7FemLexl+pwc=\ngithub.com/gobuffalo/buffalo-pop v1.1.15/go.mod h1:vnvvxhbEFAaEbac9E2ZPjsBeL7WHkma2UyKNVA4y9Wo=\ngithub.com/gobuffalo/buffalo-pop v1.2.1/go.mod h1:SHqojN0bVzaAzCbQDdWtsib202FDIxqwmCO8VDdweF4=\ngithub.com/gobuffalo/buffalo-pop v1.3.0/go.mod h1:P0PhA225dRGyv0WkgYjYKqgoxPdDPDFZDvHj60AGF5w=\ngithub.com/gobuffalo/buffalo-pop v1.6.0/go.mod h1:vrEVNOBKe042HjSNMj72J4FgER/VG6lt4xW6WMpTdlY=\ngithub.com/gobuffalo/buffalo-pop v1.7.0/go.mod h1:UB5HHeFucJG7esTPUPjinBaJTEpVoREJHfSJJELnyeI=\ngithub.com/gobuffalo/buffalo-pop v1.9.0/go.mod h1:MfrkBg0iN9+RdlxdHHAqqGFAC/iyCfTiKqH7Jvt+vhE=\ngithub.com/gobuffalo/buffalo-pop v1.10.0/go.mod h1:C3/cFXB8Zd38XiGgHFdE7dw3Wu9MOKeD7bfELQicGPI=\ngithub.com/gobuffalo/buffalo-pop v1.12.0/go.mod h1:pO2ONSJOCjyroGp4BwVHfMkfd7sLg1U9BvMJqRy6Otk=\ngithub.com/gobuffalo/buffalo-pop v1.13.0/go.mod h1:h+zfyXCUFwihFqz6jmo9xsdsZ1Tm9n7knYpQjW0gv18=\ngithub.com/gobuffalo/clara v0.4.1/go.mod h1:3QgAPqYgPqAzhfGbNLlp4UztaZRi2SOg+ZrZwaq9L94=\ngithub.com/gobuffalo/clara v0.6.0/go.mod h1:RKZxkcH80pLykRi2hLkoxGMxA8T06Dc9fN/pFvutMFY=\ngithub.com/gobuffalo/depgen v0.0.0-20190219190223-ba8c93fa0c2c/go.mod h1:CE/HUV4vDCXtJayRf6WoMWgezb1yH4QHg8GNK8FL0JI=\ngithub.com/gobuffalo/depgen v0.0.0-20190315122043-8442b3fa16db/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=\ngithub.com/gobuffalo/depgen v0.0.0-20190315124901-e02f65b90669/go.mod h1:yTQe8xo5pGIDOApkeO95DjePS4ZOSSSx+ItkqJHxUG4=\ngithub.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=\ngithub.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg=\ngithub.com/gobuffalo/depgen v0.1.1/go.mod h1:65EOv3g7CMe4kc8J1Ds+l2bjcwrWKGXkE4/vpRRLPWY=\ngithub.com/gobuffalo/depgen v0.2.0/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=\ngithub.com/gobuffalo/envy v1.6.4/go.mod h1:Abh+Jfw475/NWtYMEt+hnJWRiC8INKWibIMyNt1w2Mc=\ngithub.com/gobuffalo/envy v1.6.5/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.6/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.7/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.8/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.9/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.10/go.mod h1:X0CFllQjTV5ogsnUrg+Oks2yTI+PU2dGYBJOEI2D1Uo=\ngithub.com/gobuffalo/envy v1.6.11/go.mod h1:Fiq52W7nrHGDggFPhn2ZCcHw4u/rqXkqo+i7FB6EAcg=\ngithub.com/gobuffalo/envy v1.6.12/go.mod h1:qJNrJhKkZpEW0glh5xP2syQHH5kgdmgsKss2Kk8PTP0=\ngithub.com/gobuffalo/envy v1.6.13/go.mod h1:w9DJppgl51JwUFWWd/M/6/otrPtWV3WYMa+NNLunqKA=\ngithub.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI=\ngithub.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI=\ngithub.com/gobuffalo/events v1.0.3/go.mod h1:Txo8WmqScapa7zimEQIwgiJBvMECMe9gJjsKNPN3uZw=\ngithub.com/gobuffalo/events v1.0.7/go.mod h1:z8txf6H9jWhQ5Scr7YPLWg/cgXBRj8Q4uYI+rsVCCSQ=\ngithub.com/gobuffalo/events v1.0.8/go.mod h1:A5KyqT1sA+3GJiBE4QKZibse9mtOcI9nw8gGrDdqYGs=\ngithub.com/gobuffalo/events v1.1.1/go.mod h1:Ia9OgHMco9pEhJaPrPQJ4u4+IZlkxYVco2VbJ2XgnAE=\ngithub.com/gobuffalo/events v1.1.3/go.mod h1:9yPGWYv11GENtzrIRApwQRMYSbUgCsZ1w6R503fCfrk=\ngithub.com/gobuffalo/events v1.1.4/go.mod h1:09/YRRgZHEOts5Isov+g9X2xajxdvOAcUuAHIX/O//A=\ngithub.com/gobuffalo/events v1.1.5/go.mod h1:3YUSzgHfYctSjEjLCWbkXP6djH2M+MLaVRzb4ymbAK0=\ngithub.com/gobuffalo/events v1.1.6/go.mod h1:H/3ZB9BA+WorMb/0F79UvU6u0Cyo2hU97WA51bG2ONY=\ngithub.com/gobuffalo/events v1.1.7/go.mod h1:6fGqxH2ing5XMb3EYRq9LEkVlyPGs4oO/eLzh+S8CxY=\ngithub.com/gobuffalo/events v1.1.8/go.mod h1:UFy+W6X6VbCWS8k2iT81HYX65dMtiuVycMy04cplt/8=\ngithub.com/gobuffalo/events v1.1.9/go.mod h1:/0nf8lMtP5TkgNbzYxR6Bl4GzBy5s5TebgNTdRfRbPM=\ngithub.com/gobuffalo/events v1.2.0/go.mod h1:pxvpvsKXKZNPtHuIxUV3K+g+KP5o4forzaeFj++bh68=\ngithub.com/gobuffalo/events v1.3.1/go.mod h1:9JOkQVoyRtailYVE/JJ2ZQ/6i4gTjM5t2HsZK4C1cSA=\ngithub.com/gobuffalo/fizz v1.0.12/go.mod h1:C0sltPxpYK8Ftvf64kbsQa2yiCZY4RZviurNxXdAKwc=\ngithub.com/gobuffalo/fizz v1.0.15/go.mod h1:EI3mEpjImuji6Bwu++N2uXhljQwOhwtimZQJ89zwyF4=\ngithub.com/gobuffalo/fizz v1.0.16/go.mod h1:EI3mEpjImuji6Bwu++N2uXhljQwOhwtimZQJ89zwyF4=\ngithub.com/gobuffalo/fizz v1.1.2/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc=\ngithub.com/gobuffalo/fizz v1.1.3/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc=\ngithub.com/gobuffalo/fizz v1.3.0/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc=\ngithub.com/gobuffalo/fizz v1.5.0/go.mod h1:Uu3ch14M4S7LDU7LAP1GQ+KNCRmZYd05Gqasc96XLa0=\ngithub.com/gobuffalo/fizz v1.6.0/go.mod h1:V4V6EA8eYu/L43y6gZj7mjmPkigl9m+Eu3Pe+SWQRRg=\ngithub.com/gobuffalo/fizz v1.6.1/go.mod h1:V4V6EA8eYu/L43y6gZj7mjmPkigl9m+Eu3Pe+SWQRRg=\ngithub.com/gobuffalo/fizz v1.8.0/go.mod h1:2LqJOOGUp1JpN9m54ac5jMQ1MpbNvSVbFi9BY+AEXOo=\ngithub.com/gobuffalo/fizz v1.9.0/go.mod h1:2LqJOOGUp1JpN9m54ac5jMQ1MpbNvSVbFi9BY+AEXOo=\ngithub.com/gobuffalo/flect v0.0.0-20180907193754-dc14d8acaf9f/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181002182613-4571df4b1daf/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181007231023-ae7ed6bfe683/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181018182602-fd24a256709f/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181019110701-3d6f0b585514/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181024204909-8f6be1a8c6c2/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181104133451-1f6e9779237a/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181108195648-8fe1b44cfe32/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181109221320-179d36177b5b/go.mod h1:0HvNbHdfh+WOvDSIASqJOSxTOWSxCCUF++k/Y53v9rI=\ngithub.com/gobuffalo/flect v0.0.0-20181114183036-47375f6d8328/go.mod h1:0HvNbHdfh+WOvDSIASqJOSxTOWSxCCUF++k/Y53v9rI=\ngithub.com/gobuffalo/flect v0.0.0-20181210151238-24a2b68e0316/go.mod h1:en58vff74S9b99Eg42Dr+/9yPu437QjlNsO/hBYPuOk=\ngithub.com/gobuffalo/flect v0.0.0-20190104192022-4af577e09bf2/go.mod h1:en58vff74S9b99Eg42Dr+/9yPu437QjlNsO/hBYPuOk=\ngithub.com/gobuffalo/flect v0.0.0-20190117212819-a62e61d96794/go.mod h1:397QT6v05LkZkn07oJXXT6y9FCfwC8Pug0WA2/2mE9k=\ngithub.com/gobuffalo/flect v0.0.0-20190205211104-b2cb381e56e0/go.mod h1:397QT6v05LkZkn07oJXXT6y9FCfwC8Pug0WA2/2mE9k=\ngithub.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs=\ngithub.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI=\ngithub.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI=\ngithub.com/gobuffalo/flect v0.1.5/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80=\ngithub.com/gobuffalo/genny v0.0.0-20180924032338-7af3a40f2252/go.mod h1:tUTQOogrr7tAQnhajMSH6rv1BVev34H2sa1xNHMy94g=\ngithub.com/gobuffalo/genny v0.0.0-20181003150629-3786a0744c5d/go.mod h1:WAd8HmjMVrnkAZbmfgH5dLBUchsZfqzp/WS5sQz+uTM=\ngithub.com/gobuffalo/genny v0.0.0-20181005145118-318a41a134cc/go.mod h1:WAd8HmjMVrnkAZbmfgH5dLBUchsZfqzp/WS5sQz+uTM=\ngithub.com/gobuffalo/genny v0.0.0-20181007153042-b8de7d566757/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA=\ngithub.com/gobuffalo/genny v0.0.0-20181012161047-33e5f43d83a6/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA=\ngithub.com/gobuffalo/genny v0.0.0-20181017160347-90a774534246/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA=\ngithub.com/gobuffalo/genny v0.0.0-20181019144442-df0a36fdd146/go.mod h1:IyRrGrQb/sbHu/0z9i5mbpZroIsdxjCYfj+zFiFiWZQ=\ngithub.com/gobuffalo/genny v0.0.0-20181024195656-51392254bf53/go.mod h1:o9GEH5gn5sCKLVB5rHFC4tq40rQ3VRUzmx6WwmaqISE=\ngithub.com/gobuffalo/genny v0.0.0-20181025145300-af3f81d526b8/go.mod h1:uZ1fFYvdcP8mu0B/Ynarf6dsGvp7QFIpk/QACUuFUVI=\ngithub.com/gobuffalo/genny v0.0.0-20181027191429-94d6cfb5c7fc/go.mod h1:x7SkrQQBx204Y+O9EwRXeszLJDTaWN0GnEasxgLrQTA=\ngithub.com/gobuffalo/genny v0.0.0-20181027195209-3887b7171c4f/go.mod h1:JbKx8HSWICu5zyqWOa0dVV1pbbXOHusrSzQUprW6g+w=\ngithub.com/gobuffalo/genny v0.0.0-20181030163439-ed103521b8ec/go.mod h1:3Xm9z7/2oRxlB7PSPLxvadZ60/0UIek1YWmcC7QSaVs=\ngithub.com/gobuffalo/genny v0.0.0-20181106193839-7dcb0924caf1/go.mod h1:x61yHxvbDCgQ/7cOAbJCacZQuHgB0KMSzoYcw5debjU=\ngithub.com/gobuffalo/genny v0.0.0-20181107223128-f18346459dbe/go.mod h1:utQD3aKKEsdb03oR+Vi/6ztQb1j7pO10N3OBoowRcSU=\ngithub.com/gobuffalo/genny v0.0.0-20181109163038-9539921b620f/go.mod h1:118bnhJR2oviiji++mZj0IH/IaFBCzwkWHaI4OQq5hQ=\ngithub.com/gobuffalo/genny v0.0.0-20181110202416-7b7d8756a9e2/go.mod h1:118bnhJR2oviiji++mZj0IH/IaFBCzwkWHaI4OQq5hQ=\ngithub.com/gobuffalo/genny v0.0.0-20181111200257-599b33630ab4/go.mod h1:w+iD/cdtIpPDFax6LlUFuCdXFD0DLRUXsfp3IeT/Doc=\ngithub.com/gobuffalo/genny v0.0.0-20181114215459-0a4decd77f5d/go.mod h1:kN2KZ8VgXF9VIIOj/GM0Eo7YK+un4Q3tTreKOf0q1ng=\ngithub.com/gobuffalo/genny v0.0.0-20181119162812-e8ff4adce8bb/go.mod h1:BA9htSe4bZwBDJLe8CUkoqkypq3hn3+CkoHqVOW718E=\ngithub.com/gobuffalo/genny v0.0.0-20181127225641-2d959acc795b/go.mod h1:l54xLXNkteX/PdZ+HlgPk1qtcrgeOr3XUBBPDbH+7CQ=\ngithub.com/gobuffalo/genny v0.0.0-20181128191930-77e34f71ba2a/go.mod h1:FW/D9p7cEEOqxYA71/hnrkOWm62JZ5ZNxcNIVJEaWBU=\ngithub.com/gobuffalo/genny v0.0.0-20181203165245-fda8bcce96b1/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM=\ngithub.com/gobuffalo/genny v0.0.0-20181203201232-849d2c9534ea/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM=\ngithub.com/gobuffalo/genny v0.0.0-20181206121324-d6fb8a0dbe36/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM=\ngithub.com/gobuffalo/genny v0.0.0-20181207164119-84844398a37d/go.mod h1:y0ysCHGGQf2T3vOhCrGHheYN54Y/REj0ayd0Suf4C/8=\ngithub.com/gobuffalo/genny v0.0.0-20181211165820-e26c8466f14d/go.mod h1:sHnK+ZSU4e2feXP3PA29ouij6PUEiN+RCwECjCTB3yM=\ngithub.com/gobuffalo/genny v0.0.0-20190104222617-a71664fc38e7/go.mod h1:QPsQ1FnhEsiU8f+O0qKWXz2RE4TiDqLVChWkBuh1WaY=\ngithub.com/gobuffalo/genny v0.0.0-20190112155932-f31a84fcacf5/go.mod h1:CIaHCrSIuJ4il6ka3Hub4DR4adDrGoXGEEt2FbBxoIo=\ngithub.com/gobuffalo/genny v0.0.0-20190124191459-3310289fa4b4/go.mod h1:yIRqxhZV2sAzb+B3iPUMLauTRrYP8tJUlZ1zV9teKik=\ngithub.com/gobuffalo/genny v0.0.0-20190131150032-1045e97d19fb/go.mod h1:yIRqxhZV2sAzb+B3iPUMLauTRrYP8tJUlZ1zV9teKik=\ngithub.com/gobuffalo/genny v0.0.0-20190131190646-008a76242145/go.mod h1:NJvPZJxb9M4z790P6N2SMZKSUYpASpEvLuUWnHGKzb4=\ngithub.com/gobuffalo/genny v0.0.0-20190219203444-c95082806342/go.mod h1:3BLT+Vs94EEz3fKR8WWOkYpL6c1tdJcZUNCe3LZAnvQ=\ngithub.com/gobuffalo/genny v0.0.0-20190315121735-8b38fb089e88/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk=\ngithub.com/gobuffalo/genny v0.0.0-20190315124720-e16e52a93c79/go.mod h1:nKeefjbhYowo36ys9nG9VUvD9FRIS0p3BC2JFfcOucM=\ngithub.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk=\ngithub.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28=\ngithub.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo=\ngithub.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk=\ngithub.com/gobuffalo/genny v0.2.0/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk=\ngithub.com/gobuffalo/gitgen v0.0.0-20190219185555-91c2c5f0aad5/go.mod h1:ZzGIrxBvCJEluaU4i3CN0GFlu1Qmb3yK8ziV02evJ1E=\ngithub.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw=\ngithub.com/gobuffalo/github_flavored_markdown v1.0.4/go.mod h1:uRowCdK+q8d/RF0Kt3/DSalaIXbb0De/dmTqMQdkQ4I=\ngithub.com/gobuffalo/github_flavored_markdown v1.0.5/go.mod h1:U0643QShPF+OF2tJvYNiYDLDGDuQmJZXsf/bHOJPsMY=\ngithub.com/gobuffalo/github_flavored_markdown v1.0.7/go.mod h1:w93Pd9Lz6LvyQXEG6DktTPHkOtCbr+arAD5mkwMzXLI=\ngithub.com/gobuffalo/gogen v0.0.0-20190219194924-d32a17ad9761/go.mod h1:v47C8sid+ZM2qK+YpQ2MGJKssKAqyTsH1wl/pTCPdz8=\ngithub.com/gobuffalo/gogen v0.0.0-20190224213239-1c6076128bbc/go.mod h1:tQqPADZKflmJCR4FHRHYNPP79cXPICyxUiUHyhuXtqg=\ngithub.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360=\ngithub.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg=\ngithub.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE=\ngithub.com/gobuffalo/gogen v0.2.0/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360=\ngithub.com/gobuffalo/helpers v0.0.0-20190422082217-384f90c6579f/go.mod h1:g0I3qKQEyJxwnHtEmLugD75eoOiWxEtibcV62tYah9w=\ngithub.com/gobuffalo/helpers v0.0.0-20190506214229-8e6f634af7c3/go.mod h1:HlNpmw2+Rjx882VUf6hJfNJs5wpNRzX02KcqCXDlLGc=\ngithub.com/gobuffalo/helpers v0.2.1/go.mod h1:5UhA1EfGvyPZfzo9PqhKkSgmLolaTpnWYDbqCJcmiAE=\ngithub.com/gobuffalo/helpers v0.2.2/go.mod h1:xYbzUdCUpVzLwLnqV8HIjT6hmG0Cs7YIBCJkNM597jw=\ngithub.com/gobuffalo/httptest v1.0.2/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.3/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.4/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.5/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.6/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.1.0/go.mod h1:BIfCgiqCOotRc5xYwCcZN7IFYag4277Ynqjar/Ra3iI=\ngithub.com/gobuffalo/httptest v1.2.0/go.mod h1:0KfourZCsapuvkljDMSr7YM+66kCt/rXv54YcWRWwhc=\ngithub.com/gobuffalo/httptest v1.3.0/go.mod h1:Y4qebOsMH91XdB0cZuS8OUdAKHGV7hVDcjgzGupoYlk=\ngithub.com/gobuffalo/licenser v0.0.0-20180924033006-eae28e638a42/go.mod h1:Ubo90Np8gpsSZqNScZZkVXXAo5DGhTb+WYFIjlnog8w=\ngithub.com/gobuffalo/licenser v0.0.0-20181025145548-437d89de4f75/go.mod h1:x3lEpYxkRG/XtGCUNkio+6RZ/dlOvLzTI9M1auIwFcw=\ngithub.com/gobuffalo/licenser v0.0.0-20181027200154-58051a75da95/go.mod h1:BzhaaxGd1tq1+OLKObzgdCV9kqVhbTulxOpYbvMQWS0=\ngithub.com/gobuffalo/licenser v0.0.0-20181109171355-91a2a7aac9a7/go.mod h1:m+Ygox92pi9bdg+gVaycvqE8RVSjZp7mWw75+K5NPHk=\ngithub.com/gobuffalo/licenser v0.0.0-20181116224424-1b7fd3f9cbb4/go.mod h1:icHYfF2FVDi6CpI8BK9Sy1ChkSijz/0GNN7Qzzdk6JE=\ngithub.com/gobuffalo/licenser v0.0.0-20181128165715-cc7305f8abed/go.mod h1:oU9F9UCE+AzI/MueCKZamsezGOOHfSirltllOVeRTAE=\ngithub.com/gobuffalo/licenser v0.0.0-20181128170751-82cc989582b9/go.mod h1:oU9F9UCE+AzI/MueCKZamsezGOOHfSirltllOVeRTAE=\ngithub.com/gobuffalo/licenser v0.0.0-20181203160806-fe900bbede07/go.mod h1:ph6VDNvOzt1CdfaWC+9XwcBnlSTBz2j49PBwum6RFaU=\ngithub.com/gobuffalo/licenser v0.0.0-20181211173111-f8a311c51159/go.mod h1:ve/Ue99DRuvnTaLq2zKa6F4KtHiYf7W046tDjuGYPfM=\ngithub.com/gobuffalo/licenser v0.0.0-20190224205124-37799bc2ebf6/go.mod h1:ve/Ue99DRuvnTaLq2zKa6F4KtHiYf7W046tDjuGYPfM=\ngithub.com/gobuffalo/licenser v0.0.0-20190329153211-c35c0a2813b2/go.mod h1:ZVWE6uKUE3rGf7sedUHWVjNWrEgxaUQLVFL+pQiWpfY=\ngithub.com/gobuffalo/licenser v1.1.0/go.mod h1:ZVWE6uKUE3rGf7sedUHWVjNWrEgxaUQLVFL+pQiWpfY=\ngithub.com/gobuffalo/logger v0.0.0-20181022175615-46cfb361fc27/go.mod h1:8sQkgyhWipz1mIctHF4jTxmJh1Vxhp7mP8IqbljgJZo=\ngithub.com/gobuffalo/logger v0.0.0-20181027144941-73d08d2bb969/go.mod h1:7uGg2duHKpWnN4+YmyKBdLXfhopkAdVM6H3nKbyFbz8=\ngithub.com/gobuffalo/logger v0.0.0-20181027193913-9cf4dd0efe46/go.mod h1:7uGg2duHKpWnN4+YmyKBdLXfhopkAdVM6H3nKbyFbz8=\ngithub.com/gobuffalo/logger v0.0.0-20181109185836-3feeab578c17/go.mod h1:oNErH0xLe+utO+OW8ptXMSA5DkiSEDW1u3zGIt8F9Ew=\ngithub.com/gobuffalo/logger v0.0.0-20181117211126-8e9b89b7c264/go.mod h1:5etB91IE0uBlw9k756fVKZJdS+7M7ejVhmpXXiSFj0I=\ngithub.com/gobuffalo/logger v0.0.0-20181127160119-5b956e21995c/go.mod h1:+HxKANrR9VGw9yN3aOAppJKvhO05ctDi63w4mDnKv2U=\ngithub.com/gobuffalo/logger v0.0.0-20190224201004-be78ebfea0fa/go.mod h1:+HxKANrR9VGw9yN3aOAppJKvhO05ctDi63w4mDnKv2U=\ngithub.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8=\ngithub.com/gobuffalo/makr v1.1.5/go.mod h1:Y+o0btAH1kYAMDJW/TX3+oAXEu0bmSLLoC9mIFxtzOw=\ngithub.com/gobuffalo/mapi v1.0.0/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc=\ngithub.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc=\ngithub.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc=\ngithub.com/gobuffalo/mapi v1.1.0/go.mod h1:pqQ1XAqvpy/JYtRwoieNps2yU8MFiMxBUpAm2FBtQ50=\ngithub.com/gobuffalo/meta v0.0.0-20181018155829-df62557efcd3/go.mod h1:XTTOhwMNryif3x9LkTTBO/Llrveezd71u3quLd0u7CM=\ngithub.com/gobuffalo/meta v0.0.0-20181018192820-8c6cef77dab3/go.mod h1:E94EPzx9NERGCY69UWlcj6Hipf2uK/vnfrF4QD0plVE=\ngithub.com/gobuffalo/meta v0.0.0-20181025145500-3a985a084b0a/go.mod h1:YDAKBud2FP7NZdruCSlmTmDOZbVSa6bpK7LJ/A/nlKg=\ngithub.com/gobuffalo/meta v0.0.0-20181109154556-f76929ccd5fa/go.mod h1:1rYI5QsanV6cLpT1BlTAkrFi9rtCZrGkvSK8PglwfS8=\ngithub.com/gobuffalo/meta v0.0.0-20181114191255-b130ebedd2f7/go.mod h1:K6cRZ29ozr4Btvsqkjvg5nDFTLOgTqf03KA70Ks0ypE=\ngithub.com/gobuffalo/meta v0.0.0-20181116202903-8850e47774f5/go.mod h1:K6cRZ29ozr4Btvsqkjvg5nDFTLOgTqf03KA70Ks0ypE=\ngithub.com/gobuffalo/meta v0.0.0-20181127070345-0d7e59dd540b/go.mod h1:RLO7tMvE0IAKAM8wny1aN12pvEKn7EtkBLkUZR00Qf8=\ngithub.com/gobuffalo/meta v0.0.0-20190120163247-50bbb1fa260d/go.mod h1:KKsH44nIK2gA8p0PJmRT9GvWJUdphkDUA8AJEvFWiqM=\ngithub.com/gobuffalo/meta v0.0.0-20190121163014-ecaa953cbfb3/go.mod h1:KLfkGnS+Tucc+iTkUcAUBtxpwOJGfhw2pHRLddPxMQY=\ngithub.com/gobuffalo/meta v0.0.0-20190126124307-c8fb6f4eb5a9/go.mod h1:zoh6GLgkk9+iI/62dST4amAuVAczZrBXoAk/t64n7Ew=\ngithub.com/gobuffalo/meta v0.0.0-20190207205153-50a99e08b8cf/go.mod h1:+VGfK9Jm9I7oJyFeJzIT6omCPvrDktzAtpHJKaieugY=\ngithub.com/gobuffalo/meta v0.0.0-20190320152240-a5320142224a/go.mod h1:+VGfK9Jm9I7oJyFeJzIT6omCPvrDktzAtpHJKaieugY=\ngithub.com/gobuffalo/meta v0.0.0-20190329152330-e161e8a93e3b/go.mod h1:mCRSy5F47tjK8yaIDcJad4oe9fXxY5gLrx3Xx2spK+0=\ngithub.com/gobuffalo/mw-basicauth v1.0.3/go.mod h1:dg7+ilMZOKnQFHDefUzUHufNyTswVUviCBgF244C1+0=\ngithub.com/gobuffalo/mw-basicauth v1.0.6/go.mod h1:RFyeGeDLZlVgp/eBflqu2eavFqyv0j0fVVP87WPYFwY=\ngithub.com/gobuffalo/mw-basicauth v1.0.7/go.mod h1:xJ9/OSiOWl+kZkjaSun62srODr3Cx8OB4AKr+G4FlS4=\ngithub.com/gobuffalo/mw-contenttype v0.0.0-20180802152300-74f5a47f4d56/go.mod h1:7EvcmzBbeCvFtQm5GqF9ys6QnCxz2UM1x0moiWLq1No=\ngithub.com/gobuffalo/mw-contenttype v0.0.0-20190129203934-2554e742333b/go.mod h1:7x87+mDrr9Peh7AqhOtESyJLanMd2zQNz2Hts+vtBoE=\ngithub.com/gobuffalo/mw-csrf v0.0.0-20180802151833-446ff26e108b/go.mod h1:sbGtb8DmDZuDUQoxjr8hG1ZbLtZboD9xsn6p77ppcHo=\ngithub.com/gobuffalo/mw-csrf v0.0.0-20190129204204-25460a055517/go.mod h1:o5u+nnN0Oa7LBeDYH9QP36qeMPnXV9qbVnbZ4D+Kb0Q=\ngithub.com/gobuffalo/mw-forcessl v0.0.0-20180802152810-73921ae7a130/go.mod h1:JvNHRj7bYNAMUr/5XMkZaDcw3jZhUZpsmzhd//FFWmQ=\ngithub.com/gobuffalo/mw-i18n v0.0.0-20180802152014-e3060b7e13d6/go.mod h1:91AQfukc52A6hdfIfkxzyr+kpVYDodgAeT5cjX1UIj4=\ngithub.com/gobuffalo/mw-i18n v0.0.0-20181027200759-09e0c99be4d3/go.mod h1:1PpGPgqP8VsfUppgBA9FrTOXjI6X9gjqhh/8dmg48lg=\ngithub.com/gobuffalo/mw-i18n v0.0.0-20190129204410-552713a3ebb4/go.mod h1:rBg2eHxsyxVjtYra6fGy4GSF5C8NysOvz+Znnzk42EM=\ngithub.com/gobuffalo/mw-paramlogger v0.0.0-20181005191442-d6ee392ec72e/go.mod h1:6OJr6VwSzgJMqWMj7TYmRUqzNe2LXu/W1rRW4MAz/ME=\ngithub.com/gobuffalo/mw-paramlogger v0.0.0-20190129202837-395da1998525/go.mod h1:gEo/ABCsKqvpp/KCxN2AIzDEe0OJUXbJ9293FYrXw+w=\ngithub.com/gobuffalo/mw-tokenauth v0.0.0-20181001105134-8545f626c189/go.mod h1:UqBF00IfKvd39ni5+yI5MLMjAf4gX7cDKN/26zDOD6c=\ngithub.com/gobuffalo/mw-tokenauth v0.0.0-20190129201951-95847f29c5c8/go.mod h1:n2oa93LHGD94hGI+PoJO+6cf60DNrXrAIv9L/Ke3GXc=\ngithub.com/gobuffalo/nulls v0.0.0-20190305142546-85f3c9250d87/go.mod h1:KhaLCW+kFA/G97tZkmVkIxhRw3gvZszJn7JjPLI3gtI=\ngithub.com/gobuffalo/packd v0.0.0-20181027182251-01ad393492c8/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc=\ngithub.com/gobuffalo/packd v0.0.0-20181027190505-aafc0d02c411/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc=\ngithub.com/gobuffalo/packd v0.0.0-20181027194105-7ae579e6d213/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc=\ngithub.com/gobuffalo/packd v0.0.0-20181028162033-6d52e0eabf41/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181029140631-cf76bd87a5a6/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181031195726-c82734870264/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181103221656-16c4ed88b296/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181104210303-d376b15f8e96/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181111195323-b2e760a5f0ff/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181114190715-f25c5d2471d7/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181124090624-311c6248e5fb/go.mod h1:Foenia9ZvITEvG05ab6XpiD5EfBHPL8A6hush8SJ0o8=\ngithub.com/gobuffalo/packd v0.0.0-20181207120301-c49825f8f6f4/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA=\ngithub.com/gobuffalo/packd v0.0.0-20181212173646-eca3b8fd6687/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA=\ngithub.com/gobuffalo/packd v0.0.0-20190224160250-d04dd98aca5b/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA=\ngithub.com/gobuffalo/packd v0.0.0-20190315122247-83d601d65093/go.mod h1:LpEu7OkoplvlhztyAEePkS6JwcGgANdgGL5pB4Knxaw=\ngithub.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4=\ngithub.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4=\ngithub.com/gobuffalo/packd v0.2.0/go.mod h1:k2CkHP3bjbqL2GwxwhxUy1DgnlbW644hkLC9iIUvZwY=\ngithub.com/gobuffalo/packr v1.13.7/go.mod h1:KkinLIn/n6+3tVXMwg6KkNvWwVsrRAz4ph+jgpk3Z24=\ngithub.com/gobuffalo/packr v1.15.0/go.mod h1:t5gXzEhIviQwVlNx/+3SfS07GS+cZ2hn76WLzPp6MGI=\ngithub.com/gobuffalo/packr v1.15.1/go.mod h1:IeqicJ7jm8182yrVmNbM6PR4g79SjN9tZLH8KduZZwE=\ngithub.com/gobuffalo/packr v1.16.0/go.mod h1:Yx/lcR/7mDLXhuJSzsz2MauD/HUwSc+EK6oigMRGGsM=\ngithub.com/gobuffalo/packr v1.19.0/go.mod h1:MstrNkfCQhd5o+Ct4IJ0skWlxN8emOq8DsoT1G98VIU=\ngithub.com/gobuffalo/packr v1.20.0/go.mod h1:JDytk1t2gP+my1ig7iI4NcVaXr886+N0ecUga6884zw=\ngithub.com/gobuffalo/packr v1.21.0/go.mod h1:H00jGfj1qFKxscFJSw8wcL4hpQtPe1PfU2wa6sg/SR0=\ngithub.com/gobuffalo/packr v1.21.5/go.mod h1:zCvDxrZzFmq5Xd7Jw4vaGe/OYwzuXnma31D2EbTHMWk=\ngithub.com/gobuffalo/packr v1.21.7/go.mod h1:73tmYjwi4Cvb1eNiAwpmrzZ0gxVA4KBqVSZ2FNeJodM=\ngithub.com/gobuffalo/packr v1.21.9/go.mod h1:GC76q6nMzRtR+AEN/VV4w0z2/4q7SOaEmXh3Ooa8sOE=\ngithub.com/gobuffalo/packr v1.22.0/go.mod h1:Qr3Wtxr3+HuQEwWqlLnNW4t1oTvK+7Gc/Rnoi/lDFvA=\ngithub.com/gobuffalo/packr v1.24.0/go.mod h1:p9Sgang00I1hlr1ub+tgI9AQdFd4f+WH1h62jYpzetM=\ngithub.com/gobuffalo/packr v1.24.1/go.mod h1:absPnW/XUUa4DmIh5ga7AipGXXg0DOcd5YWKk5RZs8Y=\ngithub.com/gobuffalo/packr v1.25.0/go.mod h1:NqsGg8CSB2ZD+6RBIRs18G7aZqdYDlYNNvsSqP6T4/U=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.5/go.mod h1:e6gmOfhf3KmT4zl2X/NDRSfBXk2oV4TXZ+NNOM0xwt8=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.7/go.mod h1:BzhceHWfF3DMAkbPUONHYWs63uacCZxygFY1b4H9N2A=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.8/go.mod h1:y60QCdzwuMwO2R49fdQhsjCPv7tLQFR0ayzxxla9zes=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.9/go.mod h1:fQqADRfZpEsgkc7c/K7aMew3n4aF1Kji7+lIZeR98Fc=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.10/go.mod h1:4CWWn4I5T3v4c1OsJ55HbHlUEKNWMITG5iIkdr4Px4w=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.11/go.mod h1:JoieH/3h3U4UmatmV93QmqyPUdf4wVM9HELaHEu+3fk=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.12/go.mod h1:FV1zZTsVFi1DSCboO36Xgs4pzCZBjB/tDV9Cz/lSaR8=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.13/go.mod h1:2Mp7GhBFMdJlOK8vGfl7SYtfMP3+5roE39ejlfjw0rA=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.14/go.mod h1:06otbrNvDKO1eNQ3b8hst+1010UooI2MFg+B2Ze4MV8=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.15/go.mod h1:IMe7H2nJvcKXSF90y4X1rjYIRlNMJYCxEhssBXNZwWs=\ngithub.com/gobuffalo/packr/v2 v2.0.0/go.mod h1:7McfLpSxaPUoSQm7gYpTZRQSK63mX8EKzzYSEFKvfkM=\ngithub.com/gobuffalo/packr/v2 v2.0.1/go.mod h1:tp5/5A2e67F1lUGTiNadtA2ToP045+mvkWzaqMCsZr4=\ngithub.com/gobuffalo/packr/v2 v2.0.2/go.mod h1:6Y+2NY9cHDlrz96xkJG8bfPwLlCdJVS/irhNJmwD7kM=\ngithub.com/gobuffalo/packr/v2 v2.0.6/go.mod h1:/TYKOjadT7P9jRWZtj4BRTgeXy2tIYntifGkD+aM2KY=\ngithub.com/gobuffalo/packr/v2 v2.0.7/go.mod h1:1SBFAIr3YnxYdJRyrceR7zhOrhV/YhHzOjDwA9LLZ5Y=\ngithub.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ=\ngithub.com/gobuffalo/packr/v2 v2.0.10/go.mod h1:n90ZuXIc2KN2vFAOQascnPItp9A2g9QYSvYvS3AjQEM=\ngithub.com/gobuffalo/packr/v2 v2.1.0/go.mod h1:n90ZuXIc2KN2vFAOQascnPItp9A2g9QYSvYvS3AjQEM=\ngithub.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0=\ngithub.com/gobuffalo/packr/v2 v2.3.2/go.mod h1:93elRVdDhpUgox9GnXswWK5dzpVBQsnlQjnnncSLoiU=\ngithub.com/gobuffalo/packr/v2 v2.4.0/go.mod h1:ra341gygw9/61nSjAbfwcwh8IrYL4WmR4IsPkPBhQiY=\ngithub.com/gobuffalo/plush v3.7.16+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.20+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.21+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.22+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.23+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.30+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.31+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.32+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.33+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.34+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.8.0+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.8.2+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plushgen v0.0.0-20181128164830-d29dcb966cb2/go.mod h1:r9QwptTFnuvSaSRjpSp4S2/4e2D3tJhARYbvEBcKSb4=\ngithub.com/gobuffalo/plushgen v0.0.0-20181203163832-9fc4964505c2/go.mod h1:opEdT33AA2HdrIwK1aibqnTJDVVKXC02Bar/GT1YRVs=\ngithub.com/gobuffalo/plushgen v0.0.0-20181207152837-eedb135bd51b/go.mod h1:Lcw7HQbEVm09sAQrCLzIxuhFbB3nAgp4c55E+UlynR0=\ngithub.com/gobuffalo/plushgen v0.0.0-20190104222512-177cd2b872b3/go.mod h1:tYxCozi8X62bpZyKXYHw1ncx2ZtT2nFvG42kuLwYjoc=\ngithub.com/gobuffalo/plushgen v0.0.0-20190224160205-347ea233336e/go.mod h1:tYxCozi8X62bpZyKXYHw1ncx2ZtT2nFvG42kuLwYjoc=\ngithub.com/gobuffalo/plushgen v0.0.0-20190329152458-0555238fe0d9/go.mod h1:3U71v6HWZpVER1nInTXeAwdoRNsRd4W8aeIa1Lyp+Bk=\ngithub.com/gobuffalo/plushgen v0.1.0/go.mod h1:NK33QLkRK/xKexiPFSxlWRT286F4yStZUa/Fbx0guvo=\ngithub.com/gobuffalo/plushgen v0.1.2/go.mod h1:3U71v6HWZpVER1nInTXeAwdoRNsRd4W8aeIa1Lyp+Bk=\ngithub.com/gobuffalo/pop v4.8.2+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.3+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.4+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.5+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.7+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.8+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.1+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.2+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.3+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.5+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.6+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.8+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.9+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.10.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.11.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.11.1+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/release v1.0.35/go.mod h1:VtHFAKs61vO3wboCec5xr9JPTjYyWYcvaM3lclkc4x4=\ngithub.com/gobuffalo/release v1.0.38/go.mod h1:VtHFAKs61vO3wboCec5xr9JPTjYyWYcvaM3lclkc4x4=\ngithub.com/gobuffalo/release v1.0.42/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug=\ngithub.com/gobuffalo/release v1.0.51/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug=\ngithub.com/gobuffalo/release v1.0.52/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug=\ngithub.com/gobuffalo/release v1.0.53/go.mod h1:FdF257nd8rqhNaqtDWFGhxdJ/Ig4J7VcS3KL7n/a+aA=\ngithub.com/gobuffalo/release v1.0.54/go.mod h1:Pe5/RxRa/BE8whDpGfRqSI7D1a0evGK1T4JDm339tJc=\ngithub.com/gobuffalo/release v1.0.61/go.mod h1:mfIO38ujUNVDlBziIYqXquYfBF+8FDHUjKZgYC1Hj24=\ngithub.com/gobuffalo/release v1.0.63/go.mod h1:/7hQAikt0l8Iu/tAX7slC1qiOhD6Nb+3KMmn/htiUfc=\ngithub.com/gobuffalo/release v1.0.72/go.mod h1:NP5NXgg/IX3M5XmHmWR99D687/3Dt9qZtTK/Lbwc1hU=\ngithub.com/gobuffalo/release v1.0.74/go.mod h1:NP5NXgg/IX3M5XmHmWR99D687/3Dt9qZtTK/Lbwc1hU=\ngithub.com/gobuffalo/release v1.1.1/go.mod h1:Sluak1Xd6kcp6snkluR1jeXAogdJZpFFRzTYRs/2uwg=\ngithub.com/gobuffalo/release v1.1.3/go.mod h1:CuXc5/m+4zuq8idoDt1l4va0AXAn/OSs08uHOfMVr8E=\ngithub.com/gobuffalo/release v1.1.6/go.mod h1:18naWa3kBsqO0cItXZNJuefCKOENpbbUIqRL1g+p6z0=\ngithub.com/gobuffalo/release v1.2.2/go.mod h1:tkFFZua2N5WRxyGDk2cSwQjzkZ/apKKXl5T8P+kEO+E=\ngithub.com/gobuffalo/release v1.2.5/go.mod h1:tkFFZua2N5WRxyGDk2cSwQjzkZ/apKKXl5T8P+kEO+E=\ngithub.com/gobuffalo/release v1.4.0/go.mod h1:f4uUPnD9dxrWxVy9yy0k/mvDf3EzhFtf7/byl0tTdY4=\ngithub.com/gobuffalo/release v1.7.0/go.mod h1:xH2NjAueVSY89XgC4qx24ojEQ4zQ9XCGVs5eXwJTkEs=\ngithub.com/gobuffalo/shoulders v1.0.1/go.mod h1:V33CcVmaQ4gRUmHKwq1fiTXuf8Gp/qjQBUL5tHPmvbA=\ngithub.com/gobuffalo/shoulders v1.0.3/go.mod h1:LqMcHhKRuBPMAYElqOe3POHiZ1x7Ry0BE8ZZ84Bx+k4=\ngithub.com/gobuffalo/shoulders v1.0.4/go.mod h1:LqMcHhKRuBPMAYElqOe3POHiZ1x7Ry0BE8ZZ84Bx+k4=\ngithub.com/gobuffalo/shoulders v1.1.0/go.mod h1:kcIJs3p7VqoBJ36Mzs+x767NyzTx0pxBvzZdWTWZYF8=\ngithub.com/gobuffalo/syncx v0.0.0-20181120191700-98333ab04150/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=\ngithub.com/gobuffalo/syncx v0.0.0-20181120194010-558ac7de985f/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=\ngithub.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=\ngithub.com/gobuffalo/tags v2.0.11+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.0.14+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.0.15+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.0.16+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.1.0+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/uuid v2.0.3+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE=\ngithub.com/gobuffalo/uuid v2.0.4+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE=\ngithub.com/gobuffalo/uuid v2.0.5+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE=\ngithub.com/gobuffalo/validate v2.0.3+incompatible/go.mod h1:N+EtDe0J8252BgfzQUChBgfd6L93m9weay53EWFVsMM=\ngithub.com/gobuffalo/x v0.0.0-20181003152136-452098b06085/go.mod h1:WevpGD+5YOreDJznWevcn8NTmQEW5STSBgIkpkjzqXc=\ngithub.com/gobuffalo/x v0.0.0-20181007152206-913e47c59ca7/go.mod h1:9rDPXaB3kXdKWzMc4odGQQdG2e2DIEmANy5aSJ9yesY=\ngithub.com/gobuffalo/x v0.0.0-20181025165825-f204f550da9d/go.mod h1:Qh2Pb/Ak1Ko2mzHlGPigrnxkhO4WTTCI1jJM58sbgtE=\ngithub.com/gobuffalo/x v0.0.0-20181025192250-1ef645d63fe8/go.mod h1:AIlnMGlYXOCsoCntLPFLYtrJNS/pc2HD4IdSXH62TpU=\ngithub.com/gobuffalo/x v0.0.0-20181109195216-5b3131238124/go.mod h1:GpdLUY6/Ztf/3FfxfwsLkDqAGZ0brhlh7LzIibHyZp0=\ngithub.com/gobuffalo/x v0.0.0-20181110221217-14085ca3e1a9/go.mod h1:ig5vdn4+5IPtxgESlZWo1SSDyHKKef8EjVVKhY9kkIQ=\ngithub.com/gobuffalo/x v0.0.0-20190224155809-6bb134105960/go.mod h1:ig5vdn4+5IPtxgESlZWo1SSDyHKKef8EjVVKhY9kkIQ=\ngithub.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=\ngithub.com/godbus/dbus v4.1.0+incompatible/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=\ngithub.com/gofrs/uuid v3.1.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=\ngithub.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=\ngithub.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=\ngithub.com/gogo/googleapis v1.3.0/go.mod h1:d+q1s/xVJxZGKWwC/6UfPIF33J+G1Tq4GYv9Y+Tg/EU=\ngithub.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=\ngithub.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=\ngithub.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=\ngithub.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=\ngithub.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=\ngithub.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=\ngithub.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=\ngithub.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=\ngithub.com/goji/param v0.0.0-20160927210335-d7f49fd7d1ed/go.mod h1:GZJblUu7ACjguvQUK2un6nQBlnZk7H1MzXZdfrFUd8Q=\ngithub.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=\ngithub.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=\ngithub.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=\ngithub.com/golang/lint v0.0.0-20181217174547-8f45f776aaf1/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=\ngithub.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=\ngithub.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=\ngithub.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=\ngithub.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=\ngithub.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=\ngithub.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=\ngithub.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc=\ngithub.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg=\ngithub.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks=\ngithub.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A=\ngithub.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw=\ngithub.com/google/btree v0.0.0-20160524151835-7d79101e329e/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=\ngithub.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=\ngithub.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=\ngithub.com/google/flatbuffers v1.10.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=\ngithub.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=\ngithub.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=\ngithub.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=\ngithub.com/google/go-querystring v0.0.0-20170111101155-53e6ce116135/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=\ngithub.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=\ngithub.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=\ngithub.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=\ngithub.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=\ngithub.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=\ngithub.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=\ngithub.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=\ngithub.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=\ngithub.com/google/uuid v0.0.0-20170306145142-6a5e28554805/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=\ngithub.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=\ngithub.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg=\ngithub.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=\ngithub.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=\ngithub.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=\ngithub.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=\ngithub.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU=\ngithub.com/gophercloud/gophercloud v0.0.0-20180828235145-f29afc2cceca/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4=\ngithub.com/gophercloud/gophercloud v0.0.0-20190126172459-c818fa66e4c8/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4=\ngithub.com/gophercloud/gophercloud v0.0.0-20190307220656-fe1ba5ce12dd/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=\ngithub.com/gophercloud/gophercloud v0.6.0/go.mod h1:GICNByuaEBibcjmjvI7QvYJSZEbGkcYwAR7EZK2WMqM=\ngithub.com/gopherjs/gopherjs v0.0.0-20180825215210-0210a2f0f73c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=\ngithub.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=\ngithub.com/goreleaser/goreleaser v0.94.0/go.mod h1:OjbYR2NhOI6AEUWCowMSBzo9nP1aRif3sYtx+rhp+Zo=\ngithub.com/goreleaser/nfpm v0.9.7/go.mod h1:F2yzin6cBAL9gb+mSiReuXdsfTrOQwDMsuSpULof+y4=\ngithub.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=\ngithub.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/mux v1.7.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1/go.mod h1:YeAe0gNeiNT5hoiZRI4yiOky6jVdNvfO2N6Kav/HmxY=\ngithub.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=\ngithub.com/gorilla/sessions v1.1.2/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w=\ngithub.com/gorilla/sessions v1.1.3/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w=\ngithub.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=\ngithub.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=\ngithub.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=\ngithub.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=\ngithub.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=\ngithub.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=\ngithub.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=\ngithub.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=\ngithub.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=\ngithub.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=\ngithub.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw=\ngithub.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=\ngithub.com/grpc-ecosystem/grpc-gateway v1.9.2/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=\ngithub.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=\ngithub.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=\ngithub.com/hashicorp/consul v1.6.2/go.mod h1:kZmEKWDGa47nEdLEbvJyh14uTBpG37Wo6N39Vfpo7uE=\ngithub.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=\ngithub.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=\ngithub.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=\ngithub.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=\ngithub.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=\ngithub.com/hashicorp/go-bexpr v0.1.2/go.mod h1:ANbpTX1oAql27TZkKVeW8p1w8NTdnyzPe/0qqPCKohU=\ngithub.com/hashicorp/go-checkpoint v0.0.0-20171009173528-1545e56e46de/go.mod h1:xIwEieBHERyEvaeKF/TcHh1Hu+lxPM+n2vT1+g9I4m4=\ngithub.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg=\ngithub.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=\ngithub.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=\ngithub.com/hashicorp/go-discover v0.0.0-20190403160810-22221edb15cd/go.mod h1:ueUgD9BeIocT7QNuvxSyJyPAM9dfifBcaWmeybb67OY=\ngithub.com/hashicorp/go-discover v0.0.0-20190905142513-34a650575f6c/go.mod h1:FTV98wIi2RF5iDl1iLR/cB+no+B//ODP6133EcC9djw=\ngithub.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI=\ngithub.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=\ngithub.com/hashicorp/go-hclog v0.9.1/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=\ngithub.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=\ngithub.com/hashicorp/go-hclog v0.10.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=\ngithub.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=\ngithub.com/hashicorp/go-immutable-radix v1.1.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=\ngithub.com/hashicorp/go-memdb v0.0.0-20180223233045-1289e7fffe71/go.mod h1:kbfItVoBJwCfKXDXN4YoAXjxcFVZ7MRrJzyTX6H4giE=\ngithub.com/hashicorp/go-memdb v1.0.4/go.mod h1:LWQ8R70vPrS4OEY9k28D2z8/Zzyu34NVzeRibGAzHO0=\ngithub.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=\ngithub.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=\ngithub.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=\ngithub.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY=\ngithub.com/hashicorp/go-raftchunking v0.6.1/go.mod h1:cGlg3JtDy7qy6c/3Bu660Mic1JF+7lWqIwCFSb08fX0=\ngithub.com/hashicorp/go-raftchunking v0.6.2/go.mod h1:cGlg3JtDy7qy6c/3Bu660Mic1JF+7lWqIwCFSb08fX0=\ngithub.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=\ngithub.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=\ngithub.com/hashicorp/go-retryablehttp v0.6.3/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=\ngithub.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=\ngithub.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=\ngithub.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=\ngithub.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A=\ngithub.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=\ngithub.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=\ngithub.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=\ngithub.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=\ngithub.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=\ngithub.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=\ngithub.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=\ngithub.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=\ngithub.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=\ngithub.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=\ngithub.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=\ngithub.com/hashicorp/hil v0.0.0-20160711231837-1e86c6b523c5/go.mod h1:KHvg/R2/dPtaePb16oW4qIyzkMxXOL38xjRN64adsts=\ngithub.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE=\ngithub.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=\ngithub.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=\ngithub.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY=\ngithub.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=\ngithub.com/hashicorp/memberlist v0.1.5/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=\ngithub.com/hashicorp/net-rpc-msgpackrpc v0.0.0-20151116020338-a14192a58a69/go.mod h1:/z+jUGRBlwVpUZfjute9jWaF6/HuhjuFQuL1YXzVD1Q=\ngithub.com/hashicorp/raft v1.1.0/go.mod h1:4Ak7FSPnuvmb0GV6vgIAJ4vYT4bek9bb6Q+7HVbyzqM=\ngithub.com/hashicorp/raft v1.1.1/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8=\ngithub.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea/go.mod h1:pNv7Wc3ycL6F5oOWn+tPGo2gWD4a5X+yp/ntwdKLjRk=\ngithub.com/hashicorp/raft-boltdb v0.0.0-20191021154308-4207f1bf0617/go.mod h1:aUF6HQr8+t3FC/ZHAC+pZreUBhTaxumuu3L+d37uRxk=\ngithub.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=\ngithub.com/hashicorp/serf v0.8.5/go.mod h1:UpNcs7fFbpKIyZaUuSW6EPiH+eZC7OuyFD+wc1oal+k=\ngithub.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q=\ngithub.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M=\ngithub.com/hashicorp/vic v1.5.1-0.20190403131502-bbfe86ec9443/go.mod h1:bEpDU35nTu0ey1EXjwNwPjI9xErAsoOCmcMb9GKvyxo=\ngithub.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=\ngithub.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=\ngithub.com/hashicorp/yamux v0.0.0-20190923154419-df201c70410d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=\ngithub.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=\ngithub.com/hudl/fargo v1.2.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=\ngithub.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=\ngithub.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/inconshreveable/log15 v0.0.0-20180818164646-67afb5ed74ec/go.mod h1:cOaXtrgN4ScfRrD9Bre7U1thNq5RtJ8ZoP4iXVGRj6o=\ngithub.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=\ngithub.com/influxdata/flux v0.34.1/go.mod h1:GvaTIeU904jG5Q7kwsfPFyXD61I7eSSGO30p+y0XOmk=\ngithub.com/influxdata/influxdb v1.7.6/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY=\ngithub.com/influxdata/influxql v1.0.0/go.mod h1:KpVI7okXjK6PRi3Z5B+mtKZli+R1DnZgb3N+tzevNgo=\ngithub.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE=\ngithub.com/influxdata/roaring v0.4.12/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE=\ngithub.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0=\ngithub.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po=\ngithub.com/infobloxopen/go-trees v0.0.0-20190313150506-2af4e13f9062/go.mod h1:PcNJqIlcX/dj3DTG/+QQnRvSgTMG6CLpRMjWcv4+J6w=\ngithub.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ=\ngithub.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=\ngithub.com/jackc/pgx v3.3.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=\ngithub.com/jarcoal/httpmock v0.0.0-20180424175123-9c70cfe4a1da/go.mod h1:ks+b9deReOc7jgqp+e7LuFiCBH6Rm5hL32cLcEAArb4=\ngithub.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=\ngithub.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=\ngithub.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=\ngithub.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8=\ngithub.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=\ngithub.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=\ngithub.com/jmoiron/sqlx v0.0.0-20180614180643-0dae4fefe7c0/go.mod h1:IiEW3SEiiErVyFdH8NTuWjSifiEQKUoyK3LNqr2kCHU=\ngithub.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=\ngithub.com/joho/godotenv v1.2.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=\ngithub.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=\ngithub.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=\ngithub.com/joyent/triton-go v0.0.0-20180628001255-830d2b111e62/go.mod h1:U+RSyWxWd04xTqnuOQxnai7XGS2PrPY2cfGoDKtMHjA=\ngithub.com/joyent/triton-go v1.7.0/go.mod h1:zCt/it+QSYSRfzGPKw2zKK9pg3XqS3OoDoKjvOSOjJQ=\ngithub.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0=\ngithub.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=\ngithub.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=\ngithub.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=\ngithub.com/jsternberg/zap-logfmt v1.2.0/go.mod h1:kz+1CUmCutPWABnNkOu9hOHKdT2q3TDYCcsFy9hpqb0=\ngithub.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=\ngithub.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=\ngithub.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=\ngithub.com/jung-kurt/gofpdf v1.5.1/go.mod h1:oIiEpiXAwTUssrFUGgVj4SO17oiCYsfnTjeQZz/amnM=\ngithub.com/justinas/alice v0.0.0-20171023064455-03f45bd4b7da/go.mod h1:oLH0CmIaxCGXD67VKGR5AacGXZSMznlmeqM8RzPrcY8=\ngithub.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0=\ngithub.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=\ngithub.com/karrick/godirwalk v1.7.7/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=\ngithub.com/karrick/godirwalk v1.7.8/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=\ngithub.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=\ngithub.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=\ngithub.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=\ngithub.com/kevinburke/ssh_config v0.0.0-20180830205328-81db2a75821e/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=\ngithub.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=\ngithub.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=\ngithub.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=\ngithub.com/klauspost/compress v1.7.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=\ngithub.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=\ngithub.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=\ngithub.com/klauspost/pgzip v1.2.1/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=\ngithub.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=\ngithub.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=\ngithub.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=\ngithub.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=\ngithub.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=\ngithub.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=\ngithub.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=\ngithub.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=\ngithub.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=\ngithub.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=\ngithub.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=\ngithub.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=\ngithub.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=\ngithub.com/lightstep/lightstep-tracer-go v0.16.0/go.mod h1:6AMpwZpsyCFwSovxzM78e+AsYxE8sGwiM6C3TytaWeI=\ngithub.com/linode/linodego v0.7.1/go.mod h1:ga11n3ivecUrPCHN0rANxKmfWBJVkOXfLMZinAbj2sY=\ngithub.com/linode/linodego v0.12.0/go.mod h1:cQFzVqVu5KeFy2ZSTWTA/qVNYYa9ZY8uePJZsFG7EYs=\ngithub.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04=\ngithub.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk=\ngithub.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao=\ngithub.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58=\ngithub.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=\ngithub.com/magicsea/ganet v0.0.0-20200721080758-d33e58ea37d8 h1:iN13kQxCzDfV739aBQ0hXhJb2+oBi3CPmFCaQpVcx5Q=\ngithub.com/magicsea/ganet v0.0.0-20200721080758-d33e58ea37d8/go.mod h1:cPIqHZJ4Xb2n5x1p0EV66o9LS60hW/PUUSYwSZDfbhE=\ngithub.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=\ngithub.com/markbates/deplist v1.0.4/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM=\ngithub.com/markbates/deplist v1.0.5/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM=\ngithub.com/markbates/deplist v1.1.3/go.mod h1:BF7ioVzAJYEtzQN/os4rt8H8Ti3h0T7EoN+7eyALktE=\ngithub.com/markbates/deplist v1.2.0/go.mod h1:dtsWLZ5bWoazbM0rCxZncQaAPifWbvHgBJk8UNI1Yfk=\ngithub.com/markbates/going v1.0.2/go.mod h1:UWCk3zm0UKefHZ7l8BNqi26UyiEMniznk8naLdTcy6c=\ngithub.com/markbates/going v1.0.3/go.mod h1:fQiT6v6yQar9UD6bd/D4Z5Afbk9J6BBVBtLiyY4gp2o=\ngithub.com/markbates/grift v1.0.4/go.mod h1:wbmtW74veyx+cgfwFhlnnMWqhoz55rnHR47oMXzsyVs=\ngithub.com/markbates/grift v1.0.5/go.mod h1:EHmVIjOQoj/OOBDzlZ8RW0ZkvOtQ4xRHjrPvmfoiFaU=\ngithub.com/markbates/grift v1.0.6/go.mod h1:2AUYA/+pODhwonRbYwsltPVPIztBzw5nIJEGiWgKMPM=\ngithub.com/markbates/hmax v1.0.0/go.mod h1:cOkR9dktiESxIMu+65oc/r/bdY4bE8zZw3OLhLx0X2c=\ngithub.com/markbates/hmax v1.1.0/go.mod h1:hhn8pJiRwNTEmNlxhfiTbL+CtEYiAX3wuhSf/kg/6wI=\ngithub.com/markbates/inflect v1.0.0/go.mod h1:oTeZL2KHA7CUX6X+fovmK9OvIOFuqu0TwdQrZjLTh88=\ngithub.com/markbates/inflect v1.0.1/go.mod h1:uv3UVNBe5qBIfCm8O8Q+DW+S1EopeyINj+Ikhc7rnCk=\ngithub.com/markbates/inflect v1.0.3/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs=\ngithub.com/markbates/inflect v1.0.4/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs=\ngithub.com/markbates/oncer v0.0.0-20180924031910-e862a676800b/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/oncer v0.0.0-20180924034138-723ad0170a46/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/oncer v0.0.0-20181014194634-05fccaae8fc4/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/refresh v1.4.10/go.mod h1:NDPHvotuZmTmesXxr95C9bjlw1/0frJwtME2dzcVKhc=\ngithub.com/markbates/refresh v1.4.11/go.mod h1:awpJuyo4zgexB/JaHfmBX0sRdvOjo2dXwIayWIz9i3g=\ngithub.com/markbates/refresh v1.5.0/go.mod h1:ZYMLkxV+x7wXQ2Xd7bXAPyF0EXiEWAMfiy/4URYb1+M=\ngithub.com/markbates/refresh v1.6.0/go.mod h1:p8jWGABFUaFf/cSw0pxbo0MQVujiz5NTQ0bmCHLC4ac=\ngithub.com/markbates/refresh v1.7.1/go.mod h1:hcGVJc3m5EeskliwSVJxcTHzUtMz2h8gBtCS0V94CgE=\ngithub.com/markbates/safe v1.0.0/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=\ngithub.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=\ngithub.com/markbates/sigtx v1.0.0/go.mod h1:QF1Hv6Ic6Ca6W+T+DL0Y/ypborFKyvUY9HmuCD4VeTc=\ngithub.com/markbates/willie v1.0.9/go.mod h1:fsrFVWl91+gXpx/6dv715j7i11fYPfZ9ZGfH0DQzY7w=\ngithub.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk=\ngithub.com/martini-contrib/render v0.0.0-20150707142108-ec18f8345a11/go.mod h1:Ah2dBMoxZEqk118as2T4u4fjfXarE0pPnMJaArZQZsI=\ngithub.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=\ngithub.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=\ngithub.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=\ngithub.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=\ngithub.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=\ngithub.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=\ngithub.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=\ngithub.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=\ngithub.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=\ngithub.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=\ngithub.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=\ngithub.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=\ngithub.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE=\ngithub.com/mattn/go-zglob v0.0.0-20171230104132-4959821b4817/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo=\ngithub.com/mattn/go-zglob v0.0.0-20180803001819-2ea3427bfa53/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo=\ngithub.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=\ngithub.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY=\ngithub.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=\ngithub.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc=\ngithub.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=\ngithub.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=\ngithub.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=\ngithub.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=\ngithub.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=\ngithub.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=\ngithub.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=\ngithub.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=\ngithub.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=\ngithub.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=\ngithub.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=\ngithub.com/mitchellh/hashstructure v0.0.0-20170609045927-2bca23e0e452/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ=\ngithub.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ=\ngithub.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=\ngithub.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=\ngithub.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=\ngithub.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=\ngithub.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=\ngithub.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=\ngithub.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGEJq24YyJ2ban8EO0RUVSJlF1pGsEvoLEACr/Q=\ngithub.com/monoculum/formam v0.0.0-20190307031628-bc555adff0cd/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc=\ngithub.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=\ngithub.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=\ngithub.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=\ngithub.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0=\ngithub.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E=\ngithub.com/nats-io/go-nats v1.7.2/go.mod h1:+t7RHT5ApZebkrQdnn6AhQJmhJJiKAvJUio1PiiCtj0=\ngithub.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4=\ngithub.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=\ngithub.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU=\ngithub.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo=\ngithub.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM=\ngithub.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q=\ngithub.com/nicolai86/scaleway-sdk v1.10.2-0.20180628010248-798f60e20bb2/go.mod h1:TLb2Sg7HQcgGdloNxkrmtgDNR9uVYF3lfdFIN4Ro6Sk=\ngithub.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=\ngithub.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=\ngithub.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=\ngithub.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=\ngithub.com/olekukonko/tablewriter v0.0.0-20180130162743-b8a9be070da4/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=\ngithub.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=\ngithub.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=\ngithub.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=\ngithub.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis=\ngithub.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=\ngithub.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=\ngithub.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=\ngithub.com/openzipkin-contrib/zipkin-go-opentracing v0.3.5/go.mod h1:uVHyebswE1cCXr2A73cRM2frx5ld1RJUCJkFNZ90ZiI=\ngithub.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8=\ngithub.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=\ngithub.com/orcaman/concurrent-map v0.0.0-20190107190726-7ed82d9cb717 h1:2v7IYkog9ZFN04bv5hkwjpyHkc6wujPPOVYDPp2rfwA=\ngithub.com/orcaman/concurrent-map v0.0.0-20190107190726-7ed82d9cb717/go.mod h1:Lu3tH6HLW3feq74c2GC+jIMS/K2CFcDWnWD9XkenwhI=\ngithub.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0=\ngithub.com/packethost/packngo v0.1.1-0.20180711074735-b9cb5096f54c/go.mod h1:otzZQXgoO96RTzDB/Hycg0qZcXZsWJGJRSXbmEIJ+4M=\ngithub.com/packethost/packngo v0.2.0/go.mod h1:RQHg5xR1F614BwJyepfMqrKN+32IH0i7yX+ey43rEeQ=\ngithub.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=\ngithub.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=\ngithub.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE=\ngithub.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=\ngithub.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo=\ngithub.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=\ngithub.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=\ngithub.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=\ngithub.com/peterh/liner v1.1.0/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0=\ngithub.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=\ngithub.com/phpdave11/gofpdi v1.0.3/go.mod h1:B7ryN7q4MLItB8BDM5PJAplblJegAAcaI98viOZUihg=\ngithub.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=\ngithub.com/pierrec/lz4 v2.3.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=\ngithub.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=\ngithub.com/pkg/sftp v1.10.0/go.mod h1:NxmoDg/QLVWluQDUYG7XBZTLUpKeFa8e3aMf1BfjyHk=\ngithub.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ=\ngithub.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=\ngithub.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=\ngithub.com/pressly/chi v4.0.2+incompatible/go.mod h1:s/kslmeFE633XtTPvfX2olbs4ymzIHxGGXmEJ/AvPT8=\ngithub.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=\ngithub.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=\ngithub.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM=\ngithub.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=\ngithub.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=\ngithub.com/prometheus/client_golang v1.2.1/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U=\ngithub.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=\ngithub.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=\ngithub.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=\ngithub.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=\ngithub.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=\ngithub.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=\ngithub.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=\ngithub.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=\ngithub.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=\ngithub.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=\ngithub.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=\ngithub.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=\ngithub.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=\ngithub.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=\ngithub.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=\ngithub.com/prometheus/procfs v0.0.7/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=\ngithub.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=\ngithub.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=\ngithub.com/remyoudompheng/bigfft v0.0.0-20190512091148-babf20351dd7/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=\ngithub.com/renier/xmlrpc v0.0.0-20170708154548-ce4a1a486c03/go.mod h1:gRAiPF5C5Nd0eyyRdqIu9qTiFSoZzpTq727b5B8fkkU=\ngithub.com/renier/xmlrpc v0.0.0-20191022213033-ce560eccbd00/go.mod h1:gRAiPF5C5Nd0eyyRdqIu9qTiFSoZzpTq727b5B8fkkU=\ngithub.com/retailnext/hllpp v1.0.0/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc=\ngithub.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=\ngithub.com/rogpeppe/go-internal v1.0.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=\ngithub.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=\ngithub.com/rs/zerolog v1.4.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=\ngithub.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=\ngithub.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=\ngithub.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w=\ngithub.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk=\ngithub.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=\ngithub.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=\ngithub.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=\ngithub.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=\ngithub.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=\ngithub.com/sean-/conswriter v0.0.0-20180208195008-f5ae3917a627/go.mod h1:7zjs06qF79/FKAJpBvFx3P8Ww4UTIMAe+lpNXDHziac=\ngithub.com/sean-/pager v0.0.0-20180208200047-666be9bf53b5/go.mod h1:BeybITEsBEg6qbIiqJ6/Bqeq25bCLbL7YFmpaFfJDuM=\ngithub.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=\ngithub.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo=\ngithub.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs=\ngithub.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=\ngithub.com/serialx/hashring v0.0.0-20180504054112-49a4782e9908/go.mod h1:/yeG0My1xr/u+HZrFQ1tOQQQQrOawfyMUH13ai5brBc=\ngithub.com/shirou/gopsutil v0.0.0-20181107111621-48177ef5f880/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=\ngithub.com/shirou/gopsutil v2.19.10+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=\ngithub.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=\ngithub.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=\ngithub.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY=\ngithub.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM=\ngithub.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0=\ngithub.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=\ngithub.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=\ngithub.com/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw=\ngithub.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c/go.mod h1:8d3azKNyqcHP1GaQE/c6dDgjkgSx2BZ4IoEi4F1reUI=\ngithub.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU=\ngithub.com/shurcooL/highlight_go v0.0.0-20170515013102-78fb10f4a5f8/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag=\ngithub.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag=\ngithub.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9/go.mod h1:+rgNQw2P9ARFAs37qieuu7ohDNQ3gds9msbT2yn85sg=\ngithub.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50/go.mod h1:zPn1wHpTIePGnXSHpsVPWEktKXHr6+SS6x/IKRb7cpw=\ngithub.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc/go.mod h1:aYMfkZ6DWSJPJ6c4Wwz3QtW22G7mf/PEgaB9k/ik5+Y=\ngithub.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=\ngithub.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9/go.mod h1:919LwcH0M7/W4fcZ0/jy0qGght1GIhqyS/EgWGH2j5Q=\ngithub.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191/go.mod h1:e2qWDig5bLteJ4fwvDAc2NHzqFEthkqn7aOZAOpj+PQ=\ngithub.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241/go.mod h1:NPpHK2TI7iSaM0buivtFUc9offApnI0Alt/K8hcHy0I=\ngithub.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122/go.mod h1:b5uSkrEVM1jQUspwbixRBhaIjIzL2xazXp6kntxYle0=\ngithub.com/shurcooL/octicon v0.0.0-20180602230221-c42b0e3b24d9/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ=\ngithub.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ=\ngithub.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82/go.mod h1:TCR1lToEk4d2s07G3XGfz2QrgHXg4RJBvjrOozvoWfk=\ngithub.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=\ngithub.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4=\ngithub.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw=\ngithub.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=\ngithub.com/sirupsen/logrus v1.1.0/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A=\ngithub.com/sirupsen/logrus v1.1.1/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A=\ngithub.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=\ngithub.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=\ngithub.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=\ngithub.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=\ngithub.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=\ngithub.com/smartystreets/assertions v0.0.0-20180820201707-7c9eb446e3cf/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=\ngithub.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM=\ngithub.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=\ngithub.com/softlayer/softlayer-go v0.0.0-20180806151055-260589d94c7d/go.mod h1:Cw4GTlQccdRGSEf6KiMju767x0NEHE0YIVPJSaXjlsw=\ngithub.com/softlayer/softlayer-go v1.0.0/go.mod h1:Cw4GTlQccdRGSEf6KiMju767x0NEHE0YIVPJSaXjlsw=\ngithub.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=\ngithub.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=\ngithub.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE=\ngithub.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA=\ngithub.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=\ngithub.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=\ngithub.com/spf13/afero v1.2.0/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=\ngithub.com/spf13/afero v1.2.1/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=\ngithub.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=\ngithub.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg=\ngithub.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=\ngithub.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=\ngithub.com/spf13/cobra v0.0.4/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=\ngithub.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=\ngithub.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=\ngithub.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/spf13/viper v1.2.1/go.mod h1:P4AexN0a+C9tGAnUFNwDMYYZv3pjFuvmeiMyKRaNVlI=\ngithub.com/spf13/viper v1.3.0/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=\ngithub.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=\ngithub.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=\ngithub.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=\ngithub.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI=\ngithub.com/stathat/go v1.0.0/go.mod h1:+9Eg2szqkcOGWv6gfheJmBBsmq9Qf5KDbzy8/aYYR0c=\ngithub.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=\ngithub.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=\ngithub.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=\ngithub.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=\ngithub.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=\ngithub.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=\ngithub.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=\ngithub.com/tent/http-link-go v0.0.0-20130702225549-ac974c61c2f9/go.mod h1:RHkNRtSLfOK7qBTHaeSX1D6BNpI3qw7NTxsmNr4RvN8=\ngithub.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=\ngithub.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2/go.mod h1:WjeM0Oo1eNAjXGDx2yma7uG2XoyRZTq1uv3M/o7imD0=\ngithub.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPfx6jb1bBgRFjl5lytqVqZXEaeqWP8lTEao=\ngithub.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4=\ngithub.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=\ngithub.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=\ngithub.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31/go.mod h1:onvgF043R+lC5RZ8IT9rBXDaEDnpnw/Cl+HFiw+v/7Q=\ngithub.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=\ngithub.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=\ngithub.com/uber/jaeger-lib v1.5.0/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=\ngithub.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=\ngithub.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=\ngithub.com/unrolled/secure v0.0.0-20180918153822-f340ee86eb8b/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/unrolled/secure v0.0.0-20181005190816-ff9db2ff917f/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/unrolled/secure v0.0.0-20181022170031-4b6b7cf51606/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/unrolled/secure v0.0.0-20190103195806-76e6d4e9b90c/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=\ngithub.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=\ngithub.com/vmware/govmomi v0.18.0/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU=\ngithub.com/vmware/govmomi v0.21.0/go.mod h1:zbnFoBQ9GIjs2RVETy8CNEpb+L+Lwkjs3XZUL0B3/m0=\ngithub.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728/go.mod h1:x9oS4Wk2s2u4tS29nEaDLdzvuHdB19CvSGJjPgkZJNk=\ngithub.com/xanzy/ssh-agent v0.2.0/go.mod h1:0NyE30eGUDliuLEHJgYte/zncp2zdTStcOnWhgSqHD8=\ngithub.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=\ngithub.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=\ngithub.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=\ngithub.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=\ngo.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=\ngo.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=\ngo.etcd.io/etcd v0.5.0-alpha.5.0.20190917205325-a14579fbfb1a/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=\ngo.etcd.io/etcd v3.3.13+incompatible/go.mod h1:yaeTdrJi5lOmYerz05bd8+V7KubZs8YSFZfzsF9A6aI=\ngo.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA=\ngo.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=\ngo.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=\ngo.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=\ngo.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=\ngo.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=\ngo.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=\ngo.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=\ngo.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=\ngo4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE=\ngolang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw=\ngolang.org/x/build v0.0.0-20190626175840-54405f243e45/go.mod h1:fYw7AShPAhGMdXqA9gRadk/CcMsvLlClpE5oBwnS3dM=\ngolang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20180910181607-0e37d006457b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181015023909-0c41d7ab0a0e/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181024171144-74cb1d3d52f4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181025113841-85e1b3f9139a/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181025213731-e84da0312774/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181106171534-e4dc69e5b2fd/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190122013713-64072686203f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190130090550-b01c7a725664/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190403202508-8e1b8d32e692/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190424203555-c05e17bb3b2d/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=\ngolang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20191117063200-497ca9f6d64f/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=\ngolang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20181112044915-a3060d491354/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=\ngolang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=\ngolang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=\ngolang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=\ngolang.org/x/image v0.0.0-20190507092727-e4e5bf290fec/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=\ngolang.org/x/image v0.0.0-20190622003408-7e034cad6442/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=\ngolang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=\ngolang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=\ngolang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=\ngolang.org/x/mobile v0.0.0-20190607214518-6fa95d984e88/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=\ngolang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=\ngolang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=\ngolang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=\ngolang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180611182652-db08ff08e862/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180816102801-aaf60122140d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180921000356-2f5d2388922f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180926154720-4dfa2610cdf3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181017193950-04a2e542c03f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181029044818-c44066c5c816/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181108082009-03003ca0c849/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181207154023-610586996380/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181213202711-891ebc4b82d6/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190119204137-ed066c81e75e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190206173232-65e2d4e15006/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190502183928-7f726cade0ab/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190514140710-3ec191127204/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=\ngolang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=\ngolang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20191003171128-d98b1b443823/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20191116160921-f9c825593386/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/oauth2 v0.0.0-20170807180024-9a379c6b3e95/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=\ngolang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=\ngolang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=\ngolang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=\ngolang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180903190138-2b024373dcd9/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180906133057-8cf3aee42992/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180921163948-d47a0f339242/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180927150500-dad3d9fb7b6e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181005133103-4497e2df6f9e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181011152604-fa43e7bc11ba/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181019084534-8f1d3d21f81b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181022134430-8a28ead16f52/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181024145615-5cd93ef61a7c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181025063200-d989b31c8746/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181026064943-731415f00dce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181030150119-7e31e0c00fa0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181106135930-3a76605856fd/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181206074257-70b957f3b65e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181213150753-586ba8c9bb14/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181213200352-4d1cda033e06/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190116161447-11f53e031339/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190122071731-054c452bb702/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190220154126-629670e5acc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190508220229-2d0786266e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190523142557-0e01d883c5c5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191118013547-6254a7c3cac6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=\ngolang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=\ngolang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181003024731-2f84ea8ef872/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181006002542-f60d9635b16a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181008205924-a2b3f7f249e9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181013182035-5e66757b835f/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181017214349-06f26fdaaa28/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181019005945-6adeb8aab2de/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181024171208-a2dc47679d30/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181026183834-f60e5f99f081/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181030151751-bb28844c46df/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181102223251-96e9e165b75e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181105230042-78dc5bac0cac/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181107215632-34b416bd17b3/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181109152631-138c20b93253/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181109202920-92d8274bd7b8/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181111003725-6d71ab8aade0/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181114190951-94339b83286c/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181119130350-139d099f6620/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181120060634-fc4f04983f62/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181122213734-04b5d21e00f1/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181127195227-b4e97c0ed882/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181127232545-e782529d0ddd/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181201035826-d0ca3933b724/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181203210056-e5f3ab76ea4b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181205224935-3576414c54a4/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181206194817-bcd4e47d0288/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181207183836-8bc39b988060/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181212172921-837e80568c09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181213190329-bbccd8cae4a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181221154417-3ad2d988d5e2/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190102213336-ca9055ed7d04/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190104182027-498d95493402/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190111214448-fc1d57b08d7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190118193359-16909d206f00/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190122202912-9c309ee22fab/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190124004107-78ee07aa9465/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190131142011-8dbcc66f33bb/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190206221403-44bcb96178d3/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190214204934-8dcb7bc8c7fe/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44=\ngolang.org/x/tools v0.0.0-20190219135230-f000d56b39dc/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44=\ngolang.org/x/tools v0.0.0-20190219185102-9394956cfdc5/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44=\ngolang.org/x/tools v0.0.0-20190221204921-83362c3779f5/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=\ngolang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=\ngolang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190315044204-8b67d361bba2/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190318200714-bb1270c20edf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190404132500-923d25813098/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190407030857-0fdf0c73855b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20190603152906-08e0b306e832/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190603231351-8aaa1484dc10/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190613204242-ed0dc450797f/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190624190245-7f2218787638/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190626204024-7ef8a99cf38d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=\ngonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=\ngoogle.golang.org/api v0.0.0-20180829000535-087779f1d2c9/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=\ngoogle.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=\ngoogle.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=\ngoogle.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y=\ngoogle.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=\ngoogle.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=\ngoogle.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=\ngoogle.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=\ngoogle.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=\ngoogle.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=\ngoogle.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=\ngoogle.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=\ngoogle.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=\ngoogle.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg=\ngoogle.golang.org/genproto v0.0.0-20190201180003-4b09977fb922/go.mod h1:L3J43x8/uS+qIUoksaLKe6OS3nUKxOKuIFz1sl2/jx4=\ngoogle.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=\ngoogle.golang.org/genproto v0.0.0-20190626174449-989357319d63/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=\ngoogle.golang.org/genproto v0.0.0-20190701230453-710ae3a149df/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=\ngoogle.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=\ngoogle.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=\ngoogle.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=\ngoogle.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=\ngoogle.golang.org/genproto v0.0.0-20191115221424-83cc0476cb11/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=\ngoogle.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=\ngoogle.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio=\ngoogle.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=\ngoogle.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=\ngoogle.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=\ngoogle.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=\ngoogle.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=\ngoogle.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=\ngoogle.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=\ngoogle.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=\ngopkg.in/DataDog/dd-trace-go.v1 v1.19.0/go.mod h1:DVp8HmDh8PuTu2Z0fVVlBsyWaC++fzwVCaGWylTe3tg=\ngopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=\ngopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=\ngopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=\ngopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=\ngopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=\ngopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=\ngopkg.in/couchbase/gocbcore.v7 v7.1.11/go.mod h1:48d2Be0MxRtsyuvn+mWzqmoGUG9uA00ghopzOs148/E=\ngopkg.in/couchbaselabs/gocbconnstr.v1 v1.0.2/go.mod h1:ZjII0iKx4Veo6N6da+pEZu/ptNyKLg9QTVt7fFmR6sw=\ngopkg.in/couchbaselabs/jsonx.v1 v1.0.0/go.mod h1:oR201IRovxvLW/eISevH12/+MiKHtNQAKfcX8iWZvJY=\ngopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=\ngopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=\ngopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=\ngopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo=\ngopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=\ngopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=\ngopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw=\ngopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s=\ngopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=\ngopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=\ngopkg.in/mail.v2 v2.0.0-20180731213649-a0242b2233b4/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw=\ngopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U=\ngopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=\ngopkg.in/resty.v1 v1.9.1/go.mod h1:vo52Hzryw9PnPHcJfPsBiFW62XhNx5OczbV9y+IMpgc=\ngopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=\ngopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=\ngopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=\ngopkg.in/square/go-jose.v2 v2.4.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=\ngopkg.in/src-d/go-billy.v4 v4.2.1/go.mod h1:tm33zBoOwxjYHZIE+OV8bxTWFMJLrconzFMd38aARFk=\ngopkg.in/src-d/go-git-fixtures.v3 v3.1.1/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g=\ngopkg.in/src-d/go-git.v4 v4.8.1/go.mod h1:Vtut8izDyrM8BUVQnzJ+YvmNcem2J89EmfZYCkLokZk=\ngopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=\ngopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0=\ngopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=\ngopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg=\ngopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=\ngopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.5 h1:ymVxjfMaHvXD8RqPRmzHHsB3VvucivSkIAvJFDI5O3c=\ngopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngrpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o=\nhonnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20181108184350-ae8f1f9103cc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=\nistio.io/gogo-genproto v0.0.0-20190124151557-6d926a6e6feb/go.mod h1:eIDJ6jNk/IeJz6ODSksHl5Aiczy5JUq6vFhJWI5OtiI=\nk8s.io/api v0.0.0-20180806132203-61b11ee65332/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA=\nk8s.io/api v0.0.0-20190325185214-7544f9db76f6/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA=\nk8s.io/api v0.0.0-20190620084959-7cf5895f2711/go.mod h1:TBhBqb1AWbBQbW3XRusr7n7E4v2+5ZY8r8sAMnyFC5A=\nk8s.io/api v0.0.0-20191115135540-bbc9463b57e5/go.mod h1:iA/8arsvelvo4IDqIhX4IbjTEKBGgvsf2OraTuRtLFU=\nk8s.io/apimachinery v0.0.0-20180821005732-488889b0007f/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0=\nk8s.io/apimachinery v0.0.0-20190223001710-c182ff3b9841/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0=\nk8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719/go.mod h1:I4A+glKBHiTgiEjQiCCQfCAIcIMFGt291SmsvcrFzJA=\nk8s.io/apimachinery v0.0.0-20191115015347-3c7067801da2/go.mod h1:dXFS2zaQR8fyzuvRdJDHw2Aerij/yVGJSre0bZQSVJA=\nk8s.io/apimachinery v0.0.0-20191116203941-08e4eafd6d11/go.mod h1:dXFS2zaQR8fyzuvRdJDHw2Aerij/yVGJSre0bZQSVJA=\nk8s.io/client-go v0.0.0-20190620085101-78d2af792bab/go.mod h1:E95RaSlHr79aHaX0aGSwcPNfygDiPKOVXdmivCIZT0k=\nk8s.io/client-go v8.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=\nk8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=\nk8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=\nk8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=\nk8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=\nk8s.io/klog v0.3.1/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=\nk8s.io/klog v0.4.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=\nk8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=\nk8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc=\nk8s.io/kube-openapi v0.0.0-20190306001800-15615b16d372/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc=\nk8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=\nk8s.io/utils v0.0.0-20190221042446-c2654d5206da/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0=\nk8s.io/utils v0.0.0-20190529001817-6999998975a7/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=\nk8s.io/utils v0.0.0-20191114200735-6ca3b61696b6/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=\nrsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=\nsigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=\nsigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=\nsourcegraph.com/sourcegraph/appdash v0.0.0-20190107175209-d9ea5c54f7dc/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=\nsourcegraph.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67/go.mod h1:L5q+DGLGOQFpo1snNEkLOJT2d1YTW66rWNzatr3He1k=\nsourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck=\nsourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0=\n"
  },
  {
    "path": "server/src/Robot/robotTest/_run.cmd",
    "content": "robotTest.exe -u=magicse_1 -net=ws -proto=pb"
  },
  {
    "path": "server/src/Robot/robotTest/agent.go",
    "content": "package main\n\nimport (\n\t\"github.com/magicsea/ganet/network\"\n\t//\t\"io/ioutil\"\n\t\"log\"\n\t//\t\"net/http\"\n\t//\t\"github.com/magicsea/ganet/network/protobuf\"\n\t//\t\"github.com/gogo/protobuf/proto\"\n\t\"encoding/json\"\n)\n\ntype JsData struct {\n\tId  string `json:Id`\n\tMsg string `json:Msg`\n}\n\nfunc newAgent(conn network.Conn) network.Agent {\n\tClient := new(Agent)\n\tClient.conn = conn\n\treturn Client\n}\n\ntype Agent struct {\n\tconn      network.Conn\n\tmsgHandle func(channel byte, msgId interface{}, data []byte)\n}\n\nfunc (a *Agent) Run() {\n\tlog.Println(\"Agent.run\")\n\tfor {\n\t\tdata, err := a.conn.ReadMsg()\n\t\tif err != nil {\n\t\t\tlog.Println(\"read message: \", err)\n\t\t\tbreak\n\t\t}\n\t\tvar jd = new(JsData)\n\t\terrUm := json.Unmarshal(data, jd)\n\t\tif errUm != nil {\n\t\t\tlog.Println(\"Unmarshal fail:\", errUm)\n\t\t\tbreak\n\t\t}\n\t\ta.msgHandle(0, jd.Id, []byte(jd.Msg))\n\t}\n}\n\nfunc (a *Agent) OnClose() {}\n\n/*\nfunc (a *Agent) WriteMsg(channel byte, msgId byte, msg []byte) {\n\n\tdata := []byte{channel, msgId}\n\tdata = append(data, msg...)\n\terr := a.conn.WriteMsg(data)\n\tif err != nil {\n\t\tlog.Println(\"write message error:\", err)\n\t}\n\n}\n*/\nfunc (a *Agent) WriteMsg(msgID interface{}, rawmsg []byte) {\n\n\tvar jd = JsData{Id: msgID.(string), Msg: string(rawmsg)}\n\t//m := map[string]interface{}{JsonIdName: msgID,JsonMsgName:rawmsg}\n\tdata, _ := json.Marshal(jd)\n\n\t// data := []byte{msgId, 0, 0}\n\t// data = append(data, msg...)\n\tserr := a.conn.WriteMsg(data)\n\tif serr != nil {\n\t\tlog.Println(\"write message error:\", serr)\n\t}\n\n}\n\n//func (a *Agent) LocalAddr() net.Addr {\n//return a.conn.LocalAddr()\n//}\n\n//func (a *Agent) RemoteAddr() net.Addr {\n//\treturn a.conn.RemoteAddr()\n//}\n\nfunc (a *Agent) Close() {\n\ta.conn.Close()\n}\n\nfunc (a *Agent) Destroy() {\n\ta.conn.Destroy()\n}\n"
  },
  {
    "path": "server/src/Robot/robotTest/build.bat",
    "content": "go build -v"
  },
  {
    "path": "server/src/Robot/robotTest/r_test.go",
    "content": "package main\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype node struct {\n\ti int\n}\n\nfunc TestMain(T *testing.T) {\n\tc := make(chan *node)\n\tn := &node{1}\n\tgo func() {\n\t\tc <- n\n\t}()\n\n\tm := <-c\n\tm.i = 2\n\tfmt.Printf(\"n=%v,%p   m=%v,%p\\n\", n, n, m, m)\n}\n"
  },
  {
    "path": "server/src/Robot/robotTest/robot.go",
    "content": "package main\n\nimport (\n\t\"fmt\"\n\t\"gameproto\"\n\t_ \"gameproto/msgs\"\n\t\"github.com/magicsea/ganet/network\"\n\tgp \"github.com/magicsea/ganet/proto\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"net/http\"\n\t\"sync\"\n\t//\"time\"\n\n\t\"github.com/gogo/protobuf/proto\"\n)\n\ntype Robot struct {\n\taccount string\n\tpwd     string\n\n\tgateAddr string\n\tuid      uint64\n\tkey      string\n\n\tclient network.INetClient\n\tagent  *Agent\n\twg     sync.WaitGroup\n}\n\nfunc NewRobot(account, pwd string) *Robot {\n\treturn &Robot{account: account, pwd: pwd}\n}\n\nfunc (robot *Robot) Start() {\n\trobot.wg.Add(1)\n\tif !robot.Login() {\n\t\tlog.Fatalln(\"Login fail\")\n\t\treturn\n\t}\n\trobot.ConnectGate()\n\trobot.wg.Wait()\n}\n\nfunc (robot *Robot) Login() bool {\n\tvar addr = *host\n\tfmt.Println(\"login...\", addr)\n\n\t//var addr = \"http://47.52.241.13:9900\"\n\tresponse, err := http.Get(fmt.Sprintf(\"%s/login?a=%s&p=1111\", addr, robot.account))\n\tif err != nil {\n\t\tlog.Fatalln(\"login http.get fail:\", err)\n\t\treturn false\n\t}\n\tdefer response.Body.Close()\n\tbody, _ := ioutil.ReadAll(response.Body)\n\tresult := gameproto.UserLoginResult{}\n\n\tumErr := gp.Unmarshal(body, &result)\n\tif umErr != nil {\n\t\tfmt.Println(\"err:\", umErr, \"  result:\", result)\n\t\treturn false\n\t}\n\tfmt.Println(\"login ok,\", result.GateWsAddr)\n\trobot.uid = uint64(result.Uid)\n\trobot.key = result.Key\n\tif *nettype == \"ws\" {\n\t\trobot.gateAddr = \"ws://\" + result.GateWsAddr\n\t} else {\n\t\trobot.gateAddr = result.GateTcpAddr\n\t}\n\treturn result.GetResult() == int32(gameproto.OK)\n}\n\nfunc (robot *Robot) newAgent(conn network.Conn) network.Agent {\n\trobot.agent = new(Agent)\n\trobot.agent.conn = conn\n\trobot.agent.msgHandle = robot.OnMsgRecv\n\trobot.OnConnected()\n\treturn robot.agent\n}\n\nfunc (robot *Robot) ConnectGate() {\n\tfmt.Println(\"ConnectGate:\", robot.gateAddr)\n\tif *nettype == \"ws\" {\n\t\trobot.client = new(network.WSClient)\n\t} else {\n\t\tc := new(network.TCPClient)\n\t\tc.LittleEndian = true\n\t\trobot.client = c\n\t}\n\trobot.client.Set(robot.gateAddr, robot.newAgent)\n\n\t//robot.client.LittleEndian = true\n\trobot.client.Start()\n\n}\n\nfunc (robot *Robot) OnConnected() {\n\tfmt.Println(\"OnConnected...\")\n\n\trobot.SendMsg(\"login\", &gameproto.PlatformUser{PlatformUid: int32(robot.uid), Key: robot.key})\n}\n\nfunc (robot *Robot) EnterGame() {\n\tfmt.Println(\"EnterGame...\")\n\trobot.SendMsg(\"s_chat\", &gameproto.C2S_WorldChatMsg{Data: \"hello robot\"})\n\t//robot.SendMsg(gameproto.Chat, byte(gameproto.C2S_PrivateChat), &gameproto.C2S_PrivateChatMsg{\"玩家11\", \"hello\"})\n\t//robot.SendMsg(gameproto.Chat, byte(gameproto.C2S_WorldChat), &gameproto.C2S_WorldChatMsg{\"world\"})\n}\n\nfunc (robot *Robot) OnMsgRecv(channel byte, msgId interface{}, data []byte) {\n\tc := 0 //gameproto.ChannelType(channel)\n\tfmt.Println(\"OnMsgRecv:\", c, \" msg:\", msgId, \" data:\", len(data))\n\tswitch msgId {\n\tcase \"login\":\n\t\trobot.EnterGame()\n\tcase \"chat\":\n\t\tvar msg = new(gameproto.S2C_WorldChatMsg)\n\t\tgp.Unmarshal(data, msg)\n\t\tfmt.Println(\"recv chat:\", msg.Name, msg.Data)\n\t}\n\t// tmsgId := gameproto.GS2C_CMD(msgId)\n\t// switch tmsgId {\n\t// case gameproto.S2C_CONFIRM:\n\t// \tmsg := gameproto.S2C_ConfirmInfo{}\n\t// \tproto.Unmarshal(data, &msg)\n\t// \tfmt.Println(\"S2C_CONFIRM:\", msg)\n\t// case gameproto.S2C_LOGIN_END:\n\t// \tmsg := gameproto.LoginReturn{}\n\t// \tproto.Unmarshal(data, &msg)\n\t// \tfmt.Println(\"login result:\", msg)\n\t// \tif msg.ErrCode == int32(gameproto.OK) {\n\t// \t\trobot.EnterGame()\n\t// \t}\n\t// case gameproto.S2C_Test:\n\t// \tmsg := gameproto.S2C_TestMsg{}\n\t// \tproto.Unmarshal(data, &msg)\n\t// \tfmt.Println(\"shop result:\", msg)\n\t// \ttime.Sleep(time.Second)\n\t// \trobot.SendMsg(byte(gameproto.C2S_Test), &gameproto.C2S_TestMsg{Id: 1})\n\t// }\n\n\t// return\n\t/*\n\t\tif c == gameproto.Login {\n\t\t\tmsg := gameproto.CheckLoginResult{}\n\t\t\tproto.Unmarshal(data, &msg)\n\t\t\tfmt.Println(\"login result:\", msg)\n\t\t\tif msg.Result == gameproto.OK {\n\t\t\t\trobot.EnterGame()\n\t\t\t}\n\t\t} else if c == gameproto.Shop {\n\t\t\ttmsgId := gameproto.GS2C_CMD(msgId)\n\t\t\tswitch tmsgId {\n\t\t\tcase gameproto.S2C_SHOP_CARD_INFO:\n\t\t\t\tmsg := gameproto.S2C_ShopBuyMsg{}\n\t\t\t\tproto.Unmarshal(data, &msg)\n\t\t\t\tfmt.Println(\"shop result:\", msg)\n\t\t\t\ttime.Sleep(time.Second)\n\t\t\t\trobot.SendMsg(byte(gameproto.C2S_SHOP_BUY), &gameproto.C2S_ShopBuyMsg{1})\n\t\t\t}\n\t\t} else if c == gameproto.Chat {\n\t\t\ttmsgId := gameproto.ChatMsgType(msgId)\n\t\t\tswitch tmsgId {\n\t\t\tcase gameproto.S2C_PrivateChat:\n\t\t\t\tmsg := gameproto.S2C_PrivateChatMsg{}\n\t\t\t\tproto.Unmarshal(data, &msg)\n\t\t\t\tfmt.Println(\"chat back result:\", msg)\n\t\t\tcase gameproto.S2C_PrivateOtherChat:\n\t\t\t\tmsg := gameproto.S2C_PrivateOtherChatMsg{}\n\t\t\t\tproto.Unmarshal(data, &msg)\n\t\t\t\tfmt.Println(\"otherchat:\", msg)\n\t\t\tcase gameproto.S2C_WorldChat:\n\t\t\t\tmsg := gameproto.S2C_WorldChatMsg{}\n\t\t\t\tproto.Unmarshal(data, &msg)\n\t\t\t\tfmt.Println(\"worldchat :\", msg)\n\t\t\t}\n\t\t}\n\t*/\n}\n\nfunc (robot *Robot) SendMsg(msgId interface{}, pb proto.Message) {\n\tdata, err := gp.Marshal(pb)\n\tif err != nil {\n\t\tfmt.Println(\"###EncodeMsg error:\", err)\n\t\treturn\n\t}\n\trobot.agent.WriteMsg(msgId, data)\n}\n\n/*\nfunc (robot *Robot) SendMsg(channel gameproto.ChannelType, msgId byte, pb proto.Message) {\n\tdata, err := proto.Marshal(pb)\n\tif err != nil {\n\t\tfmt.Println(\"###EncodeMsg error:\", err)\n\t\treturn\n\t}\n\trobot.agent.WriteMsg(byte(channel), msgId, data)\n}\n*/\n"
  },
  {
    "path": "server/src/Robot/robotTest/robotTest.go",
    "content": "package main\n\nimport (\n\t\"flag\"\n\t\"fmt\"\n\tgp \"github.com/magicsea/ganet/proto\"\n)\n\nvar acc = flag.String(\"u\", \"magicse_1\", \"account\")\nvar host = flag.String(\"host\", \"http://127.0.0.1:9900\", \"login url\")\nvar nettype = flag.String(\"net\", \"ws\", \"net type:tcp or ws\")\nvar prototype = flag.String(\"proto\", \"json\", \"proto type:json or pb\")\n\nfunc main() {\n\tflag.Parse()\n\tfmt.Println(\"start...\", *acc, *host, *nettype, *prototype)\n\tgp.SetProtoType(*prototype)\n\tr := NewRobot(*acc, \"111\")\n\tr.Start()\n\tfmt.Println(\"end\")\n}\n"
  },
  {
    "path": "server/src/Server/battle/battlePlayer.go",
    "content": "package battle\n\nimport (\n\t\"gameproto/msgs\"\n\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n\t\"github.com/gogo/protobuf/proto\"\n\t\"github.com/magicsea/ganet/config\"\n\t\"github.com/magicsea/ganet/log\"\n\tgp \"github.com/magicsea/ganet/proto\"\n)\n\ntype Player struct {\n\tcreateInfo *msgs.CreateBattlePlayer\n\tagentPID   *actor.PID\n\tfighter    *Fighter\n\troom       *Room\n\tisReady    bool\n\tisLeave    bool\n}\n\nfunc NewPlayer(createInfo *msgs.CreateBattlePlayer, room *Room) *Player {\n\tp := &Player{createInfo: createInfo, agentPID: createInfo.AgentPID, room: room, isReady: false, isLeave: false}\n\treturn p\n}\n\nfunc (p *Player) GetID() uint64 {\n\treturn p.createInfo.Uid\n}\n\nfunc (p *Player) GetName() string {\n\treturn p.createInfo.Name\n}\n\nfunc (p *Player) Recover(newAgent *actor.PID) {\n\tp.agentPID = newAgent\n}\n\nfunc (p *Player) Leave() {\n\tp.agentPID = nil\n}\n\nfunc (p *Player) SendRaw(msgId interface{}, rawdata []byte) {\n\tif p.agentPID == nil {\n\t\treturn\n\t}\n\tif config.IsJsonProto() {\n\t\tframe := &msgs.FrameMsgJson{MsgId: msgId.(string), RawData: rawdata}\n\t\tp.agentPID.Tell(frame)\n\t} else {\n\t\tframe := &msgs.FrameMsg{MsgId: uint32(msgId.(int64)), RawData: rawdata}\n\t\tp.agentPID.Tell(frame)\n\t}\n}\n\nfunc (p *Player) SendMsg(msgId interface{}, msg proto.Message) {\n\tdata, err := gp.Marshal(msg)\n\tif err != nil {\n\t\tlog.Error(\"SendMsg.Marshal error:%v\", err)\n\t\treturn\n\t}\n\tp.SendRaw(msgId, data)\n}\n\nfunc (p *Player) OnClientMsg(msgId interface{}, data []byte, context actor.Context) bool {\n\t//log.Info(\"##battle player.OnClientMsg:%v\", msgId)\n\tsid := msgId.(string)\n\tswitch sid {\n\tcase \"b_ready\":\n\t\tp.agentPID = context.Sender()\n\t\tp.isReady = true\n\t\tlog.Info(\"room.player ready:%v,%+v\", p.GetID(), p.agentPID)\n\t\tp.room.CheckReady()\n\t\treturn true\n\tcase \"b_chat\":\n\t\tp.room.SendRaw(msgId, data)\n\t\treturn true\n\tcase \"b_quit\":\n\t\tp.room.gl.close(\"quit\")\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (p *Player) CheckReady() bool {\n\treturn p.isReady\n}\nfunc (p *Player) CheckLeave() bool {\n\treturn p.agentPID == nil\n}\n"
  },
  {
    "path": "server/src/Server/battle/battleserver.go",
    "content": "package battle\n\nimport (\n\t\"Server/cluster\"\n\t\"gameproto/msgs\"\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n\n\t\"github.com/magicsea/ganet/log\"\n\t\"github.com/magicsea/ganet/service\"\n\t\"github.com/magicsea/ganet/util\"\n\t\"reflect\"\n\t\"time\"\n)\n\ntype BattleService struct {\n\tservice.ServiceData\n\tagents       map[uint64]*actor.PID\n\tbattleMgrPID *actor.PID\n\tisReg        bool\n}\n\n//Service 获取服务对象\nfunc Service() service.IService {\n\treturn new(BattleService)\n}\n\nfunc Type() string {\n\treturn \"battle\"\n}\n\n//以下为接口函数\nfunc (s *BattleService) OnReceive(context service.Context) {\n\tlog.Debug(\"BattleService.OnReceive:%v\", context.Message())\n\tdefer util.PrintPanicStack()\n\tswitch msg := context.Message().(type) {\n\tcase *msgs.CreateBattle: //创建战场\n\t\ts.CreateRoom(msg, context)\n\tcase *msgs.JoinBattle: //加入已有战场\n\t\ts.JoinRoom(msg, context)\n\t}\n}\n\nfunc (s *BattleService) OnInit() {\n\tInitBev()\n}\n\nfunc (s *BattleService) OnStart(as *service.ActorService) {\n\t//as.RegisterMsg(reflect.TypeOf(&msgs.GetBattleServer{}), s.OnGetBestBattleServer)\n\tas.RegisterMsg(reflect.TypeOf(&msgs.Kick{}), s.OnKick)                    //踢人\n\tas.RegisterMsg(reflect.TypeOf(&msgs.Tick{}), s.OnTick)                    //定时任务\n\tas.RegisterMsg(reflect.TypeOf(&msgs.AddServiceRep{}), s.OnRegOK)          //注册完成\n\tas.RegisterMsg(reflect.TypeOf(&actor.Terminated{}), s.OnDisconnectCenter)  //被动断开服务器\n\tlog.Debug(\"battle OnStart ok!!\")\n}\n\nfunc (s *BattleService) OnRun() {\n\t//注册到center\n\ts.RegToCenter()\n\t//cluster.RegServerWork(&s.ServiceData, nil)\n\t//定时任务\n\tutil.StartLoopTask(time.Second*5, func() {\n\t\ts.Pid.Tell(&msgs.Tick{}) //转主线程执行\n\t})\n}\n\n//注册到中心服务器\nfunc (s *BattleService) RegToCenter() {\n\t//注册到center\n\t//valtcp := &msgs.ServiceValue{\"TcpAddr\", config.GetServiceConfigString(s.Name, \"TcpAddrOut\")}\n\t//valws := &msgs.ServiceValue{\"WsAddr\", config.GetServiceConfigString(s.Name, \"WsAddrOut\")}\n\t//cluster.RegServerWork(&s.ServiceData, []*msgs.ServiceValue{valtcp, valws})\n\tr := cluster.GetServicePID(\"center\")\n\tmsg := msgs.AddService{\n\t\tServiceName: s.Name,\n\t\tServiceType: s.TypeName,\n\t\tPid:         s.GetPID(),\n\t\tValues:      nil}\n\n\t//context := actor.EmptyRootContext\n\t//context.Request(r.GetActorPID(),&msg)\n\tr.GetActorPID().Request(&msg, s.Pid)\n\tlog.Info(\"BattleService RegToCenter !!!\")\n}\n\n//注册成功\nfunc (s *BattleService) OnRegOK(context service.Context) {\n\ts.isReg = true\n\tlog.Info(\"BattleService reg ok!!!\")\n\tcontext.Watch(context.Sender())\n}\n\n//从中心断开\nfunc (s *BattleService) OnDisconnectCenter(context service.Context) {\n\ts.isReg = false\n\tlog.Info(\"BattleService OnDisconnectCenter !!!\")\n}\n\nfunc (s *BattleService) OnTick(context service.Context) {\n\tif !s.isReg {\n\t\ts.RegToCenter()\n\t\treturn\n\t}\n\n\tload := len(context.Children())\n\tcluster.UpdateServiceLoad(s.Name, uint32(load), msgs.ServiceStateFree)\n}\n\nfunc (s *BattleService) OnKick(context service.Context) {\n\tmsg := context.Message().(*msgs.Kick)\n\tlog.Info(\"BattleService.OnKick:%v\", msg)\n\tif agent, ok := s.agents[msg.Uid]; ok {\n\t\tagent.Tell(&msgs.Kick{Uid: msg.Uid})\n\t}\n}\n\nfunc (s *BattleService) CreateRoom(msg *msgs.CreateBattle, context service.Context) {\n\tpid, _ := NewRoom(msg, context)\n\tcontext.Respond(&msgs.CreateBattleRep{Result: msgs.OK, RoomPID: pid})\n}\n\nfunc (s *BattleService) JoinRoom(msg *msgs.JoinBattle, context service.Context) {\n\t//NewRoom(msg, context)\n\n}\n"
  },
  {
    "path": "server/src/Server/battle/bevAction.go",
    "content": "//ai节点动作\npackage battle\n\nimport (\n\tb3 \"github.com/magicsea/behavior3go\"\n\tb3config \"github.com/magicsea/behavior3go/config\"\n\tb3core \"github.com/magicsea/behavior3go/core\"\n\t\"github.com/magicsea/ganet/log\"\n\t\"math\"\n\t\"math/rand\"\n\t\"time\"\n)\n\n//---------------------------------------condition------------------------------------------------\n//HaveTarget\ntype HaveTarget struct {\n\tb3core.Condition\n\tindex string\n}\n\nfunc (this *HaveTarget) Initialize(setting *b3config.BTNodeCfg) {\n\tthis.Condition.Initialize(setting)\n\tthis.index = setting.GetPropertyAsString(\"index\")\n}\n\nfunc (this *HaveTarget) OnTick(tick *b3core.Tick) b3.Status {\n\tid := tick.Blackboard.GetInt32(this.index, \"\", \"\")\n\t//log.Info(\"have target:%d\", id)\n\tif id < 1 {\n\t\treturn b3.FAILURE\n\t}\n\n\tf := tick.GetTarget().(*Fighter)\n\t_, b := f.gl.entitys[id]\n\tif !b {\n\t\ttick.Blackboard.Set(this.index, int32(0), \"\", \"\")\n\t\treturn b3.FAILURE\n\t}\n\treturn b3.SUCCESS\n}\n\n//CheckBool\ntype CheckBool struct {\n\tb3core.Condition\n\tkeyname string\n}\n\nfunc (this *CheckBool) Initialize(setting *b3config.BTNodeCfg) {\n\tthis.Condition.Initialize(setting)\n\tthis.keyname = setting.GetPropertyAsString(\"keyname\")\n}\n\nfunc (this *CheckBool) OnTick(tick *b3core.Tick) b3.Status {\n\tvar b = tick.Blackboard.GetBool(this.keyname, \"\", \"\")\n\tif b {\n\t\t//glog.Info(\"CheckBool ok:\", this.keyname)\n\t\treturn b3.SUCCESS\n\t}\n\treturn b3.FAILURE\n}\n\n//---------------------------------------actions------------------------------------------------\n\ntype RandWait struct {\n\tb3core.Action\n\tminTime int64\n\tmaxTime int64\n}\n\nfunc (this *RandWait) Initialize(setting *b3config.BTNodeCfg) {\n\tthis.Action.Initialize(setting)\n\tthis.minTime = setting.GetPropertyAsInt64(\"timemini\")\n\tthis.maxTime = setting.GetPropertyAsInt64(\"timemax\")\n}\n\nfunc (this *RandWait) OnOpen(tick *b3core.Tick) {\n\tvar startTime int64 = time.Now().UnixNano() / 1000000\n\ttick.Blackboard.Set(\"startTime\", startTime, tick.GetTree().GetID(), this.GetID())\n\tend := this.minTime + rand.Int63n(this.maxTime-this.minTime)\n\ttick.Blackboard.Set(\"endTime\", startTime+end, tick.GetTree().GetID(), this.GetID())\n}\n\nfunc (this *RandWait) OnTick(tick *b3core.Tick) b3.Status {\n\tvar currTime int64 = time.Now().UnixNano() / 1000000\n\tvar endTime = tick.Blackboard.GetInt64(\"endTime\", tick.GetTree().GetID(), this.GetID())\n\n\tif currTime > endTime {\n\t\treturn b3.SUCCESS\n\t}\n\n\treturn b3.RUNNING\n}\n\n//RandAction\ntype RandAction struct {\n\tb3core.Action\n\tindex string\n\tmin   float64\n\tmax   float64\n}\n\nfunc (this *RandAction) Initialize(setting *b3config.BTNodeCfg) {\n\tthis.Action.Initialize(setting)\n\tthis.index = setting.GetPropertyAsString(\"index\")\n\tthis.min = setting.GetProperty(\"min\")\n\tthis.max = setting.GetProperty(\"max\")\n}\n\nfunc (this *RandAction) OnTick(tick *b3core.Tick) b3.Status {\n\tval := this.min + rand.Float64()*(this.max-this.min)\n\ttick.Blackboard.Set(this.index, val, \"\", \"\")\n\treturn b3.SUCCESS\n}\n\n//RandMove\ntype RandMove struct {\n\tb3core.Action\n}\n\nfunc (this *RandMove) Initialize(setting *b3config.BTNodeCfg) {\n\tthis.Action.Initialize(setting)\n}\n\nfunc (this *RandMove) OnTick(tick *b3core.Tick) b3.Status {\n\tf := tick.GetTarget().(*Fighter)\n\tf.Move(rand.Float32() * 360)\n\treturn b3.SUCCESS\n}\n\n//Shoot\ntype Shoot struct {\n\tb3core.Action\n}\n\nfunc (this *Shoot) Initialize(setting *b3config.BTNodeCfg) {\n\tthis.Action.Initialize(setting)\n}\n\nfunc (this *Shoot) OnTick(tick *b3core.Tick) b3.Status {\n\tf := tick.GetTarget().(*Fighter)\n\tf.Shot()\n\treturn b3.SUCCESS\n}\n\n//TurnTarget\ntype TurnTarget struct {\n\tb3core.Action\n\tindex string\n}\n\nfunc (this *TurnTarget) Initialize(setting *b3config.BTNodeCfg) {\n\tthis.Action.Initialize(setting)\n\tthis.index = setting.GetPropertyAsString(\"index\")\n}\n\nfunc (this *TurnTarget) OnTick(tick *b3core.Tick) b3.Status {\n\tid := tick.Blackboard.GetInt32(this.index, \"\", \"\")\n\tif id < 1 {\n\t\treturn b3.FAILURE\n\t}\n\tf := tick.GetTarget().(*Fighter)\n\ttball, b := f.gl.entitys[id]\n\tif !b {\n\t\t//glog.Info(\"TurnTarget:miss ball\", id, \" cell:\", len(player.lookCells))\n\t\ttick.Blackboard.Set(this.index, uint32(0), \"\", \"\")\n\t\treturn b3.FAILURE\n\t}\n\n\tv := tball.GetPos().Sub(*f.pos)\n\ta := v.AngleY() * 180 / math.Pi\n\n\tlog.Info(\"%v TurnTarget angle=%v  v=%v,%v\", f.id, a, v.X, v.Y)\n\tf.Move(a)\n\n\treturn b3.SUCCESS\n}\n\n//FindItem\ntype FindItem struct {\n\tb3core.Action\n\tindex string\n\tetype EntityType\n\tdis   float32\n}\n\nfunc (this *FindItem) Initialize(setting *b3config.BTNodeCfg) {\n\tthis.Action.Initialize(setting)\n\tthis.index = setting.GetPropertyAsString(\"index\")\n\tthis.etype = EntityType(setting.GetPropertyAsInt(\"etype\"))\n\tthis.dis = float32(setting.GetProperty(\"range\"))\n}\n\nfunc (this *FindItem) OnTick(tick *b3core.Tick) b3.Status {\n\tf := tick.GetTarget().(*Fighter)\n\ttick.Blackboard.Set(this.index, int32(0), \"\", \"\")\n\n\tball := f.FindNearItem(this.dis, this.etype)\n\tif nil == ball {\n\t\treturn b3.FAILURE\n\t}\n\n\tid := ball.GetID()\n\ttick.Blackboard.Set(this.index, id, \"\", \"\")\n\tlog.Info(\"FindItem %v dis:%v\", id, this.dis)\n\t// var currTime int64 = time.Now().UnixNano() / 1000000\n\t// tick.Blackboard.Set(\"targetTime\", currTime, \"\", \"\")\n\treturn b3.SUCCESS\n}\n\n//SubTree\ntype SubTreeNode struct {\n\tb3core.Action\n\tsTree    *b3core.BehaviorTree\n\ttreeName string\n}\n\nfunc (this *SubTreeNode) Initialize(setting *b3config.BTNodeCfg) {\n\tthis.Action.Initialize(setting)\n\tthis.treeName = setting.GetPropertyAsString(\"treeName\")\n\tthis.sTree = CreateBevTree(this.treeName)\n\tif nil == this.sTree {\n\t\tlog.Error(\"SubTreeNode Get SubTree Failed, treeName: \", this.treeName)\n\t}\n\tlog.Info(\"SubTreeNode::Initialize \", this, \" treeName \", this.treeName)\n}\n\nfunc (this *SubTreeNode) OnTick(tick *b3core.Tick) b3.Status {\n\tif nil == this.sTree {\n\t\treturn b3.ERROR\n\t}\n\tif tick.GetTarget() == nil {\n\t\tpanic(\"unknow error!\")\n\t}\n\ttar := tick.GetTarget()\n\t//\tglog.Info(\"subtree: \", this.treeName, \" id \", player.id)\n\treturn this.sTree.Tick(tar, tick.Blackboard)\n}\n\n//随机\ntype RandomComposite struct {\n\tb3core.Composite\n}\n\nfunc (this *RandomComposite) OnOpen(tick *b3core.Tick) {\n\ttick.Blackboard.Set(\"runningChild\", -1, tick.GetTree().GetID(), this.GetID())\n}\n\nfunc (this *RandomComposite) OnTick(tick *b3core.Tick) b3.Status {\n\t//\tglog.Info(\"RandomComposite\")\n\tvar child = tick.Blackboard.GetInt(\"runningChild\", tick.GetTree().GetID(), this.GetID())\n\tif -1 == child {\n\t\tchild = int(rand.Uint32()) % this.GetChildCount()\n\t}\n\n\t//\tglog.Info(\"random child \", child, \" \", this.GetChildCount())\n\tvar status = this.GetChild(child).Execute(tick)\n\tif status == b3.RUNNING {\n\t\ttick.Blackboard.Set(\"runningChild\", child, tick.GetTree().GetID(), this.GetID())\n\t} else {\n\t\ttick.Blackboard.Set(\"runningChild\", -1, tick.GetTree().GetID(), this.GetID())\n\t}\n\treturn status\n}\n\n//HpLess\ntype HpLess struct {\n\tb3core.Condition\n\trate float32\n}\n\nfunc (this *HpLess) Initialize(setting *b3config.BTNodeCfg) {\n\tthis.Condition.Initialize(setting)\n\tthis.rate = float32(setting.GetProperty(\"rate\"))\n}\n\nfunc (this *HpLess) OnTick(tick *b3core.Tick) b3.Status {\n\tf := tick.GetTarget().(*Fighter)\n\trate := float32(f.hp) / float32(HPMAX)\n\t//\tglog.Info(\"rate1 \", rate, \" rate2 \", this.rate, \" curhp \", player.SelfAnimal.GetHP(), \" maxhp \", player.SelfAnimal.GetAttr(AttrHpMax))\n\tif rate < this.rate {\n\t\treturn b3.SUCCESS\n\t}\n\treturn b3.FAILURE\n}\n\n//Parallel\ntype ParallelComposite struct {\n\tb3core.Composite\n\tfailCond int //1有一个失败就失败 0全失败才失败\n\tsuccCond int //1有一个成功就成功 0全成功才成功\n\t//如果不能确定状态 那就有running返回running，不然失败\n}\n\nfunc (this *ParallelComposite) Initialize(setting *b3config.BTNodeCfg) {\n\tthis.Composite.Initialize(setting)\n\tthis.failCond = setting.GetPropertyAsInt(\"fail_cond\")\n\tthis.succCond = setting.GetPropertyAsInt(\"succ_cond\")\n}\n\nfunc (this *ParallelComposite) OnTick(tick *b3core.Tick) b3.Status {\n\tvar failCount int\n\tvar succCount int\n\tvar hasRunning bool\n\tfor i := 0; i < this.GetChildCount(); i++ {\n\t\tvar status = this.GetChild(i).Execute(tick)\n\t\tif status == b3.FAILURE {\n\t\t\tfailCount++\n\t\t} else if status == b3.SUCCESS {\n\t\t\tsuccCount++\n\t\t} else {\n\t\t\thasRunning = true\n\t\t}\n\t}\n\tif (this.failCond == 0 && failCount == this.GetChildCount()) || (this.failCond == 1 && failCount > 0) {\n\t\treturn b3.FAILURE\n\t}\n\tif (this.succCond == 0 && succCount == this.GetChildCount()) || (this.succCond == 1 && succCount > 0) {\n\t\treturn b3.FAILURE\n\t}\n\tif hasRunning {\n\t\treturn b3.RUNNING\n\t}\n\treturn b3.FAILURE\n}\n"
  },
  {
    "path": "server/src/Server/battle/bevMgr.go",
    "content": "//ai全局管理\npackage battle\n\nimport (\n\tb3 \"github.com/magicsea/behavior3go\"\n\tb3config \"github.com/magicsea/behavior3go/config\"\n\tb3core \"github.com/magicsea/behavior3go/core\"\n\tb3loader \"github.com/magicsea/behavior3go/loader\"\n\t\"github.com/magicsea/ganet/log\"\n)\n\nfunc InitBev() {\n\tmapTrees = make(map[string]*b3core.BehaviorTree)\n\tbevMainTree = CreateBevTree(\"b3.json\")\n}\n\n//主树\nvar bevMainTree *b3core.BehaviorTree\n\nfunc GetBevTree() *b3core.BehaviorTree {\n\treturn bevMainTree\n}\n\n//创建一个行为树\nvar mapTrees map[string]*b3core.BehaviorTree\n\nfunc CreateBevTree(name string) *b3core.BehaviorTree {\n\tb, ok := mapTrees[name]\n\tif ok {\n\t\treturn b\n\t}\n\tlog.Info(\"create tree:%v\", name)\n\tconfig, ok := b3config.LoadTreeCfg(name)\n\tif !ok {\n\t\tlog.Fatal(\"LoadTreeCfg fail:\" + name)\n\t}\n\textMaps := createExtStructMaps()\n\ttree := b3loader.CreateBevTreeFromConfig(config, extMaps)\n\ttree.Print()\n\tmapTrees[name] = tree\n\treturn tree\n}\n\n//自定义的节点\nfunc createExtStructMaps() *b3.RegisterStructMaps {\n\tst := b3.NewRegisterStructMaps()\n\t//actions\n\tst.Register(\"Rand\", &RandAction{})\n\tst.Register(\"RandWait\", &RandWait{})\n\tst.Register(\"TurnTarget\", &TurnTarget{})\n\tst.Register(\"RandMove\", &RandMove{})\n\tst.Register(\"Shoot\", &Shoot{})\n\tst.Register(\"FindItem\", &FindItem{})\n\tst.Register(\"SubTree\", &SubTreeNode{})\n\n\t//conditions\n\tst.Register(\"HaveTarget\", &HaveTarget{})\n\tst.Register(\"CheckBool\", &CheckBool{})\n\tst.Register(\"HpLess\", &HpLess{})\n\n\t//composite\n\tst.Register(\"Random\", &RandomComposite{})\n\tst.Register(\"Parallel\", &ParallelComposite{})\n\treturn st\n}\n"
  },
  {
    "path": "server/src/Server/battle/bt_test.go",
    "content": "package battle\n\nimport (\n\tc \"comm\"\n\t\"math\"\n\t//\"fmt\"\n\n\t\"testing\"\n)\n\nfunc TestVec(T *testing.T) {\n\tv := c.NewVector2D(0, 1)\n\n\tv2 := c.NewVector2D(0, 1)\n\t//angle := v.Dot(v2) / v.Magnitude() * v2.Magnitude()\n\t//ac := math.Acos(float64(angle))\n\ta := v2.AngleY() * 180 / math.Pi\n\n\tT.Errorf(\"v:%v,a:%v  a2:\", v, a)\n\n}\n"
  },
  {
    "path": "server/src/Server/battle/defines.go",
    "content": "package battle\n\n//战斗状态\nconst (\n\tBATTLE_START      = 0\n\tBATTLE_END        = 1\n\tBATTLE_REWARD_END = 2\n)\n"
  },
  {
    "path": "server/src/Server/battle/entity.go",
    "content": "package battle\n\nimport (\n\tc \"comm\"\n\t\"gameproto\"\n)\n\ntype EntityType int\n\nconst (\n\tEBullet    EntityType = 0\n\tEItemHP    EntityType = 1\n\tEItemPower EntityType = 2\n)\n\ntype IEntity interface {\n\tGetID() int32\n\tStart()\n\tUpdate(dtime float32)\n\tGetInfo() *gameproto.AddEntity\n\tGetPos() *c.Vector2D\n\tGetEType() EntityType\n}\n\ntype EntityData struct {\n\tid    int32\n\tetype EntityType\n\tpos   *c.Vector2D\n\tvel   *c.Vector2D\n\tgl    *GameLogic\n}\n\nfunc (en *EntityData) GetID() int32 {\n\treturn en.id\n}\nfunc (en *EntityData) GetPos() *c.Vector2D {\n\treturn en.pos\n}\nfunc (en *EntityData) GetEType() EntityType {\n\treturn en.etype\n}\n\n//=================Item==================\ntype Item struct {\n\tEntityData\n\n\ttimer float32\n}\n\nfunc NewItem(gl *GameLogic, pos *c.Vector2D, t EntityType) *Item {\n\tdata := EntityData{id: gl.GenID(), pos: pos, gl: gl, etype: t}\n\tbl := &Item{EntityData: data}\n\tbl.Start()\n\treturn bl\n}\n\nfunc (bl *Item) Start() {\n\n}\n\nfunc (bl *Item) Update(dtime float32) {\n\n\t//碰撞\n\tfor _, f := range bl.gl.fighters {\n\t\tif f.box != nil && f.box.PointInRange(*bl.pos) {\n\t\t\tf.OnFeed(bl.etype)\n\t\t\tbl.destory()\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (bl *Item) destory() {\n\tbl.gl.removeEntity(bl)\n}\n\nfunc (bl *Item) GetInfo() *gameproto.AddEntity {\n\treturn &gameproto.AddEntity{Id: bl.id, Pos: bl.pos.ToFVector(), Etype: int32(bl.etype)}\n}\n\n//=================Bullet==================\ntype Bullet struct {\n\tEntityData\n\ttimer  float32\n\thoster *Fighter\n}\n\nfunc NewBullet(gl *GameLogic, pos *c.Vector2D, vel *c.Vector2D, hoster *Fighter) *Bullet {\n\tdata := EntityData{id: gl.GenID(), pos: pos, vel: vel, gl: gl}\n\tbl := &Bullet{EntityData: data, timer: 10, hoster: hoster}\n\tbl.Start()\n\treturn bl\n}\n\nfunc (bl *Bullet) Start() {\n\n}\n\nfunc (bl *Bullet) Update(dtime float32) {\n\tbl.timer -= dtime\n\tif bl.timer < 0 {\n\t\tbl.destory()\n\t\treturn\n\t}\n\n\t//move\n\tif bl.vel != nil {\n\t\tv := bl.vel.Multiply(dtime)\n\t\tnewpos := bl.pos.Add(v)\n\t\tbl.pos = &newpos\n\t}\n\n\t//碰撞\n\tfor _, f := range bl.gl.fighters {\n\t\tif f.group != bl.hoster.group {\n\t\t\tif f.box != nil && f.box.PointInRange(*bl.pos) {\n\t\t\t\tf.BeHit(bl, bl.hoster)\n\t\t\t\tbl.destory()\n\t\t\t\treturn\n\t\t\t}\n\n\t\t}\n\t}\n\n}\n\nfunc (bl *Bullet) destory() {\n\tbl.gl.removeEntity(bl)\n}\n\nfunc (bl *Bullet) GetInfo() *gameproto.AddEntity {\n\treturn &gameproto.AddEntity{Id: bl.id, Pos: bl.pos.ToFVector(), Vel: bl.vel.ToFVector(), Etype: int32(EBullet)}\n}\n"
  },
  {
    "path": "server/src/Server/battle/fighter.go",
    "content": "package battle\n\nimport (\n\tc \"comm\"\n\t\"gameproto\"\n\t\"github.com/magicsea/ganet/log\"\n\t\"math\"\n\t\"time\"\n)\n\ntype GroupType int\n\nconst (\n\tPlayerGroup  GroupType = 0\n\tMonsterGroup GroupType = 1\n)\nconst (\n\tHPMAX int32 = 4\n)\n\n//角色组件\ntype IFighterCompnent interface {\n\tStart()\n\tUpdate(dtime float32)\n}\n\ntype Fighter struct {\n\tid          int32\n\tpos         *c.Vector2D\n\tangel       float32\n\ttargetAngel float32\n\tspeed       float32 //弧度\n\tangelSpeed  float32\n\tgl          *GameLogic\n\tai          IFighterCompnent\n\tgroup       GroupType\n\n\tbox   c.Shape\n\thp    int32\n\tkill  int32\n\tpower int32\n}\n\nconst (\n\ttankSize float32 = 30\n)\n\nfunc NewFighter(id int32, pos *c.Vector2D, gl *GameLogic, isPlayer bool) *Fighter {\n\n\tbox := c.NewCircle(*pos, tankSize)\n\tf := &Fighter{id: id, pos: pos, angel: 0, speed: 40, angelSpeed: 200 * math.Pi / 180, gl: gl, hp: HPMAX, box: box}\n\tif !isPlayer {\n\t\t//ai := NewFighterAI(f, gl)\n\t\tai := NewFighterBehavior(f, gl)\n\t\tf.ai = ai\n\t\tf.group = MonsterGroup\n\t} else {\n\t\tf.group = PlayerGroup\n\t}\n\n\treturn f\n}\n\nfunc (f *Fighter) OnStart() {\n\tlog.Info(\"fighter OnStart:%v\", f.id)\n\tif f.ai != nil {\n\t\tf.ai.Start()\n\t}\n\n}\nfunc (f *Fighter) update(dtime float32) {\n\tif f.ai != nil {\n\t\tf.ai.Update(dtime)\n\t}\n\n\t//计算方向   向上为angel=0\n\t// if f.targetAngel-f.angel > dtime*f.angelSpeed {\n\t// \tvar dir float32 = 1\n\t// \tif f.targetAngel < f.angel {\n\t// \t\tdir = -1\n\t// \t}\n\t// \tf.angel += dir * f.angelSpeed * dtime\n\t// \tlog.Info(\"turn %d:%v\", f.id, f.angel)\n\t// }\n\n\t//计算位置\n\tv := f.GetVel().Multiply(dtime)\n\tnewpos := f.pos.Add(v)\n\t//log.Info(\"add %+v=>%+v\", v, newpos)\n\tif f.gl.mapRect.PointInRange(newpos) {\n\t\tf.pos = &newpos\n\t\tf.box.SetPos(newpos)\n\t}\n\n}\n\n//速度\nfunc (f *Fighter) GetVel() *c.Vector2D {\n\tvr := c.FromRadians(math.Pi/2 - f.angel) //换算成x方向\n\tnv := vr.Normalize()\n\tv := nv.Multiply(f.speed)\n\treturn &v\n}\n\n//偏移速度\nfunc (f *Fighter) GetVelOffset(fixAngle float32) *c.Vector2D {\n\tvr := c.FromRadians(math.Pi/2 - f.angel + fixAngle) //换算成x方向\n\tnv := vr.Normalize()\n\tv := nv.Multiply(f.speed)\n\treturn &v\n}\n\nfunc (f *Fighter) GetFighterInfo() *gameproto.FighterInfo {\n\tinfo := &gameproto.FighterInfo{Id: f.id, Pos: f.pos.ToFVector(), Vel: f.GetVel().ToFVector(), Hp: f.hp}\n\treturn info\n}\nfunc (f *Fighter) Move(angle float32) {\n\t//log.Info(\"Move %d:%v\", f.id, angle)\n\tf.targetAngel = angle * math.Pi / 180\n\tf.angel = f.targetAngel\n}\n\n//吃道具\nfunc (f *Fighter) OnFeed(t EntityType) {\n\tswitch t {\n\tcase EItemHP:\n\t\tif f.hp < HPMAX {\n\t\t\tf.hp++\n\t\t\tf.gl.send(\"addhp\", &gameproto.AddHP{Add: 1, Id: f.id})\n\t\t}\n\tcase EItemPower:\n\t\tf.power++\n\t}\n}\n\nfunc (f *Fighter) Shot() {\n\n\tf.gl.send(\"shot\", &gameproto.Shot{Id: f.id, BulletId: 0, Pos: f.pos.ToFVector(), Angel: f.angel})\n\tvar bspeed float32 = 200 //子弹速度\n\tsvel := f.GetVel()\n\tnvel := svel.Normalize()\n\ta := nvel.Multiply(bspeed)\n\tbl := NewBullet(f.gl, f.pos, &a, f)\n\tf.gl.addEntity(bl)\n\tfor i := 0; i < int(f.power) && i < 5; i++ {\n\t\t//L\n\t\tsubvel := f.GetVelOffset(15 * math.Pi / 180 * (float32(i) + 1))\n\t\tnsubvel := subvel.Normalize().Multiply(bspeed)\n\t\tbl := NewBullet(f.gl, f.pos, &nsubvel, f)\n\t\tf.gl.addEntity(bl)\n\t\t//R\n\t\tsubvel2 := f.GetVelOffset(-15 * math.Pi / 180 * (float32(i) + 1))\n\t\tnsubvel2 := subvel2.Normalize().Multiply(bspeed)\n\t\tbl2 := NewBullet(f.gl, f.pos, &nsubvel2, f)\n\t\tf.gl.addEntity(bl2)\n\t}\n}\nfunc (f *Fighter) BeHit(bullet *Bullet, enemy *Fighter) {\n\tf.hp--\n\n\tf.gl.send(\"hit\", &gameproto.Hit{BulletId: bullet.id, TargetId: f.id, LoseHP: 1})\n\n\tif f.hp <= 0 {\n\t\tf.Dead(enemy)\n\t}\n}\n\nfunc (f *Fighter) Dead(enemy *Fighter) {\n\n\tf.gl.send(\"dead\", &gameproto.Dead{Id: f.id, EnemyId: enemy.id})\n\n\tif f.group == PlayerGroup {\n\t\tt := time.Now().Sub(f.gl.startTime).Seconds()\n\t\tf.gl.send(\"gameover\", &gameproto.GameOver{Winner: 0, Time: int32(t), Stage: f.gl.stage, Kill: f.kill})\n\t\tf.gl.close(\"over\")\n\t\treturn\n\t}\n\n\tf.gl.removeFighter(f.id)\n\tenemy.kill++\n}\n\nfunc (f *Fighter) FindNearItem(frange float32, etype EntityType) IEntity {\n\t//frange = 10000\n\tvar best IEntity\n\tfor _, item := range f.gl.entitys {\n\t\tif etype == item.GetEType() && item.GetPos().WithInDistance(*f.pos, frange) {\n\t\t\tif best == nil || item.GetPos().SqrDistance(*f.pos) < best.GetPos().SqrDistance(*f.pos) {\n\t\t\t\tbest = item\n\t\t\t}\n\t\t}\n\t}\n\treturn best\n}\n"
  },
  {
    "path": "server/src/Server/battle/fighterAI.go",
    "content": "//简化的ai\npackage battle\n\nimport (\n\t\"math/rand\"\n)\n\ntype FighterAI struct {\n\tfighter   *Fighter\n\tgl        *GameLogic\n\ttimer     float32\n\ttimerShot float32\n}\n\nfunc NewFighterAI(f *Fighter, gl *GameLogic) *FighterAI {\n\treturn &FighterAI{fighter: f, gl: gl, timer: 0, timerShot: 0}\n}\n\nfunc (ai *FighterAI) Start() {\n\tai.RandTurn()\n\tai.timerShot = 4 + rand.Float32()*4 //8秒内随机一次\n}\n\nfunc (ai *FighterAI) Update(dtime float32) {\n\n\t//shot\n\tai.timerShot -= dtime\n\tif ai.timerShot < 0 {\n\t\tai.timerShot += rand.Float32() * 8 //8秒内随机一次\n\t\tai.fighter.Shot()\n\t}\n\n\t//turn\n\tai.timer -= dtime\n\tif ai.timer < 0 {\n\t\tai.RandTurn()\n\t}\n\n\t//计算边界\n\tf := ai.fighter\n\tv := f.GetVel().Multiply(dtime)\n\tnewpos := f.pos.Add(v)\n\tif !f.gl.mapRect.PointInRange(newpos) {\n\t\tai.RandTurn()\n\t}\n}\n\nfunc (ai *FighterAI) RandTurn() {\n\tai.timer += rand.Float32() * 10 //10秒内随机一次\n\tai.fighter.Move(rand.Float32() * 360)\n\n}\n"
  },
  {
    "path": "server/src/Server/battle/fighterBehavior.go",
    "content": "package battle\n\nimport (\n\tb3core \"github.com/magicsea/behavior3go/core\"\n\t\"math/rand\"\n)\n\ntype FighterBehavior struct {\n\tfighter *Fighter\n\tgl      *GameLogic\n\tbb      *b3core.Blackboard //记录行为状态\n}\n\nfunc NewFighterBehavior(f *Fighter, gl *GameLogic) *FighterBehavior {\n\treturn &FighterBehavior{fighter: f, gl: gl, bb: b3core.NewBlackboard()}\n}\n\nfunc (ai *FighterBehavior) Start() {\n\n}\n\nfunc (ai *FighterBehavior) Update(dtime float32) {\n\n\t//更新行为树\n\ttree := GetBevTree()\n\ttree.Tick(ai.fighter, ai.bb)\n\n\t//计算边界保护\n\tf := ai.fighter\n\tv := f.GetVel().Multiply(dtime)\n\tnewpos := f.pos.Add(v)\n\tif !f.gl.mapRect.PointInRange(newpos) {\n\t\tai.fighter.Move(rand.Float32() * 360)\n\t}\n}\n"
  },
  {
    "path": "server/src/Server/battle/gamelogic.go",
    "content": "package battle\n\nimport (\n\t\"encoding/json\"\n\n\t\"gameproto\"\n\t\"github.com/magicsea/ganet/log\"\n\n\t\"time\"\n\n\tc \"comm\"\n\t\"gameproto/msgs\"\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n\t\"github.com/gogo/protobuf/proto\"\n\t\"math/rand\"\n)\n\nconst (\n\tFRAME_TIME = 20\n)\n\ntype ClientMsg struct {\n\tmsgId   interface{}\n\trawData []byte\n\tuid     uint64\n}\n\ntype OutMsg struct {\n\tmsgId interface{}\n\tdata  proto.Message\n\tuid   uint64\n}\n\ntype RoomEnd struct {\n}\n\ntype GameLogic struct {\n\troomId         string\n\tfighters       map[int32]*Fighter  //战斗单位\n\tplayerfighters map[uint64]*Fighter //战斗单位\n\troomPID        *actor.PID\n\n\tcloseSign     chan byte      //关闭通道\n\tclientMsgChan chan ClientMsg //客户端消息通道\n\n\ttimer     int\n\tidCreator int32\n\tmapRect   *c.Rect //地图范围\n\n\tentitys   map[int32]IEntity //地图对象\n\tstartTime time.Time         //开始时间\n\tstage     int32             //关卡\n}\n\nfunc (gl *GameLogic) init(roomId string, infos []*msgs.CreateBattlePlayer, w, h float32) {\n\tgl.roomId = roomId\n\tgl.closeSign = make(chan byte, 1)\n\tgl.clientMsgChan = make(chan ClientMsg, 100)\n\tgl.fighters = make(map[int32]*Fighter)\n\tgl.playerfighters = make(map[uint64]*Fighter)\n\tgl.mapRect = c.NewRect(c.NewVector2D(-w/2, -h/2), w, h)\n\tgl.entitys = make(map[int32]IEntity)\n\tfor _, info := range infos {\n\t\tf := NewFighter(0, &c.Vector2D{1, 1}, gl, true)\n\t\tgl.addFighter(f)\n\t\tgl.playerfighters[info.Uid] = f\n\t}\n\tgl.timer = 1\n\tgl.stage = 1\n\tgl.startTime = time.Now()\n}\n\nfunc (gl *GameLogic) GenID() int32 {\n\tgl.idCreator++\n\treturn gl.idCreator\n}\n\n//开始一个逻辑线程\nfunc (gl *GameLogic) start() {\n\ttimeTicker := time.NewTicker(time.Millisecond * FRAME_TIME)\n\tgo func() {\n\t\tgl.battleStart()\n\t\tvar closed bool\n\t\tfor !closed {\n\t\t\tselect {\n\t\t\tcase <-gl.closeSign:\n\t\t\t\ttimeTicker.Stop()\n\t\t\t\tclosed = true\n\t\t\t\tlog.Info(\"room closeSign\")\n\t\t\tcase <-timeTicker.C:\n\t\t\t\tgl.update()\n\t\t\tcase msg := <-gl.clientMsgChan:\n\t\t\t\tgl.onClientMsg(msg)\n\t\t\t}\n\t\t}\n\t\tlog.Info(\"room frame stop\")\n\t\tgl.onClosed()\n\t}()\n\n}\n\nfunc (gl *GameLogic) battleStart() {\n\tlog.Info(\"battleStart\")\n\t//刷怪\n\tgl.spawnFighters()\n\n\t//发送开始消息\n\tinfos := gl.GetFightersInfo()\n\tfor uid, f := range gl.playerfighters {\n\t\tgl.sendPlayer(uid, \"battleStart\", &gameproto.BattleStart{Self: f.GetFighterInfo(), Fighters: infos})\n\t}\n}\n\n//一帧\nfunc (gl *GameLogic) update() {\n\tdtime := float32(FRAME_TIME) / float32(1000)\n\tfor _, f := range gl.fighters {\n\t\tf.update(dtime)\n\t}\n\n\tfor _, e := range gl.entitys {\n\t\te.Update(dtime)\n\t}\n\n\tgl.timer++\n\tif gl.timer%1 == 0 { //todo:通常gl.timer%5足够，因为客户端没做平滑，先这样\n\t\tgl.updateSnap()\n\t}\n\n\t//10秒一刷一波\n\tif gl.timer%500 == 0 {\n\t\tgl.stage++\n\t\t//gl.spawnFighters()\n\t\t//gl.send(\"newStage\", &gameproto.NewStage{Stage: gl.stage, Fighters: gl.GetFightersInfo()})\n\t}\n\n\t//20s\n\tif gl.timer%400 == 0 {\n\t\tgl.spawnItem()\n\t}\n}\n\n//更新位置\nfunc (gl *GameLogic) updateSnap() {\n\tsnap := &gameproto.Snap{}\n\tfor _, fighter := range gl.fighters {\n\t\tinfo := &gameproto.FighterSnapInfo{\n\t\t\tId:  fighter.id,\n\t\t\tPos: fighter.pos.ToFVector(),\n\t\t\tVel: fighter.GetVel().ToFVector()}\n\t\tsnap.Infos = append(snap.Infos, info)\n\t}\n\n\tgl.send(\"snap\", snap)\n}\n\n//主动结束\nfunc (gl *GameLogic) close(reason string) {\n\tgl.closeSign <- 1\n\tlog.Info(\"room close:%v,%v\", gl.roomId, reason)\n}\n\n//结束时机\nfunc (gl *GameLogic) onClosed() {\n\tlog.Info(\"gamelogic close:%v\", gl.roomId)\n\tgl.roomPID.Tell(&RoomEnd{})\n}\n\n//发送到场景\nfunc (gl *GameLogic) send(msgId interface{}, data proto.Message) {\n\tmsg := &OutMsg{msgId: msgId, data: data}\n\tgl.roomPID.Tell(msg)\n}\nfunc (gl *GameLogic) sendPlayer(uid uint64, msgId interface{}, data proto.Message) {\n\tmsg := &OutMsg{msgId: msgId, data: data, uid: uid}\n\tgl.roomPID.Tell(msg)\n}\nfunc (gl *GameLogic) getFighter(id int32) *Fighter {\n\tif f, ok := gl.fighters[id]; ok {\n\t\treturn f\n\t}\n\treturn nil\n}\n\nfunc (gl *GameLogic) addFighter(f *Fighter) int32 {\n\tid := gl.GenID()\n\tf.id = id\n\tgl.fighters[id] = f\n\treturn id\n}\n\nfunc (gl *GameLogic) removeFighter(id int32) {\n\tf := gl.getFighter(id)\n\tif f != nil {\n\t\tdelete(gl.fighters, id)\n\t}\n\n}\n\nfunc (gl *GameLogic) getFighterByPlayerId(uid uint64) *Fighter {\n\tif f, ok := gl.playerfighters[uid]; ok {\n\t\treturn f\n\t}\n\treturn nil\n}\n\nfunc (gl *GameLogic) GetFightersInfo() []*gameproto.FighterInfo {\n\tvar list []*gameproto.FighterInfo\n\tfor _, f := range gl.fighters {\n\t\tinfo := f.GetFighterInfo()\n\t\tlist = append(list, info)\n\t}\n\treturn list\n}\n\n//客户端输入\nfunc (gl *GameLogic) onClientMsg(cmsg ClientMsg) {\n\tmsgId := cmsg.msgId.(string)\n\tfighter := gl.getFighterByPlayerId(cmsg.uid)\n\tif fighter == nil {\n\t\treturn\n\t}\n\tswitch msgId {\n\tcase \"b_move\":\n\t\tmsg := &gameproto.Move{}\n\t\tjson.Unmarshal(cmsg.rawData, msg)\n\t\tfighter.Move(msg.Angle)\n\tcase \"b_shot\":\n\t\tfighter.Shot()\n\t\tlog.Info(\"shot\")\n\t}\n}\n\nfunc (gl *GameLogic) spawnFighters() {\n\n\tpos, w, h := gl.mapRect.GetRect()\n\tfor index := 0; index < int(gl.stage); index++ {\n\t\tnewpos := pos.Add(c.Vector2D{rand.Float32() * w, rand.Float32() * h})\n\t\tf := NewFighter(0, &newpos, gl, false)\n\t\tgl.addFighter(f)\n\t}\n\n\t//start\n\tfor _, f := range gl.fighters {\n\t\tf.OnStart()\n\t}\n}\n\nfunc (gl *GameLogic) spawnItem() {\n\tpos, w, h := gl.mapRect.GetRect()\n\tnewpos := pos.Add(c.Vector2D{rand.Float32() * w, rand.Float32() * h})\n\ti := NewItem(gl, &newpos, EntityType(rand.Intn(2)+1))\n\tgl.addEntity(i)\n\n\t//log.Info(\"spawnItem:\", i.id)\n}\n\nfunc (gl *GameLogic) addEntity(e IEntity) {\n\tid := e.GetID()\n\tgl.entitys[id] = e\n\tgl.send(\"addEntity\", e.GetInfo())\n}\n\nfunc (gl *GameLogic) removeEntity(e IEntity) {\n\tid := e.GetID()\n\tdelete(gl.entitys, id)\n\tgl.send(\"removeEntity\", &gameproto.RemoveEntity{Id: id})\n}\n"
  },
  {
    "path": "server/src/Server/battle/gameproto.go",
    "content": "package battle\n\nimport (\n\t\"gameproto/msgs\"\n)\n\n//标志位\nconst (\n\tNetPackFLag_Encode   byte = 1\n\tNetPackFLag_Compress byte = 2\n)\n\ntype NetPack struct {\n\tchannel msgs.ChannelType //主消息通道\n\tmsgID   byte             //消息id\n\tcno     byte             //客户端请求号\n\tflag    byte             //压缩，加密等表示\n\n\trawData []byte //数据段\n}\n\nfunc (pk *NetPack) Read(p []byte) bool {\n\tif len(p) < 3 {\n\t\treturn false\n\t}\n\tpk.channel = msgs.GameServer\n\tpk.msgID = p[0]\n\tpk.cno = p[1]\n\tpk.flag = p[2]\n\tpk.rawData = p[3:]\n\treturn true\n}\n\nfunc (pk *NetPack) Write() []byte {\n\tdata := []byte{pk.msgID, pk.cno, pk.flag}\n\tdata = append(data, pk.rawData...)\n\treturn data\n}\n\n//加密\nfunc (pk *NetPack) IsEncode() bool {\n\treturn (pk.flag & NetPackFLag_Encode) > 0\n}\n\n//加密\nfunc (pk *NetPack) IsCompress() bool {\n\treturn (pk.flag & NetPackFLag_Compress) > 0\n}\n"
  },
  {
    "path": "server/src/Server/battle/msg.go",
    "content": "package battle\n\nimport \"Server/db\"\nimport \"gameproto/msgs\"\nimport \"github.com/AsynkronIT/protoactor-go/actor\"\n\ntype MsgStartGame struct {\n\tPlayerInfo *db.MsgBattleRoomInfo\n\tSelfPID    *actor.PID\n}\n\ntype MsgStartGameResult struct {\n\tRoomPID *actor.PID\n\tResult  msgs.GAErrorCode\n}\n"
  },
  {
    "path": "server/src/Server/battle/room.go",
    "content": "package battle\n\nimport (\n\t\"gameproto/msgs\"\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n\t\"github.com/gogo/protobuf/proto\"\n\t\"github.com/magicsea/ganet/log\"\n\tgp \"github.com/magicsea/ganet/proto\"\n\t\"github.com/magicsea/ganet/service\"\n\t\"github.com/magicsea/ganet/util\"\n\t\"time\"\n)\n\ntype BATTLE_STATE int32\n\nconst (\n\tBATTLE_STAGE_WAIT BATTLE_STATE = 0\n\tBATTLE_STAGE_Game BATTLE_STATE = 1\n\tBATTLE_STAGE_END  BATTLE_STATE = 2\n)\n\ntype Room struct {\n\tparentPID   *actor.PID\n\tselfPID     *actor.PID\n\troomId      string                     //战场唯一id\n\troomType    int32                      //战场类型\n\tstageId     int32                      //关卡id\n\tplayerInfos []*msgs.CreateBattlePlayer //玩家相关信息\n\n\tgl *GameLogic //逻辑循环线程\n\t//延时事件\n\tinvokeTimerState *time.Timer //状态切换计时\n\tinvokeTimerLeave *time.Timer //玩家离开计时\n\n\tplayers map[uint64]*Player //玩家\n\n\tstartTime int64\n\twinner    uint64\n\n\tstageTime int64\n\n\tmaxFighterId int32\n\n\tstate BATTLE_STATE\n}\n\nfunc NewRoom(msg *msgs.CreateBattle, context service.Context) (*actor.PID, error) {\n\tp := &Room{roomId: msg.RoomId, roomType: msg.Rtype, stageId: msg.StageId, playerInfos: msg.Players}\n\tp.Init(context.Self())\n\tprops := actor.PropsFromProducer(func() actor.Actor {return p})\n\tpid := context.Spawn(props)\n\tp.selfPID = pid\n\n\tlog.Info(\"NewRoom:%v\", p.roomId)\n\treturn pid, nil\n}\n\n//初始化\nfunc (room *Room) Init(parent *actor.PID) {\n\troom.parentPID = parent\n\troom.state = BATTLE_STAGE_WAIT\n\troom.stageTime = time.Now().Unix()\n\troom.maxFighterId = 1\n\troom.players = make(map[uint64]*Player)\n\tfor _, p := range room.playerInfos {\n\t\tplayer := NewPlayer(p, room)\n\t\troom.players[p.GetUid()] = player\n\t}\n\n}\n\nfunc (room *Room) Receive(context actor.Context) {\n\n\tdefer util.PrintPanicStack()\n\tswitch msg := context.Message().(type) {\n\tcase *actor.Terminated:\n\n\tcase *msgs.UserLeave:\n\t\tlog.Info(\"room user leave:%v,%v\", msg.Uid, msg.Reason)\n\t\tp := room.GetPlayer(msg.Uid)\n\t\tif p != nil {\n\t\t\tp.Leave()\n\t\t\troom.CheckLeave()\n\t\t}\n\n\tcase *actor.Started:\n\t\t//fmt.Println(\"BattleManager start,%v\", msg)\n\t\troom.selfPID = context.Self()\n\t\troom.Prepare(context)\n\n\t\tbreak\n\tcase *msgs.FrameMsg: //客户端消息\n\tcase *msgs.FrameMsgJson:\n\t\tif msg.MsgId != \"b_move\" {\n\t\t\tlog.Info(\"room recv:%+v\", msg)\n\t\t}\n\n\t\tp := room.GetPlayer(msg.Uid)\n\t\tif p != nil {\n\t\t\tif !p.OnClientMsg(msg.MsgId, msg.RawData, context) {\n\t\t\t\tcmsg := ClientMsg{msgId: msg.MsgId, uid: msg.Uid}\n\t\t\t\tcmsg.rawData = append(cmsg.rawData, msg.RawData...)\n\t\t\t\troom.gl.clientMsgChan <- cmsg\n\t\t\t}\n\t\t} else {\n\t\t\tlog.Error(\"room recv: have not player:%v\", msg.Uid)\n\t\t\troom.PrintPlayers()\n\t\t}\n\tcase *InvokeEvent: //延时事件\n\t\tmsg.fun()\n\tcase *msgs.RecoverBattle: //玩家恢复战场\n\t\troom.recoverBattle(msg.Uid, msg.AgentPID)\n\tcase *OutMsg: //发给客户端\n\t\troom.SendMsg(msg.msgId, msg.data)\n\tcase *RoomEnd: //战场结束\n\t\troom.OnEnd()\n\t}\n\n}\n\n//延时事件\ntype InvokeEvent struct {\n\tfun func()\n}\n\nfunc (room *Room) InvokeState(usetime int64, fun func()) {\n\troom.invokeTimerState = time.AfterFunc(time.Second*time.Duration(usetime), func() {\n\t\troom.selfPID.Tell(&InvokeEvent{fun})\n\t})\n}\nfunc (room *Room) InvokeLeave(usetime int64, fun func()) {\n\troom.invokeTimerLeave = time.AfterFunc(time.Second*time.Duration(usetime), func() {\n\t\troom.selfPID.Tell(&InvokeEvent{fun})\n\t})\n}\n\nfunc (room *Room) Prepare(context actor.Context) {\n\tlog.Info(\"Prepare %v\", room.roomId)\n\troom.startTime = time.Now().Unix()\n\troom.gl = &GameLogic{roomPID: room.selfPID}\n\troom.gl.init(room.roomId, room.playerInfos, 1100, 600)\n\t//超时自动开始\n\troom.InvokeState(20, room.StartGame)\n}\n\nfunc (room *Room) CheckReady() bool {\n\tfor _, pl := range room.players {\n\t\tif !pl.CheckReady() {\n\t\t\treturn false\n\t\t}\n\t}\n\n\troom.StartGame()\n\treturn true\n}\n\n//###开始阶段###\nfunc (room *Room) StartGame() {\n\tif room.state != BATTLE_STAGE_WAIT {\n\t\treturn\n\t}\n\tif room.invokeTimerState != nil {\n\t\troom.invokeTimerState.Stop()\n\t}\n\n\troom.state = BATTLE_STAGE_Game\n\tlog.Info(\"StartGame %v\", room.roomId)\n\troom.gl.start()\n\n\troom.CheckLeave() //防止loading期间都掉线了\n}\n\n//所有人离线检查\nfunc (room *Room) CheckLeave() {\n\tif room.state != BATTLE_STAGE_Game {\n\t\treturn\n\t}\n\n\tfor _, pl := range room.players {\n\t\tif !pl.CheckLeave() {\n\t\t\treturn\n\t\t}\n\t}\n\n\troom.InvokeLeave(10, func() {\n\t\troom.gl.close(\"all leave!\")\n\t})\n\n}\n\nfunc (room *Room) SendMsg(msgId interface{}, msg proto.Message) {\n\tdata, err := gp.Marshal(msg)\n\tif err != nil {\n\t\tlog.Error(\"SendMsg.Marshal error:%v\", err)\n\t\treturn\n\t}\n\tfor _, p := range room.players {\n\t\tp.SendRaw(msgId, data)\n\t}\n\n}\nfunc (room *Room) SendRaw(msgId interface{}, data []byte) {\n\n\tfor _, p := range room.players {\n\t\tp.SendRaw(msgId, data)\n\t}\n\n}\n\nfunc (room *Room) GetPlayer(uid uint64) *Player {\n\n\tif p, ok := room.players[uid]; ok {\n\t\treturn p\n\t}\n\treturn nil\n}\n\nfunc (room *Room) PrintPlayers() {\n\tlog.Info(\"############room player count:%v\", len(room.players))\n\tfor _, p := range room.players {\n\t\tlog.Info(\"player:%v,%v\", p.GetID(), p.GetName())\n\t}\n}\nfunc (room *Room) recoverBattle(uid uint64, newAgent *actor.PID) msgs.GAErrorCode {\n\tp, found := room.players[uid]\n\tif !found {\n\t\treturn msgs.NoFoundTarget\n\t}\n\tp.Recover(newAgent)\n\n\tif room.state == BATTLE_STAGE_Game {\n\t\troom.invokeTimerLeave.Stop()\n\t}\n\treturn msgs.OK\n}\n\nfunc (room *Room) OnEnd() {\n\tlog.Info(\"room.end %v\", room.roomId)\n}\n"
  },
  {
    "path": "server/src/Server/battle/utility.go",
    "content": "package battle\n\nimport (\n\t\"math/rand\"\n\t\"time\"\n)\n\nfunc PassDayZero(clock int32, newClock int32) bool {\n\tif clock < newClock {\n\t\tif time.Unix(int64(clock), 0).Format(\"200601\") != time.Unix(int64(newClock), 0).Format(\"200601\") {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc PassDay(clock int32, newClock int32, timeIndex int32) bool {\n\tclock -= timeIndex * 1800\n\tnewClock -= timeIndex * 1800\n\treturn PassDayZero(clock, newClock)\n}\n\nfunc BMoney(key int32) bool {\n\tif key == 1 || key == 2 || key == 3 {\n\t\treturn true\n\t}\n\treturn false\n}\n\ntype Tempstruct struct {\n\titemId int32\n\tweight int32\n}\n\ntype Temp1 struct {\n\tkey    int32\n\titemId int32\n\tweight int32\n}\n\nfunc getIndex(n int32, ret []Temp1) int32 {\n\tfor _, v := range ret {\n\t\tif v.key < n {\n\t\t\tn += v.weight\n\t\t}\n\t}\n\treturn n\n}\n\nfunc GetRand(num int32) int32 {\n\treturn int32(rand.Intn(int(num)))\n}\n\nfunc bPassDay(clock, newClock int64) bool {\n\t//var timeIndex = int64(PASS_DAY_TIME_INDEX)\n\tvar timeIndex = int64(0)\n\tclock -= timeIndex * 1800\n\tnewClock -= timeIndex * 1800\n\treturn bPassDayZero(clock, newClock)\n}\n\nfunc bPassDayZero(clock, newClock int64) bool {\n\t//一天=86400s\n\t_, timezone := time.Now().Zone()\n\t//fmt.Println(newClock/86400, clock/86400, timezone)\n\t//fmt.Println((newClock-int64(timezone))/86400, (clock-int64(timezone))/86400)\n\t//return (newClock+int64(timezone))/86400 > (clock)/86400\n\treturn (newClock - clock) >= (86400 - (clock+int64(timezone))%86400)\n}\n\n//1970 to now,seconds\nfunc GetNowTimeSecond() int64 {\n\treturn time.Now().Unix()\n}\n\n//下一个 间隔时间===========================================================================\nfunc SharpMinute(c, now int64) int64 {\n\treturn (now + c*60) / 60 * 60\n}\nfunc SharpHour(c, now int64) int64 {\n\treturn (now + c*3600) / 3600 * 3600\n}\nfunc SharpDayT(c, now int64) int64 {\n\ttt := time.Unix(now, 0)\n\ty := tt.Year()\n\tm := tt.Month()\n\td := tt.Day()\n\tt1 := time.Date(y, m, d, 0, 0, 0, 0, time.Local)\n\treturn t1.Unix() + c*24*60*60\n}\nfunc SharpWeek(c, now int64) int64 {\n\ttt := time.Unix(now, 0)\n\tweek := tt.Weekday()\n\tif week == 0 {\n\t\tweek = 7\n\t}\n\tnow = now + (7*c+1-int64(week))*86400\n\treturn SharpDayT(0, now)\n}\nfunc SharpMonth(c, now int64) int64 {\n\ttt := time.Unix(now, 0)\n\tm := tt.Month()\n\ty := tt.Year() + int(m/12)\n\tm = m % 12\n\tt1 := time.Date(y, m, 1, 0, 0, 0, 0, time.Local)\n\treturn t1.Unix()\n}\nfunc SharpYear(c, now int64) int64 {\n\ttt := time.Unix(now, 0)\n\ty := tt.Year() + int(c)\n\tt1 := time.Date(y, 0, 1, 0, 0, 0, 0, time.Local)\n\treturn t1.Unix()\n}\n\nfunc Bool2I32(b bool) int32 {\n\tif b {\n\t\treturn 1\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "server/src/Server/center/centerserver.go",
    "content": "package center\n\nimport (\n\t\"gameproto/msgs\"\n\t\"github.com/magicsea/ganet/log\"\n\t\"github.com/magicsea/ganet/service\"\n\t\"github.com/magicsea/ganet/util\"\n\t\"reflect\"\n\t\"time\"\n\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n)\n\ntype CenterService struct {\n\tservice.ServiceData\n\tserviceGroups map[string]*ServiceGroup //所有服务 map[type]group\n\tserviceAll    map[string]*ServiceNode  //索引服务路径引用 map[addr+id]group\n}\n\n//Service 获取服务对象\nfunc Service() service.IService {\n\treturn new(CenterService)\n}\n\nfunc Type() string {\n\treturn \"center\"\n}\n\n//以下为接口函数\nfunc (s *CenterService) OnReceive(context service.Context) {\n\tlog.Debug(\"center.OnReceive:%v\", context.Message())\n\n}\n\nfunc (s *CenterService) OnInit() {\n\ts.serviceGroups = make(map[string]*ServiceGroup)\n\ts.serviceAll = make(map[string]*ServiceNode)\n}\n\nfunc (s *CenterService) OnStart(as *service.ActorService) {\n\n\t//as.RegisterMsg(reflect.TypeOf(&msgs.RemoveService{}), s.OnRemoveService)  //解注册服务器\n\tas.RegisterMsg(reflect.TypeOf(&msgs.AddService{}), s.OnAddService)              //注册服务器\n\tas.RegisterMsg(reflect.TypeOf(&actor.Terminated{}), s.OnChildServiceTerminated) //被动断开服务器\n\tas.RegisterMsg(reflect.TypeOf(&msgs.UploadService{}), s.OnUpdateService)        //更新服务器\n\tas.RegisterMsg(reflect.TypeOf(&msgs.ApplyService{}), s.OnApplyService)          //获取一个服务器\n\tas.RegisterMsg(reflect.TypeOf(&msgs.GetTypeServices{}), s.GetTypeServices)      //获取一类服务器\n\n\tas.RegisterMsg(reflect.TypeOf(&msgs.Tick{}), s.OnTick)\n\tutil.StartLoopTask(time.Second*time.Duration(5), s.Tick)\n\tlog.Debug(\"center OnStart ok!!\")\n}\nfunc (s *CenterService) Tick() {\n\ts.Pid.Tell(&msgs.Tick{})\n}\n\n\nfunc (s *CenterService) OnTick(context service.Context) {\n\tlog.Info(\"CenterService tick\")\n}\n\n//注册服务器\nfunc (s *CenterService) OnAddService(context service.Context) {\n\n\tmsg := context.Message().(*msgs.AddService)\n\tlog.Info(\"center.OnAddService:%s,pid=%s,%+v\", msg.ServiceName, msg.Pid.String(), msg.Values)\n\tvar group *ServiceGroup\n\tif g, ok := s.serviceGroups[msg.ServiceType]; !ok {\n\t\tgroup = new(ServiceGroup)\n\t\tgroup.services = make(map[string]*ServiceNode)\n\t\ts.serviceGroups[msg.ServiceType] = group\n\t\tlog.Info(\"new service Type:%v\", msg.ServiceType)\n\t} else {\n\t\tgroup = g\n\t}\n\n\tvar node = &ServiceNode{pid: msg.Pid,\n\t\tserviceType: msg.ServiceType,\n\t\tserviceName: msg.ServiceName,\n\t\tload:        0,\n\t\tstate:       msgs.ServiceStateFree,\n\t\tvalues:      msg.Values}\n\n\ts.serviceAll[node.pid.String()] = node //加入索引\n\tgroup.AddService(node)                 //加入group\n\tcontext.Watch(node.pid)                //监控\n\n\tcontext.Request(context.Sender(), &msgs.AddServiceRep{})\n\tlog.Info(\"center.OnAddService  OK:%s\", msg.ServiceName)\n}\n\n//解注册服务器\nfunc (s *CenterService) __OnRemoveService(context service.Context) {\n\tlog.Info(\"center.OnRemoveService:%+v\", context.Message())\n\tmsg := context.Message().(*msgs.RemoveService)\n\n\tvar group *ServiceGroup\n\tif g, ok := s.serviceGroups[msg.ServiceType]; !ok {\n\t\tgroup = g\n\t\tlog.Error(\"no found service Type:%v\", msg.ServiceType)\n\t\treturn\n\t}\n\n\tgroup.RemoveService(msg.ServiceName)\n}\n\n//被动断开服务器\nfunc (s *CenterService) OnChildServiceTerminated(context service.Context) {\n\tlog.Info(\"center.OnChildServiceTerminated:%+v\", context.Message())\n\n\tmsg := context.Message().(*actor.Terminated)\n\t//context.Unwatch(msg.Who) //需要主动unwatch???\n\tpath := msg.Who.String()\n\n\tsv := s.serviceAll[path]\n\tif sv == nil {\n\t\tlog.Error(\"OnChildServiceTerminated,no found service:%v\", path)\n\t\treturn\n\t}\n\tdelete(s.serviceAll, path) //移除索引\n\n\tvar group *ServiceGroup\n\tif g, ok := s.serviceGroups[sv.serviceType]; !ok {\n\t\tgroup = g\n\t\tlog.Error(\"OnChildServiceTerminated,no found service Type:%v\", sv.serviceType)\n\t\treturn\n\t}\n\n\tgroup.RemoveService(sv.serviceName) //移除group\n}\n\n//更新服务器\nfunc (s *CenterService) OnUpdateService(context service.Context) {\n\tlog.Debug(\"center.OnUpdateService:%v\", context.Message())\n\tmsg := context.Message().(*msgs.UploadService)\n\n\tif sv, ok := s.serviceAll[msg.ServiceName]; ok {\n\t\tsv.load = msg.Load\n\t\tsv.state = msg.State\n\t}\n}\n\n//获取一个服务器\nfunc (s *CenterService) OnApplyService(context service.Context) {\n\tlog.Debug(\"center.OnApplyService:%v\", context.Message())\n\tmsg := context.Message().(*msgs.ApplyService)\n\tvar group *ServiceGroup\n\tif g, ok := s.serviceGroups[msg.ServiceType]; !ok {\n\t\tlog.Error(\"OnApplyService,no found service Type:%v\", msg.ServiceType)\n\t\tcontext.Sender().Tell(&msgs.ApplyServiceResult{Result: msgs.Error})\n\t\treturn\n\t} else {\n\t\tgroup = g\n\t}\n\tsv := group.GetBestService()\n\tresultMsg := &msgs.ApplyServiceResult{ServiceType: msg.ServiceType}\n\tif sv != nil {\n\t\tresultMsg.Result = msgs.OK\n\t\tresultMsg.Pid = sv.pid\n\t\tresultMsg.ServiceName = sv.serviceName\n\t\tresultMsg.Values = sv.values\n\t} else {\n\t\tresultMsg.Result = msgs.Fail\n\t\tlog.Error(\"OnApplyService have no service:%v\", msg.ServiceType)\n\t}\n\tcontext.Sender().Tell(resultMsg)\n}\n\n//获取一类服务器\nfunc (s *CenterService) GetTypeServices(context service.Context) {\n\tlog.Debug(\"center.GetTypeServices:\", context.Message())\n\tmsg := context.Message().(*msgs.GetTypeServices)\n\tvar group *ServiceGroup\n\tif g, ok := s.serviceGroups[msg.ServiceType]; !ok {\n\t\tlog.Error(\"GetTypeServices,no found service Type:%v\", msg.ServiceType)\n\t\tcontext.Sender().Tell(&msgs.GetTypeServicesResult{})\n\t\treturn\n\t} else {\n\t\tgroup = g\n\t}\n\n\tresultMsg := &msgs.GetTypeServicesResult{}\n\tfor _, v := range group.services {\n\t\tresultMsg.Pids = append(resultMsg.Pids, v.pid)\n\t}\n\tcontext.Sender().Tell(resultMsg)\n}\n"
  },
  {
    "path": "server/src/Server/center/serviceNode.go",
    "content": "package center\n\nimport (\n\t\"gameproto/msgs\"\n\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n)\n\n//单个服务\ntype ServiceNode struct {\n\tpid         *actor.PID\n\tserviceName string\n\tserviceType string\n\tload        uint32 //负载\n\ttmpload     uint32 //临时负载(本地增加，防止同时大量请求导致都在一个服的问题)\n\tstate       msgs.ServiceState\n\t//data        map[string]interface{}\n\tvalues []*msgs.ServiceValue //自定义属性\n}\n\n//更新服务\nfunc (node *ServiceNode) UpdateService(up msgs.UploadService) {\n\tnode.load = up.Load\n\tnode.state = up.State\n\tnode.tmpload = 0\n}\nfunc (node *ServiceNode) GetServiceLoad() uint32 {\n\treturn node.load + node.tmpload\n}\n\n//-----------------------------------------------------------------------------------\n//一组类型服务\ntype ServiceGroup struct {\n\tservices map[string]*ServiceNode\n}\n\n//获取最优服务\nfunc (sg *ServiceGroup) GetBestService() *ServiceNode {\n\tvar best *ServiceNode\n\tfor _, v := range sg.services {\n\t\tif best == nil || v.GetServiceLoad() < best.GetServiceLoad() {\n\t\t\tbest = v\n\t\t}\n\t}\n\treturn best\n}\n\n//添加服务\nfunc (sg *ServiceGroup) AddService(node *ServiceNode) {\n\tsg.services[node.serviceName] = node\n}\n\n//删除服务\nfunc (sg *ServiceGroup) RemoveService(serviceName string) {\n\tdelete(sg.services, serviceName)\n}\n"
  },
  {
    "path": "server/src/Server/cluster/cluster.go",
    "content": "package cluster\n\nimport (\n\t//\"fmt\"\n\t\"github.com/magicsea/ganet/config\"\n\t\"sync\"\n\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n\t\"github.com/magicsea/ganet/log\"\n)\n\n//全局\nvar (\n\tremoteClients map[string]*RemoteClient //配置点\n\tmutex         sync.Mutex\n)\n\ntype Clustermgr struct {\n}\n\nfunc New() *Clustermgr {\n\treturn new(Clustermgr)\n}\nfunc (mgr *Clustermgr) OnInit() bool {\n\t//remoteClients = make(map[string]*RemoteClient)\n\n\t// if config.GetGlobleConfig().RemoteAddrs != nil {\n\t// \tfmt.Println(\"remote:\", config.GetGlobleConfig().RemoteAddrs)\n\t// \tfor serviceName, addr := range config.GetGlobleConfig().RemoteAddrs {\n\t// \t\tcreateClient(addr, serviceName)\n\t// \t}\n\t// }\n\treturn true\n}\nfunc (mgr *Clustermgr) Run() {\n\n}\n\nfunc (mgr *Clustermgr) OnDestroy() {\n}\n\nfunc GetServicePID(serviceName string) *RemoteClient {\n\t//todo:unsafe 频繁请求,可能有竞态，正式环境静态点要标明remote\n\t//if client := remoteClients[serviceName]; client != nil {\n\t//\treturn client\n\t//} else {\n\taddr := config.GetServiceAddress(serviceName)\n\treturn createClient(addr, serviceName)\n\t//}\n\n}\n\nfunc createClient(addr string, serviceName string) *RemoteClient {\n\t//mutex.Lock()\n\t//defer mutex.Unlock()\n\t//log.Info(\"createClient:%v,%v\", serviceName, addr)\n\tr := &RemoteClient{}\n\tif addr != \"\" {\n\t\tr.pid = actor.NewPID(addr, serviceName)\n\t} else {\n\t\tr.pid = actor.NewLocalPID(serviceName)\n\t}\n\t//remoteClients[serviceName] = r\n\treturn r\n}\n\nfunc DisconnectService(serviceName string) {\n\tmutex.Lock()\n\tdefer mutex.Unlock()\n\tlog.Info(\"DisconnectService:%v\", serviceName)\n\tif client := remoteClients[serviceName]; client != nil {\n\t\tdelete(remoteClients, serviceName)\n\t}\n}\n"
  },
  {
    "path": "server/src/Server/cluster/regcenter.go",
    "content": "package cluster\n\nimport (\n\t_ \"encoding/json\"\n\t\"gameproto/msgs\"\n\t\"github.com/magicsea/ganet/log\"\n)\n\n//注册到center\n//func RegServerToCenter(s *service.ServiceData, values []*msgs.ServiceValue) bool {\n//\tlog.Info(\"%v reg to center...\", s.Name)\n//\n//\tmsg := msgs.AddService{\n//\t\tServiceName: s.Name,\n//\t\tServiceType: s.TypeName,\n//\t\tPid:         s.GetPID(),\n//\t\tValues:      values}\n//\tpid := GetServicePID(\"center\")\n//\t_, err := pid.Ask(&msg)\n//\tif err != nil {\n//\t\tlog.Error(\"%v reg to center fail:%v  pid=%v\", s.Name, err, pid.pid.String())\n//\t\t// if err.Error() == \"future: timeout\" {\n//\t\t// \tDisconnectService(\"center\")\n//\t\t// }\n//\t\t//重连\n//\t\treturn false\n//\t}\n//\tlog.Info(\"%v reg to center OK!\", s.Name)\n//\treturn true\n//}\n\n// func RegServerWork(s *service.ServiceData, values []*msgs.ServiceValue) {\n// \tgo func() {\n// \t\tfor {\n// \t\t\tif RegServerToCenter(s, values) {\n// \t\t\t\tbreak\n// \t\t\t}\n// \t\t}\n// \t}()\n\n// }\n\nfunc UpdateServiceLoad(serviceName string, load uint32, state msgs.ServiceState) {\n\tlog.Debug(\"%v UpdateServiceLoad %v-%v\", serviceName, load, state)\n\n\tmsg := msgs.UploadService{\n\t\tServiceName: serviceName,\n\t\tLoad:        load,\n\t\tState:       state}\n\tGetServicePID(\"center\").Tell(&msg)\n}\n"
  },
  {
    "path": "server/src/Server/cluster/remoteclient.go",
    "content": "package cluster\n\nimport (\n\t\"log\"\n\t\"time\"\n\t//\"gameproto/msgs\"\n\t//\"github.com/magicsea/ganet/app\"\n\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n\t//\"github.com/AsynkronIT/protoactor-go/remote\"\n\t\"sync\"\n)\n\ntype RemoteClient struct {\n\tpid   *actor.PID\n\tusage string\n\tmutex sync.Mutex\n}\n\n//通知一条消息，立刻返回\nfunc (client *RemoteClient) Tell(args interface{}) {\n\tclient.pid.Tell(args)\n}\n\n//通知一条消息，阻塞等待结果\nfunc (client *RemoteClient) Ask(args interface{}) (interface{}, error) {\n\n\tresult, err := client.pid.RequestFuture(args, 3*time.Second).Result()\n\tif err != nil {\n\t\tlog.Println(\"rpc ask fail:\", err, \" message:\", args, \" to \", client.usage)\n\t}\n\treturn result, err\n}\n\n//通知一条信息，立刻返回，结果会放回recv通道\nfunc (client *RemoteClient) AskCB(args interface{}, respTo *actor.PID) {\n\tclient.pid.Request(args, respTo)\n}\n\nfunc (client *RemoteClient) GetActorPID() *actor.PID {\n\treturn client.pid\n}\n"
  },
  {
    "path": "server/src/Server/config/config.go",
    "content": "package config\n\nimport (\n\t\"encoding/json\"\n\t\"github.com/magicsea/ganet/config\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"strconv\"\n)\n\ntype Config struct {\n\tBase           config.ServiceConfig `json:\"config\"`\n\tRedis          *RedisConf           `json:\"redis\"`\n\tDB             map[string]string    `json:\"db\"`\n\tDesignConfig   map[string]string    `json:\"design\"`\n\tVer            string               `json:\"ver\"`\n\tGameConfigPath string               `json:\"gameconfig\"`\n}\n\ntype RedisConf struct {\n\tAddr     string `json:\"addr\"`\n\tPassword string `json:\"password\"`\n\tPoolSize int    `json:\"poolsize\"`\n\tDBs      []int  `json:\"dbs\"`\n}\n\nvar appConfig *Config\n\nfunc LoadConfig(confPath string) (*Config, error) {\n\tif data, err := ioutil.ReadFile(confPath); err != nil {\n\t\treturn nil, err\n\t} else {\n\t\tvar conf = &Config{}\n\t\terr := json.Unmarshal(data, conf)\n\t\tappConfig = conf\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\t//if conf.GameConfigPath != \"\" {\n\t\t//\terr2 := LoadGameConfig(conf.GameConfigPath)\n\t\t//\treturn conf, err2\n\t\t//}\n\t\treturn conf, nil\n\t}\n\n}\n\nfunc (conf *Config) GetDBConfigInt(key string) (int, bool) {\n\tif v, ok := conf.DB[key]; ok {\n\t\ti, e := strconv.Atoi(v)\n\t\tif e != nil {\n\t\t\tlog.Fatalf(\"GetDBConfigInt err:%v\", key)\n\t\t}\n\t\treturn i, true\n\t}\n\treturn 0, false\n}\n\nfunc GetAppConf() *Config {\n\treturn appConfig\n}\nfunc SetConfig(c *Config) {\n\tappConfig = c\n}\n"
  },
  {
    "path": "server/src/Server/db/dbmgr.go",
    "content": "package db\n\nimport (\n\t\"Server/config\"\n\t\"github.com/magicsea/ganet/log\"\n\tgdb \"github.com/magicsea/ganet/mysqldb\"\n)\n\nvar gameDB *gdb.DBClient\n\ntype DBMgr struct {\n}\n\nfunc NewMgr() *DBMgr {\n\treturn new(DBMgr)\n}\nfunc (mgr *DBMgr) OnInit() bool {\n\t//注册表结构\n\tgdb.RegDBModule(new(User))\n\t//gdb.RegDBModule(new(Player))\n\n\t//初始化连接\n\tif v, ok := config.GetAppConf().DB[\"game\"]; ok {\n\t\tg, err := gdb.ConnectDB(v, \"default\")\n\t\tif err != nil {\n\t\t\tlog.Error(\"load gamedb error:%v\", err)\n\t\t\treturn false\n\t\t}\n\t\tgameDB = g\n\t\tlog.Info(\"load gamedb ok!\")\n\t}\n\t//Testdb()\n\treturn true\n}\n\nfunc Testdb() {\n\tp := Player{Id: 16, Name: \"wwwggg\", Exp: 1}\n\t_, err := GetGameDB().Insert(&p)\n\tif err != nil {\n\t\tlog.Error(\"Insert err:%v\", err.Error())\n\t}\n}\n\nfunc (mgr *DBMgr) Run() {\n\n}\n\nfunc (mgr *DBMgr) OnDestroy() {\n}\n\nfunc GetGameDB() *gdb.DBClient {\n\treturn gameDB\n}\n"
  },
  {
    "path": "server/src/Server/db/gameMD.go",
    "content": "package db\n\n/*************注册数据库表结构**************/\n//user\ntype User struct {\n\tId             int64  `orm:\"column(uid)\",auto`\n\tAccount        string `orm:\"column(account)\"`\n\tPassword       string `orm:\"column(password)\"`\n\tRegisterTime   int64  `orm:\"column(registerTime)\"`\n\t//LastLoginTime  int64  `orm:\"column(lastLoginTime)\"`\n\t//LastLogoutTime int64  `orm:\"column(lastLogoutTime)\"`\n\t//BlackTime      int64  `orm:\"column(blackTime)\"`\n\t//DeviceId       string `orm:\"column(deviceId)\"`\n\t//LoginDays      int64  `orm:\"column(loginDays)\"`\n\n\t//`uid` int(11) NOT NULL AUTO_INCREMENT,\n\t//`platformId` varchar(255) CHARACTER SET utf8 NOT NULL,\n\t//`registerTime` int(15) NOT NULL DEFAULT '0',\n\t//`lastLoginTime` int(15) NOT NULL,\n\t//`lastLogoutTime` int(15) NOT NULL,\n\t//`blackTime` int(15) NOT NULL DEFAULT '0',\n\t//`deviceId` varchar(50) DEFAULT NULL,\n\t//`loginDays` int(5) NOT NULL DEFAULT '0',\n}\n\n//player\ntype Player struct {\n\tId      uint64 `orm:\"column(uid)\",auto`\n\tName    string `orm:\"column(username)\"`\n\tCgid    int    `orm:\"column(cgId)\"`\n\tLv      int    `orm:\"column(lv)\"`\n\tExp     int    `orm:\"column(exp)\"`\n\tExptime int64  `orm:\"column(expTime)\"`\n\tRmb     int32  `orm:\"column(rmb)\"`\n\tGold    int32  `orm:\"column(gold)\"`\n\tTicket  int32  `orm:\"column(ticket)\"`\n}\n\n//bag\ntype Bag struct {\n\tId      uint64 `orm:\"column(uid)\",auto`\n\tItemId  int64  `orm:\"column(itemId)\"`\n\tItemNum int64  `orm:\"column(itemNum)\"`\n}\n\n//ownCard\ntype OwnCard struct {\n\tId       uint64 `orm:\"column(uid)\",auto`\n\tCardid   int64  `orm:\"column(cardId)\"`\n\tCardnum  int64  `orm:\"column(cardNum)\"`\n\tGaintime int64  `orm:\"column(gainTime)\"`\n}\n\n//groupCard\ntype GroupCard struct {\n\tId        uint64 `orm:\"column(uid)\",auto`\n\tCardindex int64  `orm:\"column(cardIndex)\"`\n\tJobid     int16  `orm:\"column(jobId)\"`\n\tCardname  string `orm:\"column(CardName)\"`\n\tCardlist  string `orm:\"column(cardList)\"`\n\tEquiplist string `orm:\"column(equipList)\"`\n}\n\n//Hero\ntype Favor struct {\n\tId           uint64 `orm:\"column(uid)\",auto`\n\tHeroid       int32  `orm:\"column(heroId)\"`\n\tLv           int16  `orm:\"column(lv)\"`\n\tExp          int32  `orm:\"column(exp)\"`\n\tUsecount     int32  `orm:\"column(useCount)\"`\n\tStairwin     int32  `orm:\"column(stairWin)\"`\n\tArenawin     int32  `orm:\"column(arenaWin)\"`\n\tUsecard      int32  `orm:\"column(useCars)\"`\n\tBattleindex  int32  `orm:\"column(battleIndex)\"`\n\tUsedcardlist string `orm:\"column(usedCarsList)\"`\n\tLasttime     int32  `orm:\"column(lastTime)\"`\n}\n\n//Draw\ntype Draw struct {\n\tId             uint64 `orm:\"column(uid)\",auto`\n\tDrawid         int32  `orm:\"column(drawId)\"`\n\tDrawnum        string `orm:\"column(drawNum)\"`\n\tDrawtime       int32  `orm:\"column(drawTime)\"`\n\tTendrawtime    int32  `orm:\"column(tenDrawTime)\"`\n\tNextbetterdraw int32  `orm:\"column(nextBetterDraw)\"`\n\tDrawcount      int32  `orm:\"column(drawCount)\"`\n\tTenrdawcount   int32  `orm:\"column(tenDrawCount)\"`\n}\n\n//MainQuest\ntype Mainquset struct {\n\tId       uint64 `orm:\"column(uid)\",auto`\n\tGroupId  int32  `orm:\"column(GroupId)\"`\n\tGroupNum int32  `orm:\"column(GroupNumber)\"`\n\tNum      int32  `orm:\"column(num)\"`\n}\n\n//人物战斗信息\ntype PlayerBattleInfo struct {\n\tRoomType     int32\n\tRoomKey      string\n\tBattleAddr   string\n\tBattleAddrID string\n\tRoomInfo     string\n\tBattleState  int32 //BattleState\n}\n\n//个人战斗结果\ntype BattleEndInfo struct {\n\tRoomId     string\n\tBattleType int32\n\tStageId    int32\n\tScore      int32\n\tWin        int32\n}\n"
  },
  {
    "path": "server/src/Server/db/redfun.go",
    "content": "package db\n\nimport \"github.com/magicsea/ganet/log\"\n\ntype BattleState int32\n\nconst (\n\tBattleStateFree  BattleState = 0\n\tBattleStateQueue BattleState = 1\n\tBattleStateFight BattleState = 2\n\tBattleStateEnd   BattleState = 3\n)\n\n//获取玩家战斗信息\nfunc GetPlayerBattleInfo(id uint64) *PlayerBattleInfo {\n\tinfo := &PlayerBattleInfo{}\n\tif b, _ := GetRedisObject(info, id, GetRedisBattle()); b {\n\t\treturn info\n\t}\n\treturn nil\n}\n\n//设置玩家战斗信息\nfunc SetPlayerBattleInfo(id uint64, info *PlayerBattleInfo) {\n\tSetRedisObject(info, id, GetRedisBattle())\n}\n\n//设置玩家战斗结束\nfunc SetPlayerBattleState(id uint64, state int32) {\n\tinfo := &PlayerBattleInfo{BattleState: state}\n\tUpdateRedisObjectFields(info, id, GetRedisBattle(), \"BattleState\")\n}\n\n//设置玩家战斗结束\nfunc SetPlayerBattleFinish(id uint64) {\n\tinfo := &PlayerBattleInfo{BattleState: int32(BattleStateEnd)}\n\tUpdateRedisObjectFields(info, id, GetRedisBattle(), \"BattleState\")\n}\n\n//单独设置roominfo\nfunc SetPlayerRoomInfo(id uint64, romminfo string) {\n\tinfo := &PlayerBattleInfo{RoomInfo: romminfo}\n\tUpdateRedisObjectFields(info, id, GetRedisBattle(), \"RoomInfo\")\n}\n\nfunc SavePlayerFightInfo(uid uint64, roomType int32, roomKey, addr, addrId string) {\n\tlog.Info(\"SavePlayerInfo :uid=%v,roomType=%v,roomkey=%v\", uid, roomType, roomKey)\n\tSetPlayerBattleInfo(uid,\n\t\t&PlayerBattleInfo{\n\t\t\tRoomType:     roomType,\n\t\t\tRoomKey:      roomKey,\n\t\t\tBattleAddr:   addr,\n\t\t\tBattleAddrID: addrId,\n\t\t\t//RoomInfo:   string(romminfo),\n\t\t\tBattleState: int32(BattleStateFight),\n\t\t})\n}\n\n//删除战斗信息\nfunc ClearPlayerBattleInfo(id uint64, info *PlayerBattleInfo) {\n\tvar roomType int32\n\tvar roomKey string\n\tif info != nil {\n\t\troomType = info.RoomType\n\t\troomKey = info.RoomKey\n\t}\n\tlog.Info(\"ClearPlayerBattleInfo :uid=%v,roomType=%v,roomkey=%v\", id, roomType, roomKey)\n\tDeleteRedisObject(info, id, GetRedisBattle())\n}\n\ntype MsgBattleRoomInfo struct {\n\tUid        uint64  `json:\"uid\"`\n\tRoomType   int32   `json:\"rtype\"`\n\tHero       int32   `json:\"hero\"`\n\tCardList   []int32 `json:\"card\"`\n\tEquipList  []int32 `json:\"equip\"`\n\tName       string  `json:\"name\"`\n\tLevel      int32   `json:\"lv\"`\n\tStair      int32   `json:\"stair\"`\n\tScore      int32   `json:\"score\"`\n\tStairScore int32   `json:\"stairScore\"`\n\tAI         int32   `json:\"ai\"`\n\tTime       int64   `json:\"time\"`\n\tBoss       int32   `json:\"boss\"`\n\tKey        string\n}\n\nfunc CheckWhiteIP(ip string) (bool, error) {\n\twhiteopen, errwh := GetRedisConfig().Get(\"whiteip\").Result()\n\tlog.Info(\"login client addr:%s    whiteopen:%s\", ip, whiteopen, errwh)\n\n\tif whiteopen == \"true\" {\n\t\ts, err := GetRedisConfig().HGet(\"whiteips\", ip).Result()\n\t\tif err != nil || s != \"true\" {\n\t\t\treturn false, err\n\t\t}\n\t}\n\n\treturn true, nil\n}\n"
  },
  {
    "path": "server/src/Server/db/redismgr.go",
    "content": "package db\n\nimport (\n\t\"github.com/magicsea/ganet/log\"\n\t\"Server/config\"\n\t\"time\"\n\n\t\"github.com/go-redis/redis/v7\"\n)\n\n//redis db用途\ntype RedisDBUse int\n\nconst (\n\tRedisDBUseGame       RedisDBUse = iota //游戏角色相关数据 0\n\tRedisDBUseBattleLoad                   //战场负载数据 1\n\tRedisDBUseBattleInfo                   //战斗相关数据 2\n\tRedisDBFriend                          //好友相关数据 3\n\tRedisDBGuild                           //公会相关数据 4\n\tRedisDBConfig        = 10              //一些及时配置\n\tRedisDBUseMax\n)\n\ntype RedisMgr struct {\n\tclients map[RedisDBUse]*redis.Client\n}\n\nfunc NewRedisMgr() *RedisMgr {\n\tr := new(RedisMgr)\n\tr.clients = make(map[RedisDBUse]*redis.Client)\n\tredisMgr = r\n\treturn r\n}\n\nfunc (mgr *RedisMgr) OnInit() bool {\n\tif config.GetAppConf().Redis != nil {\n\t\tfor _, v := range config.GetAppConf().Redis.DBs {\n\t\t\tif !mgr.NewRedisClient(v, config.GetAppConf().Redis.Addr, config.GetAppConf().Redis.PoolSize, config.GetAppConf().Redis.Password) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc (mgr *RedisMgr) NewRedisClient(dbIndex int, addr string, poolsize int, passsword string) bool {\n\tredclient := redis.NewClient(&redis.Options{\n\t\tAddr:         addr, //\":6379\",\n\t\tDialTimeout:  10 * time.Second,\n\t\tReadTimeout:  30 * time.Second,\n\t\tWriteTimeout: 30 * time.Second,\n\t\tPoolSize:     poolsize, //10,\n\t\tPassword:     passsword,\n\t\tPoolTimeout:  30 * time.Second,\n\t\tDB:           dbIndex,\n\t})\n\t_, err := redclient.Set(\"test____\", 1, time.Second*10).Result()\n\t//log.Info(\"redis test:\", dbIndex, \" result:\", r, \" err:\", err)\n\tif err != nil {\n\t\tlog.Error(\"%v\", err)\n\t\treturn false\n\t}\n\tmgr.clients[RedisDBUse(dbIndex)] = redclient\n\treturn true\n}\n\nfunc (mgr *RedisMgr) Run() {\n\n}\n\nfunc (mgr *RedisMgr) OnDestroy() {\n}\n\nvar redisMgr *RedisMgr\n\nfunc GetRedisDB(dbIndex RedisDBUse) *redis.Client {\n\tif client, b := redisMgr.clients[dbIndex]; b {\n\t\treturn client\n\t}\n\tlog.Error(\"GetRedisDB no exist:%v\", dbIndex)\n\treturn nil\n}\n\nfunc GetRedisGame() *redis.Client {\n\treturn GetRedisDB(RedisDBUseGame)\n}\n\nfunc GetRedisBattleLoad() *redis.Client {\n\treturn GetRedisDB(RedisDBUseBattleLoad)\n}\n\nfunc GetRedisBattle() *redis.Client {\n\treturn GetRedisDB(RedisDBUseBattleInfo)\n}\n\nfunc GetRedisFriend() *redis.Client {\n\treturn GetRedisDB(RedisDBFriend)\n}\n\nfunc GetRedisGuild() *redis.Client {\n\treturn GetRedisDB(RedisDBGuild)\n}\nfunc GetRedisConfig() *redis.Client {\n\treturn GetRedisDB(RedisDBConfig)\n}\n"
  },
  {
    "path": "server/src/Server/db/xredsql.go",
    "content": "package db\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"github.com/go-redis/redis/v7\"\n\t\"github.com/magicsea/ganet/util\"\n\t\"reflect\"\n\t\"strings\"\n\t\"github.com/magicsea/ganet/log\"\n\t\"time\"\n)\n\n/*\n//穿透获取对象,先那redis，没有再拿mysql\n//必须结构里赋值id，通过传入id相通\nfunc XRead(o interface{}, id interface{}, redclient *redis.Client, dbclient *gdb.DBClient) (bool, error) {\n\t//hashName := MakeHashKey(o, id)\n\t//emp =redclient.HGet(hashName, \"_empty_\").Int64() if emp>0 return true,nil\n\t//get redis\n\tfound, _ := GetRedisObject(o, id, redclient)\n\tif found {\n\t\treturn false, nil\n\t}\n\t//get db\n\tnorow, err := dbclient.Read(o)\n\tif err != nil {\n\t\treturn norow, err\n\t}\n\tif norow {\n\t\t//todo:这里可能db没有数据的时候反复读\n\t\t//redclient.HSet(hashName, \"_empty_\", 1)\n\t\treturn norow, nil\n\t}\n\t//写回redis\n\tSetRedisObject(o, id, redclient)\n\treturn true, nil\n}\n\n//更新多个字段\nfunc XUpdate(o interface{}, id interface{}, redclient *redis.Client, dbclient *gdb.DBClient, colNames ...string) {\n\t//update redis\n\tUpdateRedisObjectFields(o, id, redclient, colNames...)\n\t//udpate db\n\tdbclient.Update(o, colNames...)\n\t//redclient.HSet(hashName, \"_empty_\", 0)\n}\n\n//插入\nfunc XInsert(o interface{}, redclient *redis.Client, dbclient *gdb.DBClient) (int64, error) {\n\t//udpate db\n\tid, err := dbclient.Insert(o)\n\tif err != nil {\n\t\tlog.Error(\"XInsert error:\", err)\n\t\treturn 0, err\n\t}\n\t//update redis\n\tSetRedisObject(o, id, redclient)\n\t//redclient.HSet(hashName, \"_empty_\", 0)\n\treturn id, nil\n}\n\n//删除\n//必须结构里赋值id，通过传入id相通\n//todo:只支持主键删除\nfunc XDelete(o interface{}, id interface{}, redclient *redis.Client, dbclient *gdb.DBClient) (int64, error) {\n\t//udpate db\n\tok, err := dbclient.Delete(o)\n\tif err != nil {\n\t\tlog.Error(\"XDelete error:\", err)\n\t\treturn 0, err\n\t}\n\t//update redis\n\tDeleteRedisObject(o, id, redclient)\n\treturn ok, nil\n}\n*/\n//---------------------------------------redis jobs----------------------------------------\n//删除一个hash对象\nfunc DeleteRedisObject(o interface{}, id interface{}, redclient *redis.Client) {\n\thashName := MakeHashKey(o, id)\n\tredclient.Del(hashName)\n\tlog.Info(\"DeleteRedisObject:%v\", hashName)\n}\n\n//更新多个字段，不指定colNames就更新所有\nfunc UpdateRedisObjectFields(o interface{}, id interface{}, redclient *redis.Client, colNames ...string) {\n\tif len(colNames) < 1 {\n\t\t//不指定就更新所有\n\t\tSetRedisObject(o, id, redclient)\n\t} else {\n\t\t//更新指定列\n\t\thashName := MakeHashKey(o, id)\n\t\tv := reflect.ValueOf(o).Elem()\n\t\t//t := reflect.TypeOf(o).Elem()\n\n\t\thash := make(map[string]interface{})\n\t\tfor _, col := range colNames {\n\t\t\thash[col] = v.FieldByName(col).Interface()\n\t\t}\n\t\tredclient.HMSet(hashName, hash)\n\t}\n}\n\n//增加一个字段数据\nfunc IncreRedisObjectField(o interface{}, id interface{}, redclient *redis.Client, col string, incre int64) (int64, error) {\n\thashName := MakeHashKey(o, id)\n\treturn redclient.HIncrBy(hashName, col, incre).Result()\n}\n\n//获取一个字段\nfunc GetRedisObjectField(o interface{}, id interface{}, redclient *redis.Client, col string) (string, error) {\n\thashName := MakeHashKey(o, id)\n\treturn redclient.HGet(hashName, col).Result()\n}\n\n//通过前置名获取一个字段\nfunc GetRedisObjectFieldByKey(prename string, id interface{}, redclient *redis.Client, col string) (string, error) {\n\thashName := MakeStringHashKey(prename, id)\n\treturn redclient.HGet(hashName, col).Result()\n}\n\n//直接从redis拿，\n//返回:是否查找到\nfunc GetRedisObject(o interface{}, id interface{}, redclient *redis.Client) (bool, error) {\n\thashName := MakeHashKey(o, id)\n\tb, err := GetRedisObjectByKey(o, hashName, redclient)\n\treturn b, err\n}\n\n//直接从redis拿,通过redis key\n// func GetRedisObjectByKey(o interface{}, hashName string, redclient *redis.Client) (bool, error) {\n\n// \tv := reflect.ValueOf(o).Elem()\n// \t//get redis\n// \tm, err := redclient.HGetAll(hashName).Result()\n// \t//fmt.Println(\"hash \", m)\n// \tif err == nil {\n// \t\tif len(m) > 0 {\n// \t\t\tfor name, val := range m {\n// \t\t\t\terr := util.SetValueFromStr(v.FieldByName(name), val)\n// \t\t\t\tif err != nil {\n// \t\t\t\t\tlog.Error(\"GetRedisObjectByKey:%v,error field:%v\", err, name)\n// \t\t\t\t\treturn false, err\n// \t\t\t\t}\n// \t\t\t}\n// \t\t\t//fmt.Println(\"get\", len(m))\n// \t\t\treturn true, nil\n// \t\t}\n// \t} else {\n// \t\tlog.Error(\"GetRedisObject error:%v, %v\", err, hashName)\n// \t}\n\n// \treturn false, nil\n// }\n\n//直接从redis拿1\n//支持类型：各基础类型,[]byte,[]int32,map[string]intface{}\nfunc GetRedisObjectByKey(o interface{}, hashName string, redclient *redis.Client) (bool, error) {\n\tv := reflect.ValueOf(o).Elem()\n\t//get redis\n\tm, err := redclient.HGetAll(hashName).Result()\n\t//fmt.Println(\"hash \", m)\n\tif err == nil && len(m) > 0 {\n\t\tfor name, val := range m {\n\t\t\tvar fv = v.FieldByName(name)\n\t\t\tif !fv.IsValid() { //过滤不包含的字段\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err := util.SetValueFromStr(fv, val); err != nil {\n\t\t\t\tif util.IsStructType(fv.Kind()) {\n\t\t\t\t\tvar jsval = reflect.New(fv.Type().Elem()).Interface()\n\n\t\t\t\t\tvar errj = json.Unmarshal([]byte(val), jsval)\n\t\t\t\t\t//log.Info(\"jsval:%+v,%v,%v\", jsval, reflect.TypeOf(jsval), fv.Type())\n\t\t\t\t\tif errj != nil {\n\t\t\t\t\t\tlog.Error(\"GetRedisObjectByKey:%v,str:%s,error field:%v\", errj, val, name)\n\t\t\t\t\t\treturn false, errj\n\t\t\t\t\t}\n\t\t\t\t\tfv.Set(reflect.ValueOf(jsval))\n\t\t\t\t} else {\n\t\t\t\t\treturn false, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\t//fmt.Println(\"get\", len(m))\n\t\treturn true, nil\n\t}\n\tif err != nil {\n\t\tlog.Error(\"GetRedisObject error:%v, %v\", err, hashName)\n\t}\n\n\treturn false, err\n}\n\n//设置一个对象的多条属性\nfunc SetRedisObjectFields(o interface{}, id interface{}, redclient *redis.Client, m map[string]interface{}) error {\n\thashName := MakeHashKey(o, id)\n\treturn redclient.HMSet(hashName, m).Err()\n}\n\n//设置一个对象的一条属性\nfunc SetRedisObjectField(o interface{}, id interface{}, redclient *redis.Client, k string, v interface{}) error {\n\thashName := MakeHashKey(o, id)\n\tm := map[string]interface{}{k: v}\n\treturn redclient.HMSet(hashName, m).Err()\n}\n\n//保存一个对象到redis\nfunc SetRedisObject(o interface{}, id interface{}, redclient *redis.Client) error {\n\thashName := MakeHashKey(o, id)\n\tv := reflect.ValueOf(o).Elem()\n\tt := reflect.TypeOf(o).Elem()\n\t//fmt.Println(v, t)\n\thash := make(map[string]interface{})\n\tfor index := 0; index < v.NumField(); index++ {\n\t\t//fmt.Println(v.Field(index).Type(), t.Field(index).Name,\n\t\t//\t\"=>\", v.Field(index).Interface())\n\t\tvar fv = v.Field(index)\n\t\tvar f = fv.Interface()\n\t\tvar isRed = false\n\t\tswitch f.(type) {\n\t\tcase []byte:\n\t\t\tisRed = true\n\t\t}\n\t\tif util.IsStructType(fv.Kind()) && !isRed {\n\t\t\tvar js, e = json.Marshal(f)\n\t\t\tif e != nil {\n\t\t\t\tlog.Error(\"SetRedisObject:%v\", e)\n\t\t\t\treturn e\n\t\t\t}\n\t\t\tf = string(js)\n\t\t}\n\t\thash[t.Field(index).Name] = f\n\t\t//fmt.Println(index, v.NumField())\n\n\t}\n\n\tvar err = redclient.HMSet(hashName, hash).Err()\n\tlog.Debug(\"SetRedisObject:%v=>%v\", hashName, hash)\n\tif err != nil {\n\t\tlog.Error(\"SetRedisObject:%v=>%v  fail:%v\", hashName, hash, err)\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc SetRedisObjectExpire(o interface{}, id interface{}, redclient *redis.Client, extime time.Duration) error {\n\thashName := MakeHashKey(o, id)\n\tvar e = SetRedisObject(o, id, redclient)\n\tif e != nil {\n\t\treturn e\n\t}\n\tredclient.Expire(hashName, extime)\n\treturn nil\n}\n\n//Set 集合\nfunc Sadd(o interface{}, id interface{}, redclient *redis.Client, values interface{}) {\n\tName := MakeHashKey(o, id)\n\tredclient.SAdd(Name, values)\n}\n\n//获取集合长度\nfunc GetSetNum(o interface{}, id interface{}, redclient *redis.Client) int32 {\n\tName := MakeHashKey(o, id)\n\tnum := redclient.SCard(Name).Val()\n\treturn int32(num)\n}\n\n//获取集合全部元素\nfunc GetSetAll(o interface{}, id interface{}, redclient *redis.Client) []string {\n\tName := MakeHashKey(o, id)\n\tAllSets := redclient.SMembers(Name).Val()\n\treturn AllSets\n}\n\n//删除集合元素\nfunc DelSetObject(o interface{}, id interface{}, redclient *redis.Client, values interface{}) {\n\tName := MakeHashKey(o, id)\n\tredclient.SRem(Name, values)\n}\n\n//检查集合中是否有该元素\nfunc Sismember(o interface{}, id interface{}, redclient *redis.Client, values interface{}) bool {\n\tName := MakeHashKey(o, id)\n\treturn redclient.SIsMember(Name, values).Val()\n}\n\n//List 增加多个元素\nfunc Rpush(o interface{}, id interface{}, redclient *redis.Client, values interface{}) {\n\tListName := MakeHashKey(o, id)\n\tredclient.RPush(ListName, values)\n}\n\n//做一个key\nfunc MakeHashKey(o interface{}, id interface{}) string {\n\thashName := fmt.Sprintf(\"%v:%v\", reflect.TypeOf(o), id)\n\tsplstr := strings.Split(hashName, \".\")\n\tif len(splstr) > 1 {\n\t\thashName = splstr[1]\n\t}\n\treturn hashName\n}\n\nfunc MakeStringHashKey(objtype string, id interface{}) string {\n\thashName := fmt.Sprintf(\"%v:%v\", objtype, id)\n\treturn hashName\n}\n\n//获取 List长度\nfunc GetListNum(o interface{}, id interface{}, redclient *redis.Client) int32 {\n\tListName := MakeHashKey(o, id)\n\tnum := redclient.LLen(ListName).Val()\n\treturn int32(num)\n}\n\n//获取List最后一个元素\nfunc GetLastIndex(o interface{}, id interface{}, redclient *redis.Client) string {\n\tListName := MakeHashKey(o, id)\n\treturn redclient.LIndex(ListName, -1).Val()\n}\n\n//批量删除List 元素\nfunc Ldels(o interface{}, id interface{}, redclient *redis.Client, values ...interface{}) {\n\tListName := MakeHashKey(o, id)\n\tfor _, v := range values {\n\t\tredclient.LRem(ListName, 1, v)\n\t}\n}\n\n//删除List 某个元素\nfunc Ldel(o interface{}, id interface{}, redclient *redis.Client, value interface{}) {\n\tListName := MakeHashKey(o, id)\n\tredclient.LRem(ListName, 1, value)\n}\n\n//获取List全部元素\nfunc GetAllListInfo(o interface{}, id interface{}, redclient *redis.Client) []string {\n\tnums := GetListNum(o, id, redclient)\n\tListName := MakeHashKey(o, id)\n\tallList := []string{}\n\tfor k := 1; k <= int(nums); k++ {\n\t\tallList = append(allList, redclient.LIndex(ListName, int64(k)).Val())\n\t}\n\treturn allList\n}\n\n//检测key是否存在\nfunc Exists(o interface{}, id interface{}, redclient *redis.Client) bool {\n\tKeyName := MakeHashKey(o, id)\n\texists := redclient.Exists(KeyName).Val()\n\tif exists == 1 {\n\t\treturn true\n\t}\n\treturn false\n}\n\n//检测key是否存在\nfunc ExistsByKey(KeyName string, redclient *redis.Client) bool {\n\texists := redclient.Exists(KeyName).Val()\n\tif exists == 1 {\n\t\treturn true\n\t}\n\treturn false\n}\n\n//keys 检测某种key是否存在\nfunc Keys(o interface{}, id interface{}, redclient *redis.Client, last string) []string {\n\tKeyName := MakeHashKey(o, id)\n\t//fmt.Println(\"____\", KeyName+\"_*\")\n\treturn redclient.Keys(KeyName + last).Val()\n}\n\n//keys1 检测某种key是否存在\nfunc KeysBykey(key string, redclient *redis.Client) []string {\n\treturn redclient.Keys(key).Val()\n}\n\n//删除某个key\nfunc Del(key string, redclient *redis.Client) {\n\tredclient.Del(key)\n}\n\n//有序集合添加\nfunc Zadd(keyName string, redclient *redis.Client, score float64, value interface{}) {\n\ta := &redis.Z{}\n\ta.Score = score\n\ta.Member = value\n\tredclient.ZAdd(keyName, a)\n}\n\n//有序集合删除元素\nfunc Zrem(keyName string, redclient *redis.Client, value interface{}) {\n\tredclient.ZRem(keyName, value)\n}\n\n//获取集合全部元素 (积分 由高到底)\nfunc Zrevrange(keyName string, redclient *redis.Client, num int64) []string {\n\treturn redclient.ZRevRange(keyName, 0, num).Val()\n}\n\nfunc HSet(tableName, id string, redclient *redis.Client) int64 {\n\treturn redclient.HSet(tableName, id, 1).Val()\n}\n\nfunc HSetByValue(tableName, id string, value interface{}, redclient *redis.Client) int64 {\n\treturn redclient.HSet(tableName, id, value).Val()\n}\n\nfunc HGet(tableName, id string, redclient *redis.Client) string {\n\treturn redclient.HGet(tableName, id).Val()\n}\n\nfunc HKeys(tableName string, redclient *redis.Client) []string {\n\treturn redclient.HKeys(tableName).Val()\n}\n\nfunc HDel(tableName, id string, redclient *redis.Client) int64 {\n\treturn redclient.HDel(tableName, id).Val()\n}\n\nfunc HGetAll(tableName string, redclient *redis.Client) map[string]string {\n\treturn redclient.HGetAll(tableName).Val()\n}\n\n//批量获取\nfunc MGet(redclient *redis.Client, keys ...string) []interface{} {\n\tfmt.Println(\"------\", reflect.TypeOf(keys), len(keys))\n\treturn redclient.MGet(keys...).Val()\n}\n"
  },
  {
    "path": "server/src/Server/game/gameserver.go",
    "content": "package game\n\nimport (\n\t\"Server/cluster\"\n\t\"Server/db\"\n\t\"fmt\"\n\t\"gameproto/msgs\"\n\t\"github.com/magicsea/ganet/log\"\n\t\"github.com/magicsea/ganet/service\"\n\t\"github.com/magicsea/ganet/util\"\n\t\"reflect\"\n\t\"time\"\n\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n\t_ \"github.com/AsynkronIT/protoactor-go/actor\"\n\t\"github.com/go-redis/redis/v7\"\n)\n\ntype GameService struct {\n\tservice.ServiceData\n\tisReg bool\n}\n\ntype PlayerInitEnd struct {\n\tResult    msgs.GAErrorCode\n\tBaseInfo  *msgs.UserBaseInfo\n\tTransData *msgs.CreatePlayer\n\tSender    *actor.PID\n\tRoomPID   *actor.PID\n}\n\n//Service 获取服务对象\nfunc Service() service.IService {\n\treturn new(GameService)\n}\n\nfunc Type() string {\n\treturn \"game\"\n}\n\n//以下为接口函数\nfunc (s *GameService) OnReceive(context service.Context) {\n\tlog.Debug(\"game.OnReceive:\", context.Message())\n\n}\n\nfunc (s *GameService) OnInit() {\n\n}\n\nfunc (s *GameService) OnStart(as *service.ActorService) {\n\tas.RegisterMsg(reflect.TypeOf(&msgs.ServerCheckLogin{}), s.OnUserCheckLogin) //二次验证\n\t//as.RegisterMsg(reflect.TypeOf(&msgs.CreatePlayer{}), s.OnCreatePlayer)       //登录\n\tas.RegisterMsg(reflect.TypeOf(&msgs.Tick{}), s.OnTick) //定时任务\n\t//as.RegisterMsg(reflect.TypeOf(&PlayerInitEnd{}), s.OnPlayerInitEnd)       //玩家初始化完成\n\tas.RegisterMsg(reflect.TypeOf(&msgs.AddServiceRep{}), s.OnRegOK)          //注册完成\n\tas.RegisterMsg(reflect.TypeOf(&actor.Terminated{}), s.OnDisconnectCenter) //被动断开服务器\n\tlog.Debug(\"game OnStart ok!!\")\n\n}\n\nfunc (s *GameService) OnRun() {\n\t//注册到center\n\ts.RegToCenter()\n\t//cluster.RegServerWork(&s.ServiceData, nil)\n\t//定时任务\n\tutil.StartLoopTask(time.Second*5, func() {\n\t\ts.Pid.Tell(&msgs.Tick{}) //转主线程执行\n\t})\n}\n\n//注册到中心服务器\nfunc (s *GameService) RegToCenter() {\n\t//注册到center\n\tr := cluster.GetServicePID(\"center\")\n\tmsg := msgs.AddService{\n\t\tServiceName: s.Name,\n\t\tServiceType: s.TypeName,\n\t\tPid:         s.GetPID(),\n\t\tValues:      nil}\n\tr.GetActorPID().Request(&msg, s.Pid)\n\tlog.Info(\"game RegToCenter !!!\")\n}\n\n//注册成功\nfunc (s *GameService) OnRegOK(context service.Context) {\n\ts.isReg = true\n\tlog.Info(\"game reg ok!!!\")\n\tcontext.Watch(context.Sender())\n}\n\n//从中心断开\nfunc (s *GameService) OnDisconnectCenter(context service.Context) {\n\ts.isReg = false\n\tlog.Info(\"game OnDisconnectCenter !!!\")\n}\n\nfunc (s *GameService) OnTick(context service.Context) {\n\tif !s.isReg {\n\t\ts.RegToCenter()\n\t\treturn\n\t}\n\tload := len(context.Children())\n\tcluster.UpdateServiceLoad(s.Name, uint32(load), msgs.ServiceStateFree)\n}\n\n//请求创建玩家\n// func (s *GameService) OnCreatePlayer(context service.Context) {\n// \tlog.Info(\"GameService.OnCreatePlayer:%v\\n%v\", context.Message(), context.Sender())\n// \tmsg := context.Message().(*msgs.CreatePlayer)\n\n// \tNewPlayer(msg.Uid, msg.AgentPID, msg, context) //异步载入完成才发回\n\n// \tlog.Info(\"GameService.OnCreatePlayer now:\", msg.Uid)\n// }\n\n//玩家数据载入完成\n// func (s *GameService) OnPlayerInitEnd(context service.Context) {\n// \tmsg := context.Message().(*PlayerInitEnd)\n\n// \tid := msg.TransData.Uid\n// \tsender := msg.TransData.Sender\n// \tif msg.Result != msgs.OK {\n// \t\tlog.Error(\"OnUserCheckLogin,create player fail,id=%v,%v\", id, msg.Result)\n// \t\tcontext.Tell(sender, &msgs.CheckLoginResult{Result: msgs.Error})\n// \t\treturn\n// \t}\n\n// \tresult := &msgs.CreatePlayerResult{\n// \t\tResult:    msg.Result,\n// \t\tBaseInfo:  msg.BaseInfo,\n// \t\tPlayerPID: msg.Sender,\n// \t\tRoomPID:   msg.RoomPID,\n// \t\tTransData: msg.TransData}\n\n// \t//send sesson\n// \tss := cluster.GetServicePID(\"session\")\n// \tcontext.Tell(ss.GetActorPID(), result)\n\n// \t//send client\n// \tgsValue := msgs.UserBindServer{msgs.GameServer, msg.Sender}\n// \tbsValue := msgs.UserBindServer{msgs.BattleServer, msg.RoomPID}\n// \tcontext.Tell(sender, &msgs.CheckLoginResult{\n// \t\tResult:      msgs.OK,\n// \t\tBaseInfo:    msg.BaseInfo,\n// \t\tBindServers: []*msgs.UserBindServer{&gsValue, &bsValue}})\n\n// \tlog.Info(\"GameService.OnCreatePlayer  ok:\", msg.BaseInfo.Uid, msg.Sender)\n\n// \tcontext.Tell(sender, &msgs.CheckLoginResult{Result: msgs.OK})\n// }\n\n//玩家验证\nfunc (s *GameService) OnUserCheckLogin(context service.Context) {\n\tlog.Info(\"GameService.OnUserCheckLogin:\", context.Message())\n\tmsg := context.Message().(*msgs.ServerCheckLogin)\n\t//验证token\n\ttokenkey := fmt.Sprintf(\"UserToken:%v_%v\", msg.Uid, msg.Key)\n\t_, err := GetRedisGame().Get(tokenkey).Result()\n\tif err != nil {\n\t\tlog.Error(\"OnUserCheckLogin,no found player,token=%v\", tokenkey)\n\t\tcontext.Send(context.Sender(), &msgs.CheckLoginResult{Result: msgs.KeyError})\n\t\treturn\n\t}\n\n\t//创建角色\n\tNewPlayer(msg.Uid, msg.AgentPID, &msgs.CreatePlayer{Uid: msg.Uid, AgentPID: msg.AgentPID, Sender: context.Sender(),\n\t\tGatePID: nil}, context) //异步载入完成才发回\n\tlog.Info(\"GameService.OnUserCheckLogin pre:\", msg.Uid)\n\n}\n\nfunc GetRedisGame() *redis.Client {\n\treturn db.GetRedisGame()\n}\n"
  },
  {
    "path": "server/src/Server/game/player.go",
    "content": "package game\n\nimport (\n\t\"Server/cluster\"\n\t\"Server/db\"\n\t\"fmt\"\n\t\"github.com/magicsea/ganet/log\"\n\n\t\"github.com/magicsea/ganet/service\"\n\t\"github.com/magicsea/ganet/util\"\n\n\t\"gameproto\"\n\t\"gameproto/msgs\"\n\n\t\"time\"\n\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n\t\"github.com/gogo/protobuf/proto\"\n\t\"github.com/magicsea/ganet/config\"\n\tgp \"github.com/magicsea/ganet/proto\"\n)\n\ntype Player struct {\n\tUID uint64\n\t//baseInfo    *msgs.UserBaseInfo                 //基础信息\n\tselfPID   *actor.PID //本地地址\n\tagentPID  *actor.PID //gate的agent地址\n\tparentPID *actor.PID //管理\n\t//modules     []IPlayerModule                    //所有player模块\n\t//rounter     map[msgs.ChannelType]IPlayerModule //消息路由到模块\n\t//msgHandler  map[uint32]MessageReqFunc\n\ttimer *time.Ticker\n\t//isDataDirty bool\n\n\t//_transData *msgs.CreatePlayer\n}\n\nfunc NewPlayer(uid uint64, agentpid *actor.PID, trans *msgs.CreatePlayer, context service.Context) (*Player, error) {\n\tp := &Player{UID: uid, agentPID: agentpid}\n\t//p.msgHandler = make(map[uint32]MessageReqFunc)\n\t//p.rounter = make(map[msgs.ChannelType]IPlayerModule)\n\tp.parentPID = context.Self()\n\tprops := actor.PropsFromProducer(func() actor.Actor {return p})\n\tpid := context.Spawn(props)\n\tpid.Tell(trans)\n\t//pid, err := actor.SpawnWithParent(props, parent)\n\t//if err != nil {\n\t//\treturn nil, err\n\t//}\n\t//p.selfPID = pid\n\n\tlog.Info(\"NewPlayer:%v, pid=%v\", p.GetID(), pid)\n\treturn p, nil\n}\n\nfunc (p *Player) Receive(context actor.Context) {\n\tswitch msg := context.Message().(type) {\n\tcase *actor.Started:\n\t\tlog.Info(\"player Started, initialize actor here\")\n\tcase *msgs.CreatePlayer:\n\t\tlog.Info(\"player CreatePlayer:%v\", p.UID)\n\t\tp.selfPID = context.Self()\n\t\tresult := p.Start()\n\t\tp.OnLoginOK(context, msg, result)\n\tcase *actor.Stopping:\n\t\tfmt.Println(\"Stopping, actor is about shut down\", msg)\n\t\tp.OnDestory()\n\t\t//case *actor.Stopped:\n\t\t//\tfmt.Println(\"Stopped, actor and its children are stopped\")\n\tcase *msgs.Tick:\n\t\tp.OnTick()\n\tcase *msgs.Kick:\n\t\tp.OnOutline(msg.Reason)\n\t\tcontext.Self().Stop() //kill!\n\tcase *msgs.FrameMsg: //客户端消息\n\tcase *msgs.FrameMsgJson:\n\t\tRounter(p, msg.MsgId, msg.RawData)\n\tcase *msgs.MatchBattle: //lobby消息\n\t\tp.OnMatchEnd(msg)\n\t}\n}\n\n//GetID 获取uid\nfunc (p *Player) GetID() uint64 {\n\treturn p.UID\n}\n\n//GetLevel 获取玩家等级\n// func (p *Player) GetLevel() uint64 {\n// \treturn p.baseInfo.Lv\n// }\n\n//GetName 获取名字\nfunc (p *Player) ReadName() string {\n\tgamedb := db.GetRedisGame()\n\t//player := &db.Player{}\n\ts, _ := db.GetRedisObjectFieldByKey(\"Player\", p.GetID(), gamedb, \"Name\")\n\treturn s\n}\n\nfunc (p *Player) ReadPlayerInfo() *db.Player {\n\tgamedb := db.GetRedisGame()\n\tplayer := &db.Player{}\n\tdb.GetRedisObject(player, p.GetID(), gamedb)\n\treturn player\n}\n\nfunc (p *Player) String() string {\n\treturn fmt.Sprintf(\"player%v:\", p.GetID())\n}\n\nfunc (p *Player) Start() msgs.GAErrorCode {\n\tdefer util.PrintPanicStack()\n\n\t//p.InitModules()\n\tisFirst := p.InitTable()\n\n\tp.LoadData(isFirst)\n\n\tp.StartTimer()\n\n\tlog.Info(\"player.start...\")\n\t// for _, mod := range p.modules {\n\t// \tmod.OnStart()\n\t// }\n\n\tplayer := p.ReadPlayerInfo()\n\n\t//登录完成\n\tp.SendGameMsg(\"logininfo\",\n\t\t&gameproto.LoginInfo{\n\t\t\tId:       int64(p.UID),\n\t\t\tLevel:    int32(player.Lv),\n\t\t\tExp:      int64(player.Exp),\n\t\t\tNickname: player.Name,\n\t\t\tHeadId:   int32(player.Cgid),\n\t\t\tGold:     player.Gold,\n\t\t\tDiamond:  player.Rmb,\n\t\t})\n\treturn msgs.OK\n\n}\n\nfunc (p *Player) OnLoginOK(context actor.Context, tmsg *msgs.CreatePlayer, errCode msgs.GAErrorCode) {\n\n\troomPID := p.recoverBattle()\n\n\tid := p.UID\n\tsender := tmsg.Sender\n\tif errCode != msgs.OK {\n\t\tlog.Error(\"OnLoginOK,create player fail,id=%v,%v\", id, errCode)\n\t\tcontext.Send(sender, &msgs.CheckLoginResult{Result: msgs.Error})\n\t\treturn\n\t}\n\n\tinf := &msgs.UserBaseInfo{Uid: id}\n\tresult := &msgs.CreatePlayerResult{\n\t\tResult:    msgs.OK,\n\t\tBaseInfo:  inf,\n\t\tPlayerPID: context.Self(),\n\t\tRoomPID:   roomPID,\n\t\tTransData: tmsg}\n\n\t//send sesson\n\tss := cluster.GetServicePID(\"session\")\n\tcontext.Send(ss.GetActorPID(), result)\n\n\t//send client\n\tgsValue := msgs.UserBindServer{msgs.GameServer, p.selfPID}\n\tbsValue := msgs.UserBindServer{msgs.BattleServer, roomPID}\n\tcontext.Send(sender, &msgs.CheckLoginResult{\n\t\tResult:      msgs.OK,\n\t\tBaseInfo:    inf,\n\t\tBindServers: []*msgs.UserBindServer{&gsValue, &bsValue}})\n\n\tlog.Info(\"player.OnLoginOK  ok:%v\", p.UID)\n\n}\n\n//回到战场\nfunc (p *Player) recoverBattle() *actor.PID {\n\tinfo := db.GetPlayerBattleInfo(p.GetID())\n\tif info == nil {\n\t\treturn nil\n\t}\n\tif len(info.BattleAddr) < 1 {\n\t\treturn nil\n\t}\n\tpid := actor.NewPID(info.BattleAddr, info.BattleAddrID)\n\tif pid == nil {\n\t\treturn nil\n\t}\n\trep, err := pid.RequestFuture(msgs.RecoverBattle{Uid: p.GetID(), AgentPID: p.agentPID}, time.Second).Result()\n\tif err != nil {\n\t\tlog.Error(\"recoverBattle ask error:%v\", err)\n\t\treturn nil\n\t}\n\trmsg := rep.(*msgs.RecoverBattleRep)\n\tif rmsg.Result != msgs.OK {\n\t\tlog.Error(\"recoverBattle fail:%v\", rmsg.Result)\n\t\treturn nil\n\t}\n\treturn rmsg.RoomPID\n}\n\n//匹配成功\nfunc (p *Player) OnMatchEnd(msg *msgs.MatchBattle) {\n\t//PlayerBattle BattleState\n\t//info := &db.PlayerBattleInfo{}\n\t//db.ClearPlayerBattleInfo(p.GetID(), info)\n\tp.agentPID.Tell(&msgs.AttachBattle{RoomPID: msg.RoomPID})\n\tp.SendGameMsg(\"readyBattle\", &gameproto.C_StartBattle{RoomId: msg.RoomId})\n}\n\nfunc (p *Player) isNeedCreate() bool {\n\t//client := db.GetGameDB()\n\t//var temp db.Player\n\t//temp.Id = p.GetID()\n\t//norow, _ := client.Read(&temp)\n\t//return norow\n\tgamedb := db.GetRedisGame()\n\tplayer := &db.Player{}\n\tfound, _ := db.GetRedisObject(player, p.GetID(), gamedb)\n\treturn !found\n}\n\n// 尝试InitTable第一次插入数据\nfunc (p *Player) InitTable() bool {\n\tdefer util.PrintPanicStack()\n\n\tif p.isNeedCreate() {\n\t\tlog.Info(\"create new player:%v\", p.GetID())\n\t\tgamedb := db.GetRedisGame()\n\t\tplayer := &db.Player{Id: p.GetID(), Name: \"\", Lv: 1, Gold: 500}\n\t\tdb.SetRedisObject(player, p.GetID(), gamedb)\n\t\tlog.Info(\"create new player:%v  end#\", p.GetID())\n\t\treturn true\n\t}\n\treturn false\n}\n\n//StartTimer 计时器(new goroutine!)\nfunc (p *Player) StartTimer() {\n\tp.timer = util.StartLoopTask(time.Minute, func() {\n\t\tp.selfPID.Tell(&msgs.Tick{}) //转主线程执行\n\t})\n\n}\n\n//OnTick 定时帧\nfunc (p *Player) OnTick() {\n\t// p.AutoSave()\n\t// for _, mod := range p.modules {\n\t// \tmod.OnTick()\n\t// }\n\n}\n\n//LoadData 从db加载数据，长时阻塞操作\nfunc (p *Player) LoadData(isFisrt bool) {\n\t//p.baseInfo = &msgs.UserBaseInfo{Uid: p.UID, Name: \"玩家\" + strconv.Itoa(int(p.UID))}\n\tlog.Info(\"player loaddata:\", p.UID)\n\t//无状态就不要预载了\n\t// for _, mod := range p.modules {\n\t// \tmod.OnLoad()\n\t// }\n\n}\n\n//主动离开\nfunc (p *Player) ActiveLeave() {\n\t//上报\n\tss := cluster.GetServicePID(\"session\")\n\tmsg := &msgs.UserLeave{Uid: p.GetID(), From: msgs.ST_GameServer, Reason: \"gameserver acive leave\"}\n\tss.Tell(msg)\n\t//保存\n\tp.OnOutline(msg.Reason)\n\tp.selfPID.Stop() //kill!\n}\n\nfunc (p *Player) OnOutline(reason string) {\n\tlog.Info(\"player outline,%v,=> %v\", p.String(), reason)\n\n\t//更新离开时间\n\t// now := time.Now().Unix()\n\t// user := &db.User{Id: int64(p.GetID()), LastLogoutTime: now}\n\t// db.GetGameDB().Update(user, \"LastLogoutTime\")\n\n\tinfo := db.GetPlayerBattleInfo(p.GetID())\n\tif info != nil {\n\t\tif len(info.BattleAddr) >= 1 {\n\t\t\tpid := actor.NewPID(info.BattleAddr, info.BattleAddrID)\n\t\t\tif pid != nil {\n\t\t\t\tpid.Tell(&msgs.UserLeave{Uid: p.GetID(), Reason: \"leave\"})\n\t\t\t}\n\t\t}\n\t}\n\n}\n\nfunc (p *Player) OnDestory() {\n\tp.timer.Stop()\n\t//p.AutoSave()\n\t// for _, mod := range p.modules {\n\t// \tmod.OnDestory()\n\t// }\n}\n\n//game协议发送到客户端\nfunc (p *Player) SendGameMsg(msgId interface{}, msg proto.Message) {\n\tdata, err := gp.Marshal(msg)\n\tif err != nil {\n\t\tlog.Error(\"SendGameMsg.Marshal error:%v\", err)\n\t}\n\tif config.IsJsonProto() {\n\t\tframe := &msgs.FrameMsgJson{MsgId: msgId.(string), RawData: data}\n\t\tp.agentPID.Tell(frame)\n\t} else {\n\t\tframe := &msgs.FrameMsg{MsgId: uint32(msgId.(int64)), RawData: data}\n\t\tp.agentPID.Tell(frame)\n\t}\n\tlog.Info(\"====>s2c:%v,%+v\", msgId, msg)\n}\n\n//发送到其他玩家\nfunc SendPlayerClientMsg(gatePID *actor.PID, msgId interface{}, msg proto.Message) {\n\tdata, err := gp.Marshal(msg)\n\tif err != nil {\n\t\tlog.Error(\"SendPlayerClientMsg.Marshal error:%v\", err)\n\t}\n\n\tif config.IsJsonProto() {\n\t\tframe := &msgs.FrameMsgJson{MsgId: msgId.(string), RawData: data}\n\t\tgatePID.Tell(frame)\n\t} else {\n\t\tframe := &msgs.FrameMsg{MsgId: uint32(msgId.(int64)), RawData: data}\n\t\tgatePID.Tell(frame)\n\t}\n}\n\n//发送到其他玩家\nfunc SendWorldMsg(msgId interface{}, msg proto.Message) {\n\tdata, err := gp.Marshal(msg)\n\tif err != nil {\n\t\tlog.Error(\"SendPlayerClientMsg.Marshal error:%v\", err)\n\t}\n\tif config.IsJsonProto() {\n\t\tframe := &msgs.FrameMsgJson{MsgId: msgId.(string), RawData: data}\n\n\t\tresult := AskCenter(&msgs.GetTypeServices{ServiceType: \"gate\"})\n\t\tif result != nil {\n\t\t\tresultIns := result.(*msgs.GetTypeServicesResult)\n\t\t\tif resultIns.Pids != nil {\n\t\t\t\tfor _, pid := range resultIns.Pids {\n\t\t\t\t\tpid.Tell(&msgs.BroadcastFrameMsgJson{FrameMsg: frame})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tframe := &msgs.FrameMsg{MsgId: uint32(msgId.(int64)), RawData: data}\n\n\t\tresult := AskCenter(&msgs.GetTypeServices{ServiceType: \"gate\"})\n\t\tif result != nil {\n\t\t\tresultIns := result.(*msgs.GetTypeServicesResult)\n\t\t\tif resultIns.Pids != nil {\n\t\t\t\tfor _, pid := range resultIns.Pids {\n\t\t\t\t\tpid.Tell(&msgs.BroadcastFrameMsg{FrameMsg: frame})\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n}\n\nfunc AskSession(msg proto.Message) interface{} {\n\tss := cluster.GetServicePID(\"session\")\n\tresult, err := ss.Ask(msg)\n\tif err != nil {\n\t\tlog.Error(\"player.AskSession error:%v\", err)\n\t}\n\treturn result\n}\n\nfunc AskCenter(msg proto.Message) interface{} {\n\tss := cluster.GetServicePID(\"center\")\n\tresult, err := ss.Ask(msg)\n\tif err != nil {\n\t\tlog.Error(\"player.AskCenter error:%v\", err)\n\t}\n\treturn result\n}\n\nfunc AskLobby(msg proto.Message) interface{} {\n\tss := cluster.GetServicePID(\"lobby\")\n\tresult, err := ss.Ask(msg)\n\tif err != nil {\n\t\tlog.Error(\"player.AskLobby error:%v\", err)\n\t}\n\treturn result\n}\n"
  },
  {
    "path": "server/src/Server/game/playerBattle.go",
    "content": "package game\n\nimport (\n\t\"Server/db\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"gameproto\"\n\t\"gameproto/msgs\"\n\t\"github.com/magicsea/ganet/log\"\n)\n\nfunc init() {\n\tRegistCmd(\"s_requestBattle\", requestBattle)\n\tRegistCmd(\"s_balance\", onBalance)\n}\n\n//参加战斗\nfunc requestBattle(context IPlayerMsgContext) {\n\tvar msg = &gameproto.S_RequestBattle{}\n\tcontext.UnmarshalMsg(msg)\n\tlog.Info(\"requestBattle:%+v\", msg)\n\tif int32(gameproto.PVE) == msg.BattleType {\n\t\tstartPVE(context, msg)\n\t} else {\n\t\tstartPVP(context, msg)\n\t}\n}\n\nfunc startPVE(context IPlayerMsgContext, msg *gameproto.S_RequestBattle) {\n\tuid := context.GetPlayerID()\n\tvar rpcmsg = &msgs.GetBattleServer{Uid: uid, Rtype: int32(gameproto.PVE), Boss: msg.StageId, SelfPID: context.GetPID()}\n\tresult := AskLobby(rpcmsg)\n\tif result == nil {\n\t\tcontext.Write(\"requestBattle\", &gameproto.C_RequestBattle{ErrCode: 1})\n\t\treturn\n\t}\n\tcontext.Write(\"requestBattle\", &gameproto.C_RequestBattle{ErrCode: 0, StageId: msg.StageId, BattleType: msg.BattleType})\n\n\t//直接开始战斗\n\t//var rmsg = result.(*msgs.GetBattleServerResult)\n\t//db.SavePlayerFightInfo(uid, msg.BattleType, rmsg.RoomId, rmsg.BattlePID.Address, BattlePID.Id)\n\t//context.Write(\"startBattle\", &gameproto.C_StartBattle{RoomId: rmsg.RoomId, StageId: msg.StageId, BattleType: msg.BattleType})\n}\nfunc startPVP(context IPlayerMsgContext, msg *gameproto.S_RequestBattle) {\n\tuid := context.GetPlayerID()\n\tvar rpcmsg = &msgs.JoinBattleQueue{Uid: uid, Rtype: int32(gameproto.PVP), Sender: context.GetPID()}\n\tresult := AskLobby(rpcmsg)\n\tif result == nil {\n\t\tcontext.Write(\"requestBattle\", &gameproto.C_RequestBattle{ErrCode: 1})\n\t\treturn\n\t}\n\t//save\n\tdb.SetPlayerBattleState(uid, int32(db.BattleStateQueue))\n\trmsg := result.(*msgs.JoinBattleQueueResult)\n\tcontext.Write(\"requestBattle\", &gameproto.C_RequestBattle{ErrCode: int32(rmsg.Result), StageId: msg.StageId, BattleType: msg.BattleType})\n}\n\n//领取战斗奖励\nfunc onBalance(context IPlayerMsgContext) {\n\tuid := context.GetPlayerID()\n\tgamedb := db.GetRedisGame()\n\tkey := fmt.Sprintf(\"PlayerFinishList:%d\", uid)\n\tlist, err := gamedb.LRange(key, 0, -1).Result()\n\tif err != nil {\n\t\tlog.Error(\"%v\", err)\n\t\treturn\n\t}\n\tif list == nil || len(list) < 1 {\n\t\treturn\n\t}\n\n\t//给奖励\n\tfor _, v := range list {\n\n\t\tvar endInfo db.BattleEndInfo\n\t\tjson.Unmarshal([]byte(v), &endInfo)\n\t\tvar blinfo = gameproto.C_Balance{StageId: endInfo.StageId, BattleType: endInfo.BattleType}\n\t\tlog.Info(\"奖励:uid=%d,room=%v\", uid, endInfo.RoomId)\n\t\tcontext.Write(\"balance\", &blinfo)\n\t}\n\tgamedb.Del(key)\n}\n"
  },
  {
    "path": "server/src/Server/game/playerChat.go",
    "content": "package game\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\t\"github.com/magicsea/ganet/log\"\n\t\"gameproto/msgs\"\n\t\"gameproto\"\n\t\"Server/db\"\n)\n\nfunc init()  {\n\tRegistCmd(\"privatechat\",PrivateChat)\n\tRegistCmd(\"s_chat\",WorldChat)\n}\n\nfunc  PrivateChat(context IPlayerMsgContext) {\n\tvar msg gameproto.C2S_PrivateChatMsg\n\tcontext.UnmarshalMsg(&msg)\n\tresult := AskSession(&msgs.GetSessionInfoByName{msg.TargetName})\n\tif result != nil {\n\t\tlog.Info(\"AskSession PrivateChat ok:\", result)\n\t\tssInfo := result.(*msgs.GetSessionInfoResult)\n\t\tif ssInfo.Result == msgs.OK && ssInfo.AgentPID != nil {\n\t\t\t//找到玩家agent地址\n\t\t\tSendPlayerClientMsg(ssInfo.AgentPID,\"privatechat\",&gameproto.S2C_PrivateOtherChatMsg{SendName: \"\", Msg: msg.Msg})\n\n\t\t\t//通知自己\n\t\t\tcontext.Write(\"privatechat_rep\",&gameproto.S2C_PrivateChatMsg{TargetName:\"\", Msg: msg.Msg, Result: int32(msgs.OK)})\n\t\t\tlog.Info(\"send PrivateChat:\", msg)\n\t\t} else {\n\t\t\t//没找到玩家\n\t\t\tcontext.Write(\"privatechat\",&gameproto.S2C_PrivateChatMsg{Result: int32(msgs.NoFoundTarget)})\n\t\t\tlog.Info(\"send PrivateChat,no found:%v,%v\", ssInfo.Result, msg)\n\n\t\t}\n\t}\n}\n\nfunc WorldChat(context IPlayerMsgContext) {\n\tvar msg gameproto.C2S_WorldChatMsg\n\tcontext.UnmarshalMsg(&msg)\n\tif strings.HasPrefix(msg.Data,\"/\") {\n\t\tOnGMCmd(msg.Data,context)\n\t\treturn\n\t}\n\n\tSendWorldMsg(\"chat\",&gameproto.S2C_WorldChatMsg{Name:context.GetPlayerName(), Data: msg.Data})\n\n\tcontext.Write(\"notice\",&gameproto.S2C_WorldChatMsg{Name:context.GetPlayerName(), Data:\"你好hello world[笑]\"})\n}\n\nfunc OnGMCmd(data string,context IPlayerMsgContext)  {\n\tlog.Info(\"$$$$$$GM$$$$$$:%s\",data)\n\tdata = strings.TrimPrefix(data,\"/\")\n\thd := strings.Split(data,\" \")\n\tif len(hd)<2 {\n\t\treturn\n\t}\n\n\tgamedb := db.GetRedisGame()\n\tplayer := &db.Player{}\n\tid := context.GetPlayerID()\n\n\tcmd := hd[0]\n\targs := hd[1]\n\tswitch cmd {\n\tcase \"addgold\":\n\t\tnum,_ := strconv.Atoi(args)\n\t\tval,_:= db.IncreRedisObjectField(player,id,gamedb,\"Gold\",int64(num))\n\t\tupdatePlayerInfo(\"gold\",val,context)\n\tcase \"addrmb\":\n\t\tnum,_ := strconv.Atoi(args)\n\t\tval,_:=db.IncreRedisObjectField(player,id,gamedb,\"Rmb\",int64(num))\n\t\tupdatePlayerInfo(\"diamond\",val,context)\n\tcase \"setlv\":\n\t\tnum,_ := strconv.Atoi(args)\n\t\tdb.SetRedisObjectField(player,id,gamedb,\"Lv\",int64(num))\n\t\tupdatePlayerInfo(\"level\",int64(num),context)\n\t}\n}\n\nfunc updatePlayerInfo(key string,val int64,context IPlayerMsgContext)  {\n\tcontext.Write(\"updateAttr\",\n\t\t&gameproto.C_UpateAttr{\n\t\t\tKey:key,\n\t\t\tVal:val,\n\t\t})\n}"
  },
  {
    "path": "server/src/Server/game/playerInfo.go",
    "content": "package game\n\nimport (\n\t\"Server/db\"\n\t\"fmt\"\n\t\"gameproto\"\n\t\"github.com/magicsea/ganet/log\"\n)\n\nfunc init() {\n\tRegistCmd(\"s_reviseUserInfo\", ReviseUserInfo)\n\tRegistCmd(\"getRankList\", DoNothing)\n\tRegistCmd(\"getPlayerList\", DoNothing)\n}\nfunc DoNothing(context IPlayerMsgContext) {\n}\n\n//个人信息修改\nfunc ReviseUserInfo(context IPlayerMsgContext) {\n\tvar msg gameproto.S_ReviseUserInfo\n\tcontext.UnmarshalMsg(&msg)\n\tlog.Info(\"reviseUserInfo:%+v\", msg)\n\tif len(msg.Nickname) < 1 || len(msg.Nickname) > 20 {\n\t\tcontext.Write(\"reviseUserInfo\", &gameproto.C_Response{ErrCode: 1, Msg: fmt.Sprintf(\"名字长度不合法,长度%d\", len(msg.Nickname))})\n\t\treturn\n\t}\n\n\toldname := context.GetPlayerName()\n\tgamedb := db.GetRedisGame()\n\tkey := \"Player:nameindex:\" + msg.Nickname\n\toldkey := \"Player:nameindex:\" + context.GetPlayerName()\n\tr := gamedb.Get(key).Val()\n\tif oldname != msg.Nickname {\n\t\tif len(r) > 0 {\n\t\t\tcontext.Write(\"reviseUserInfo\", &gameproto.C_Response{ErrCode: 2, Msg: \"重复的名字\"})\n\t\t\treturn\n\t\t}\n\t}\n\n\t//save\n\tplayer := &db.Player{}\n\tm := map[string]interface{}{\"Cgid\": msg.HeadId, \"Name\": msg.Nickname}\n\tdb.SetRedisObjectFields(player, context.GetPlayerID(), gamedb, m)\n\tif oldname != msg.Nickname {\n\t\tgamedb.Set(key, context.GetPlayerID(), 0)\n\t\tlog.Info(\"reviseUserInfo delete old name:%s\", oldkey)\n\t\tgamedb.Del(oldkey)\n\t}\n\n\t//send\n\tcontext.Write(\"reviseUserInfo\", &gameproto.C_Response{ErrCode: 0, Msg: \"OK\"})\n\tlog.Info(\"reviseUserInfo end:%d,%+v\", context.GetPlayerID(), msg)\n}\n"
  },
  {
    "path": "server/src/Server/game/router.go",
    "content": "package game\n\nimport (\n\t\"gameproto/msgs\"\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n\t\"github.com/gogo/protobuf/proto\"\n\t\"github.com/magicsea/ganet/log\"\n\tgp \"github.com/magicsea/ganet/proto\"\n)\n\nfunc init() {\n\n}\n\ntype IPlayerMsgContext interface {\n\tWrite(msgID interface{}, msg proto.Message)\n\tGetPlayerID() uint64\n\tGetPlayerName() string\n\tGetPID() *actor.PID\n\tUnmarshalMsg(m proto.Message) error\n}\n\ntype PlayerMsgContext struct {\n\tplayer *Player\n\trawMsg []byte\n}\n\nfunc (c *PlayerMsgContext) Write(msgId interface{}, msg proto.Message) {\n\tc.player.SendGameMsg(msgId, msg)\n}\n\nfunc (c *PlayerMsgContext) GetPlayerID() uint64 {\n\treturn c.player.GetID()\n}\n\nfunc (c *PlayerMsgContext) UnmarshalMsg(m proto.Message) error {\n\treturn gp.Unmarshal(c.rawMsg, m)\n}\nfunc (c *PlayerMsgContext) GetPlayerName() string {\n\tname := c.player.ReadName()\n\treturn name\n}\nfunc (c *PlayerMsgContext) GetPID() *actor.PID {\n\treturn c.player.selfPID\n}\n\nvar msgHandler = make(map[interface{}]MessageFunc)\n\n//MessageFunc 消息绑定函数\ntype MessageFunc func(context IPlayerMsgContext)\n\n//type MessageReqFunc func(data []byte) msgs.GAErrorCode\n//RegistCmd 注册game处理消息\nfunc RegistCmd(msgId interface{}, fun MessageFunc) {\n\tmsgHandler[msgId] = fun\n}\n\n//路由玩家消息\nfunc Rounter(p *Player, msgId interface{}, raw []byte) {\n\terr := msgs.UNKNOWN_ERROR\n\tif fun, ok := msgHandler[msgId]; ok {\n\t\tvar con IPlayerMsgContext = &PlayerMsgContext{player: p, rawMsg: raw}\n\t\tfun(con)\n\t} else {\n\t\tlog.Error(\"player recv unknow channel:id=%v,code=%v\", p.GetID(), msgId)\n\t}\n\t_ = err\n\t//context.Respond(&msgs.FrameMsgRep{ErrCode: err})\n}\n"
  },
  {
    "path": "server/src/Server/gate/agentActor.go",
    "content": "package gate\n\nimport (\n\t\"Server/cluster\"\n\t\"errors\"\n\t\"gameproto\"\n\t\"gameproto/msgs\"\n\t\"github.com/magicsea/ganet/gateframework\"\n\t\"github.com/magicsea/ganet/log\"\n\n\t\"time\"\n\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n\t\"github.com/gogo/protobuf/proto\"\n\t\"github.com/magicsea/ganet/config\"\n\tgp \"github.com/magicsea/ganet/proto\"\n\t\"github.com/magicsea/ganet/service\"\n)\n\ntype AgentActor struct {\n\tkey         string\n\tverified    bool\n\tbindAgent   gateframework.Agent\n\tpid         *actor.PID\n\tparentPid   *actor.PID\n\tbaseInfo    *msgs.UserBaseInfo\n\tbindServers map[int]*actor.PID\n\twantDead    bool\n}\n\nfunc NewAgentActor(context service.Context, agent gateframework.Agent) *AgentActor {\n\t//创建actor\n\t//r, err := parentPid.RequestFuture(&msgs.NewChild{}, 3*time.Second).Result()\n\tab := &AgentActor{verified: false, bindAgent: agent}\n\tprops := actor.PropsFromProducer(func() actor.Actor { return &AgentActor{verified: false, bindAgent: agent} })\n\tpid := context.Spawn(props)\n\tab.pid = pid\n\tab.parentPid = context.Self()\n\tab.bindServers = make(map[int]*actor.PID)\n\treturn ab\n}\n\nfunc (ab *AgentActor) getNetType() gateframework.NetType {\n\treturn ab.bindAgent.GetNetType()\n}\n\n//外部调用tell\nfunc (ab *AgentActor) Tell(msg proto.Message) {\n\n}\n\n//收到后端消息\nfunc (ab *AgentActor) Receive(context actor.Context) {\n\t//log.Info(\"agent.ReceviceServerMsg:\", reflect.TypeOf(context.Message()))\n\tswitch msg := context.Message().(type) {\n\tcase *msgs.Kick:\n\t\tab.OnStop()\n\t\t//todo:not safe\n\t\tab.bindAgent.SetDead() //被动死亡，防止二次关闭\n\t\tab.bindAgent.Close()   //关闭连接\n\tcase *msgs.ClientDisconnect:\n\t\t//上报\n\t\tif ab.baseInfo != nil {\n\t\t\tss := cluster.GetServicePID(\"session\")\n\t\t\tss.Tell(&msgs.UserLeave{Uid: ab.baseInfo.Uid, From: msgs.ST_GateServer, Reason: \"client disconnect\"})\n\t\t}\n\t\tab.OnStop()\n\t\tcontext.Self().Stop()\n\tcase *msgs.ReceviceClientMsg:\n\t\t//收到客户端消息\n\t\tab.ReceviceClientMsg(msg.Rawdata)\n\tcase *msgs.FrameMsg:\n\t\tab.SendClientPack(msg.MsgId, msg.RawData)\n\tcase *msgs.FrameMsgJson:\n\t\tab.SendClientPack(msg.MsgId, msg.RawData)\n\tcase *msgs.AttachBattle:\n\t\tab.bindServers[int(msgs.BattleServer)] = msg.RoomPID\n\tcase *msgs.DetachBattle:\n\t\tdelete(ab.bindServers, int(msgs.BattleServer))\n\t}\n}\n\nfunc (ab *AgentActor) GetChannelServer(channel int) *actor.PID {\n\tc := msgs.ChannelType(channel / 100 * 100) //简单对应\n\t//log.Info(\"GetChannelServer,%v,%v\", channel, c)\n\tif ab.bindServers == nil {\n\t\treturn nil\n\t}\n\tif pid, ok := ab.bindServers[int(c)]; ok {\n\t\treturn pid\n\t}\n\treturn nil\n}\nfunc (ab *AgentActor) GetNetPack() NetPack {\n\treturn GetNetPackByConf()\n}\n\n//收到前端消息\nfunc (ab *AgentActor) ReceviceClientMsg(data []byte) error {\n\t//log.Info(\"ReceviceClientMsg:\", len(data), data)\n\tpack := ab.GetNetPack()\n\tmsgId, rawdata, err := pack.Unmarshal(data)\n\tif msgId != \"b_move\" {\n\t\tlog.Info(\"recv:%v\", msgId)\n\t}\n\n\tif err != nil {\n\t\tlog.Error(\"pack.Unmarshal error:%v,%v\", data, err)\n\t\treturn errors.New(\"AgentActor recv too short\")\n\t}\n\t//心跳包\n\tchannel := pack.GetChannelType(msgId)\n\tif channel == ChannelHeartbeat {\n\t\tab.SendClientPack(msgId, rawdata)\n\t\treturn nil\n\t}\n\n\t//认证\n\tif !ab.verified {\n\t\treturn ab.CheckLogin(msgId, rawdata)\n\t}\n\n\t//转发\n\treturn ab.forward(msgId, rawdata, channel)\n}\n\n//验证消息\nfunc (ab *AgentActor) CheckLogin(msgId interface{}, rawdata []byte) error {\n\tlog.Info(\"checklogin:%s\", string(rawdata))\n\tmsg := gameproto.PlatformUser{}\n\terr := gp.Unmarshal(rawdata, &msg)\n\tif err != nil {\n\t\tlog.Error(\"CheckLogin fail:%v,msgid:%v\", err, msgId)\n\t\treturn err\n\t}\n\tpretime := time.Now()\n\n\t// smsg := &msgs.ServerCheckLogin{Uid: uint64(msg.PlatformUid), Key: msg.Key, AgentPID: ab.pid}\n\t// result, err := cluster.GetServicePID(\"session\").Ask(smsg)\n\t// if err == nil {\n\t// \tcheckResult := result.(*msgs.CheckLoginResult)\n\t// \tif checkResult.Result == msgs.OK {\n\t// \t\t//登录成功\n\t// \t\tusetime := time.Now().Sub(pretime)\n\t// \t\tlog.Info(\"CheckLogin success:%v,time:%v\", checkResult, usetime.Seconds())\n\t// \t\tab.baseInfo = checkResult.BaseInfo\n\t// \t\tfor _, s := range checkResult.BindServers {\n\t// \t\t\tif s.Pid != nil {\n\t// \t\t\t\tab.bindServers[int(s.Channel)] = s.Pid\n\t// \t\t\t}\n\t// \t\t}\n\t// \t\tab.verified = true\n\t// \t\tab.parentPid.Tell(&msgs.AddAgentToParent{Uid: checkResult.BaseInfo.Uid, Sender: ab.pid})\n\t// \t} else {\n\t// \t\tlog.Info(\"###CheckLogin fail:\", checkResult)\n\t// \t}\n\n\t// \tret := &gameproto.LoginReturn{ErrCode: int32(checkResult.Result), ServerTime: int32(time.Now().Unix())}\n\t// \tab.SendClient(msgId, ret)\n\n\t// } else {\n\t// \tlog.Error(\"CheckLogin error :\" + err.Error())\n\t// }\n\tspid, code := GetBestGameserver()\n\tif code != msgs.OK {\n\t\tlog.Error(\"GetBestGameserver error:%v\", code)\n\t\treturn errors.New(\"GetBestGameserver error\")\n\t}\n\tsmsg := &msgs.ServerCheckLogin{Uid: uint64(msg.PlatformUid), Key: msg.Key, AgentPID: ab.pid}\n\tresult, err := spid.RequestFuture(smsg, time.Second*3).Result()\n\tif err == nil {\n\t\t//登录成功\n\t\tcheckResult := result.(*msgs.CheckLoginResult)\n\t\tif checkResult.Result == msgs.OK {\n\t\t\t//登录成功\n\t\t\tusetime := time.Now().Sub(pretime)\n\t\t\tlog.Info(\"CheckLogin success:%v,time:%v\", checkResult, usetime.Seconds())\n\t\t\tab.baseInfo = checkResult.BaseInfo\n\t\t\tfor _, s := range checkResult.BindServers {\n\t\t\t\tif s.Pid != nil {\n\t\t\t\t\tab.bindServers[int(s.Channel)] = s.Pid\n\t\t\t\t}\n\t\t\t}\n\t\t\tab.verified = true\n\t\t\tab.parentPid.Tell(&msgs.AddAgentToParent{Uid: checkResult.BaseInfo.Uid, Sender: ab.pid})\n\n\t\t\tret := &gameproto.LoginReturn{ErrCode: int32(checkResult.Result), ServerTime: int32(time.Now().Unix())}\n\t\t\tab.SendClient(msgId, ret)\n\n\t\t} else {\n\t\t\tlog.Info(\"###CheckLogin fail:\", checkResult)\n\t\t}\n\t} else {\n\t\tlog.Error(\"CheckLogin error :\" + err.Error())\n\t}\n\treturn nil\n}\n\n//均衡负载选择服务器\nfunc GetBestGameserver() (*actor.PID, msgs.GAErrorCode) {\n\t//请求gameserver\n\tresult, err := cluster.GetServicePID(\"center\").Ask(&msgs.ApplyService{\"game\"})\n\tif err != nil {\n\t\tlog.Error(\"get gameserver error:%v\", err)\n\t\treturn nil, msgs.Error\n\t}\n\tsr := result.(*msgs.ApplyServiceResult)\n\treturn sr.Pid, msgs.OK\n}\n\n//发送消息到客户端\nfunc (ab *AgentActor) SendClient(msgId interface{}, msg proto.Message) {\n\tmdata, err := gp.Marshal(msg)\n\tif err != nil {\n\t\tlog.Error(\"SendClient marshal error:%v\", err)\n\t\treturn\n\t}\n\t//log.Info(\"sendclient:msg%v,data:%d=>%v\", pack.msgID, len(pack.rawData), pack.rawData)\n\tab.SendClientPack(msgId, mdata)\n}\n\n//func (ab *AgentActor) SendClientRaw(c msgs.ChannelType, msgId byte, mdata []byte) {\n//\tdata := []byte{byte(c), msgId}\n//\tdata = append(data, mdata...)\n//\tab.bindAgent.WriteMsg(data)\n//}\n\nfunc (ab *AgentActor) SendClientPack(msgId interface{}, rawdata []byte) {\n\t//data := pack.Write()\n\tvar pack = ab.GetNetPack()\n\tdata, err := pack.Marshal(msgId, rawdata)\n\tif err != nil {\n\t\tlog.Error(\"SendClientPack marshal error:id=%v,%s\", msgId, err.Error())\n\t\treturn\n\t}\n\tif msgId != \"snap\" {\n\t\tlog.Info(\"send:%s,id=%s,r=%s\", string(data), msgId, string(rawdata))\n\t}\n\tab.bindAgent.WriteMsg(data)\n}\n\n//转发\nfunc (ab *AgentActor) forward(msgId interface{}, rawdata []byte, channel ChannelType) error {\n\t//test gate\n\t//if channel == byte(msgs.Shop) {\n\t//\tab.SendClient(msgs.Shop, byte(msgs.S2C_ShopBuy), &msgs.S2C_ShopBuyMsg{ItemId: 1, Result: msgs.OK})\n\t//\treturn nil\n\t//}\n\tif msgId != \"b_move\" {\n\t\tlog.Info(\"=========>forward msg:%v\", msgId)\n\t}\n\n\tpid := ab.GetChannelServer(int(channel))\n\tif pid == nil {\n\t\tlog.Error(\"forward server nil:%+v,c=%v,m=%v\", pid, channel, msgId)\n\t\treturn nil\n\t}\n\tif config.IsJsonProto() {\n\t\tframe := &msgs.FrameMsgJson{MsgId: msgId.(string), RawData: rawdata, Uid: ab.baseInfo.Uid}\n\t\tpid.Request(frame, ab.pid)\n\t} else {\n\t\tframe := &msgs.FrameMsg{MsgId: uint32(msgId.(byte)), RawData: rawdata, Uid: ab.baseInfo.Uid}\n\t\tpid.Request(frame, ab.pid)\n\t}\n\n\t//r, e := pid.RequestFuture(frame, time.Second*3).Result()\n\t//if e != nil {\n\t//\tlog.Error(\"forward error:id=%v, err=%v\", ab.baseInfo.Uid, e)\n\t//}\n\n\t//rep := r.(*msgs.FrameMsgRep)\n\t//repMsg := &gameproto.S2C_ConfirmInfo{MsgHead: int32(msgid), Code: int32(rep.ErrCode)}\n\t//ab.SendClient(msgs.GameServer, byte(gameproto.S2C_CONFIRM), repMsg)\n\treturn nil\n}\n\nfunc (ab *AgentActor) OnStop() {\n\tif ab.verified && ab.baseInfo != nil {\n\t\tab.parentPid.Tell(&msgs.RemoveAgentFromParent{Uid: ab.baseInfo.Uid})\n\t}\n}\n"
  },
  {
    "path": "server/src/Server/gate/gameproto.go",
    "content": "package gate\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"github.com/gogo/protobuf/proto\"\n\t//\"github.com/magicsea/ganet/config\"\n\t//\"github.com/magicsea/ganet/gateframework\"\n\t\"github.com/magicsea/ganet/log\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n//标志位\nconst (\n\tNetPackFLag_Encode   byte = 1\n\tNetPackFLag_Compress byte = 2\n)\n\n//消息主类型\n//用处区分系统协议和路由规则\ntype ChannelType int32\n\nconst (\n\tChannelNone      ChannelType = 0\n\tChannelHeartbeat             = 1 //心跳包\n\tChannelLogin                 = 2 //登录包\n\n\tChannelGame   = 100 //发到gameserver的包\n\tChannelBattle = 200 //发到battle的包\n)\n\ntype NetPack interface {\n\tMarshalObj(obj interface{}) ([]byte, error)\n\tUnmarshalObj(data []byte, obj interface{}) error\n\t//解包.返回id,rawdata,error\n\tUnmarshal(data []byte) (interface{}, []byte, error)\n\t//打包.\n\tMarshal(msgID interface{}, rawmsg []byte) ([]byte, error)\n\n\tGetChannelType(msgID interface{}) ChannelType\n}\n\ntype NetPackBytes struct {\n\t//channel msgs.ChannelType //主消息通道\n\t//msgID   byte             //消息id\n\t//cno     byte             //客户端请求号\n\t//flag    byte             //压缩，加密等表示\n\n\t//rawData []byte //数据段\n}\n\nfunc (p *NetPackBytes) Unmarshal(data []byte) (interface{}, []byte, error) {\n\tif len(data) < 3 {\n\t\treturn nil, nil, errors.New(\"invalid  data:\" + string(data))\n\t}\n\n\t//pk.channel = msgs.GameServer\n\t//pk.msgID = p[0]\n\t//pk.cno = p[1]\n\t//pk.flag = p[2]\n\t//pk.rawData = p[3:]\n\treturn data[0], data[3:], nil\n}\nfunc (p *NetPackBytes) MarshalObj(obj interface{}) ([]byte, error) {\n\tpbobj, b := obj.(proto.Message)\n\tif !b {\n\t\treturn nil, errors.New(fmt.Sprintf(\"UnmarshalObj not proto type:%v\", reflect.TypeOf(obj)))\n\t}\n\treturn proto.Marshal(pbobj)\n}\n\nfunc (p *NetPackBytes) UnmarshalObj(data []byte, obj interface{}) error {\n\tpbobj, b := obj.(proto.Message)\n\tif !b {\n\t\treturn errors.New(fmt.Sprintf(\"UnmarshalObj not proto type:%v\", reflect.TypeOf(obj)))\n\t}\n\treturn proto.Unmarshal(data, pbobj)\n}\nfunc (p *NetPackBytes) GetChannelType(msgID interface{}) ChannelType {\n\tvar iid = int32(msgID.(byte))\n\n\tswitch iid {\n\tcase 0:\n\t\treturn ChannelLogin\n\tcase 1:\n\t\treturn ChannelHeartbeat\n\t}\n\n\tif iid > 50 {\n\t\treturn ChannelBattle\n\t}\n\treturn ChannelGame\n}\n\nfunc (pk *NetPackBytes) Marshal(msgID interface{}, rawmsg []byte) ([]byte, error) {\n\tdata := []byte{msgID.(byte), 0, 0}\n\tdata = append(data, rawmsg...)\n\treturn data, nil\n}\n\n//加密\n//func (pk *NetPackBytes) IsEncode() bool {\n//\treturn (pk.flag & NetPackFLag_Encode) > 0\n//}\n\n//加密\n//func (pk *NetPackBytes) IsCompress() bool {\n//\treturn (pk.flag & NetPackFLag_Compress) > 0\n//}\n\n//===========================json==========================\n\ntype JsData struct {\n\tId  string `json:Id`\n\tMsg string `json:Msg`\n}\ntype NetPackJson struct {\n\t//channel msgs.ChannelType //主消息通道\n\t//msgID   string             //消息id\n}\n\n//(data)id,obj,error\nfunc (p *NetPackJson) Unmarshal(data []byte) (interface{}, []byte, error) {\n\t//log.Info(\"Unmarshal raw:%s\",string(data))\n\n\t//var m map[string]json.RawMessage\n\tjsdata := JsData{}\n\terr := json.Unmarshal(data, &jsdata)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\treturn jsdata.Id, []byte(jsdata.Msg), nil\n\t//if len(m) != 2 ||m[JsonIdName]==nil|| m[JsonMsgName]==nil{\n\t//\treturn nil,nil, errors.New(\"invalid json data:\"+string(data))\n\t//}\n\n\t//return string(m[JsonIdName]),m[JsonMsgName],nil\n}\nfunc (p *NetPackJson) UnmarshalObj(data []byte, obj interface{}) error {\n\n\treturn json.Unmarshal(data, obj)\n}\n\nfunc (p *NetPackJson) MarshalObj(obj interface{}) ([]byte, error) {\n\treturn json.Marshal(obj)\n}\n\nfunc (p *NetPackJson) Marshal(msgID interface{}, rawmsg []byte) ([]byte, error) {\n\tvar jd = JsData{Id: msgID.(string), Msg: string(rawmsg)}\n\t//m := map[string]interface{}{JsonIdName: msgID,JsonMsgName:rawmsg}\n\tdata, err := json.Marshal(jd)\n\treturn data, err\n}\n\nfunc (p *NetPackJson) GetChannelType(msgID interface{}) ChannelType {\n\t//c2s_xxx:gameserver\n\t//c2b_xxx:battleserver\n\tvar sid = msgID.(string)\n\n\tswitch sid {\n\tcase \"login\":\n\t\treturn ChannelLogin\n\tcase \"heartbeat\":\n\t\treturn ChannelHeartbeat\n\t}\n\n\tids := strings.Split(sid, \"_\")\n\tif len(ids) < 2 {\n\t\tlog.Error(\"unknow msgid:%s\", sid)\n\t\treturn ChannelNone\n\t}\n\tprefix := ids[0]\n\tif prefix == \"b\" {\n\t\treturn ChannelBattle\n\t}\n\treturn ChannelGame\n}\n\n//====================包类型选择==========================\nvar netPackBytes NetPackBytes\nvar netPackJson NetPackJson\n\n// func GetNetPack(t gateframework.NetType) NetPack {\n// \tif t == gateframework.TCP {\n// \t\treturn &netPackBytes\n// \t} else {\n// \t\treturn &netPackJson\n// \t}\n// }\n\nfunc GetNetPackByConf() NetPack {\n\treturn &netPackJson\n\t// if config.IsJsonProto() {\n\t// \treturn &netPackJson\n\n\t// }\n\t// return &netPackBytes\n}\n"
  },
  {
    "path": "server/src/Server/gate/gateserver.go",
    "content": "package gate\n\nimport (\n\t\"Server/cluster\"\n\t\"gameproto/msgs\"\n\t\"github.com/magicsea/ganet/config\"\n\tgfw \"github.com/magicsea/ganet/gateframework\"\n\t\"github.com/magicsea/ganet/log\"\n\t\"github.com/magicsea/ganet/service\"\n\t\"github.com/magicsea/ganet/util\"\n\n\t\"reflect\"\n\t\"time\"\n\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n)\n\ntype GateService struct {\n\tservice.ServiceData\n\tagents    map[uint64]*actor.PID\n\tactorchan chan *AgentActor //传说创建actor\n\tisReg     bool\n}\n\n//Service 获取服务对象\nfunc Service() service.IService {\n\treturn new(GateService)\n}\n\nfunc Type() string {\n\treturn \"gate\"\n}\n\ntype NewAagentActorMsg struct {\n\tAgent gfw.Agent\n}\ntype NewAagentActorResultMsg struct {\n\tPid *actor.PID\n}\n\n//以下为接口函数\nfunc (s *GateService) OnReceive(context service.Context) {\n\tlog.Debug(\"GateService.OnReceive:\", context.Message())\n\tswitch msg := context.Message().(type) {\n\n\tcase *msgs.AddAgentToParent:\n\t\tlog.Info(\"msgs.AddAgentToParent%v\", msg.Uid)\n\t\t//子对象注册\n\t\ts.agents[msg.Uid] = msg.Sender\n\tcase *msgs.RemoveAgentFromParent:\n\t\tlog.Info(\"msgs.RemoveAgentFromParent%v\", msg.Uid)\n\t\tdelete(s.agents, msg.Uid)\n\tcase *NewAagentActorMsg:\n\t\tab := NewAgentActor(context, msg.Agent)\n\t\tpid := context.Spawn(actor.PropsFromProducer(func() actor.Actor {return ab}))\n\t\tab.pid = pid\n\t\tab.parentPid = context.Self()\n\t\tcontext.Respond(&NewAagentActorResultMsg{Pid: pid})\n\t// case *msgs.NewChild:\n\t// \t//创建子节点\n\t// \tab := NewAgentActor(context)\n\t// \tpid := context.Spawn(actor.FromInstance(ab))\n\t// \tab.pid = pid\n\t// \tab.parentPid = context.Self()\n\t// \t//context.Sender().Tell(&msgs.NewChildResult{Pid: pid})\n\t// \ts.actorchan <- ab\n\tcase *msgs.UnicastFrameMsg:\n\t\t//单todo:...\n\t\tlog.Info(\"gate.UnicastFrameMsg:\", msg)\n\n\tcase *msgs.MulticastFrameMsg:\n\t\t//组todo:...\n\t\tlog.Info(\"gate.UnicastFrameMsg:\", msg)\n\n\tcase *msgs.BroadcastFrameMsg:\n\tcase *msgs.BroadcastFrameMsgJson:\n\t\t//广播\n\t\tlog.Info(\"gate.BroadcastFrameMsg:\", msg, \" child:\", len(s.agents))\n\t\t//children := context.Children()\n\t\tfor _, child := range s.agents {\n\t\t\tlog.Info(\"send agent:\", child)\n\t\t\tchild.Tell(msg.FrameMsg)\n\t\t}\n\t}\n}\nfunc (s *GateService) OnInit() {\n\ts.agents = make(map[uint64]*actor.PID)\n\ts.actorchan = make(chan *AgentActor)\n}\n\nfunc (s *GateService) OnStart(as *service.ActorService) {\n\t//as.RegisterMsg(reflect.TypeOf(&msgs.UserLogin{}), s.OnUserLogin) //注册登录\n\tas.RegisterMsg(reflect.TypeOf(&msgs.Tick{}), s.OnTick)                    //定时任务\n\tas.RegisterMsg(reflect.TypeOf(&msgs.Kick{}), s.OnKick)                    //踢人\n\tas.RegisterMsg(reflect.TypeOf(&msgs.AddServiceRep{}), s.OnRegOK)          //注册完成\n\tas.RegisterMsg(reflect.TypeOf(&actor.Terminated{}), s.OnDisconnectCenter) //被动断开服务器\n\n\tlog.Info(\"gate start\")\n\tgate := &gfw.Gate{\n\t\tMaxConnNum:      config.GetServiceConfigInt(s.Name, \"MaxConnNum\"),\n\t\tPendingWriteNum: 1024,\n\t\tMaxMsgLen:       65535,\n\t\tWSAddr:          config.GetServiceConfigString(s.Name, \"WsAddr\"),\n\t\tCertFile:        \"\",\n\t\tKeyFile:         \"\",\n\t\tTCPAddr:         config.GetServiceConfigString(s.Name, \"TcpAddr\"),\n\t\tLenMsgLen:       2,\n\t\tLittleEndian:    true,\n\t\tProcessor:       nil, //msg.Processor,\n\t\t//AgentChanRPC:    nil, //game.ChanRPC,\n\t}\n\n\tgate.Run(s)\n\n\tlog.Debug(\"gate OnStart ok!!\")\n}\n\nfunc (s *GateService) OnRun() {\n\t//注册\n\ts.RegToCenter()\n\t//定时任务\n\tutil.StartLoopTask(time.Second*5, func() {\n\t\ts.Pid.Tell(&msgs.Tick{}) //转主线程执行\n\t})\n}\n\n//注册到中心服务器\nfunc (s *GateService) RegToCenter() {\n\t//注册到center\n\tvaltcp := &msgs.ServiceValue{\"TcpAddr\", config.GetServiceConfigString(s.Name, \"TcpAddrOut\")}\n\tvalws := &msgs.ServiceValue{\"WsAddr\", config.GetServiceConfigString(s.Name, \"WsAddrOut\")}\n\t//cluster.RegServerWork(&s.ServiceData, []*msgs.ServiceValue{valtcp, valws})\n\tr := cluster.GetServicePID(\"center\")\n\tmsg := msgs.AddService{\n\t\tServiceName: s.Name,\n\t\tServiceType: s.TypeName,\n\t\tPid:         s.GetPID(),\n\t\tValues:      []*msgs.ServiceValue{valtcp, valws}}\n\tr.GetActorPID().Request(&msg, s.GetPID())\n\tlog.Info(\"GateService RegToCenter !!!\")\n}\n\n//注册成功\nfunc (s *GateService) OnRegOK(context service.Context) {\n\ts.isReg = true\n\tlog.Info(\"GateService reg ok!!!\")\n\tcontext.Watch(context.Sender())\n}\n\n//从中心断开\nfunc (s *GateService) OnDisconnectCenter(context service.Context) {\n\ts.isReg = false\n\tlog.Info(\"GateService OnDisconnectCenter !!!\")\n}\n\nfunc (s *GateService) OnTick(context service.Context) {\n\tif !s.isReg {\n\t\ts.RegToCenter()\n\t\treturn\n\t}\n\tload := len(s.agents)\n\tcluster.UpdateServiceLoad(s.Name, uint32(load), msgs.ServiceStateFree)\n}\n\nfunc (s *GateService) OnKick(context service.Context) {\n\tmsg := context.Message().(*msgs.Kick)\n\tlog.Info(\"GateService.OnKick:%v\", msg)\n\tif agent, ok := s.agents[msg.Uid]; ok {\n\t\tagent.Tell(&msgs.Kick{Uid: msg.Uid})\n\t}\n}\n\nfunc (s *GateService) OnDestory() {\n\n}\n\n//创建agentactor,外部线程调用\nfunc (s *GateService) GetAgentActor(a gfw.Agent) (*actor.PID, error) {\n\tlog.Info(\"new connect.....\")\n\t// s.Pid.Tell(new(msgs.NewChild)) //请求一个actor\n\t// agentActor := <-s.actorchan\n\t// agentActor.bindAgent = a\n\n\t// return agentActor.pid\n\n\tr, err := s.Pid.RequestFuture(&NewAagentActorMsg{a}, time.Second).Result()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn r.(*NewAagentActorResultMsg).Pid, nil\n}\n"
  },
  {
    "path": "server/src/Server/go.mod",
    "content": "module Server\n\ngo 1.13\n\nrequire (\n\tcomm v0.0.0-00010101000000-000000000000\n\tgameproto v0.0.0-00010101000000-000000000000\n\tgithub.com/AsynkronIT/protoactor-go v0.0.0-20200317173033-c483abfa40e2\n\tgithub.com/astaxie/beego v1.12.2 // indirect\n\tgithub.com/go-redis/redis v6.15.8+incompatible // indirect\n\tgithub.com/go-redis/redis/v7 v7.4.0\n\tgithub.com/gogo/protobuf v1.3.1\n\tgithub.com/magicsea/behavior3go v0.0.0-20200622063830-4cf5449990a7\n\tgithub.com/magicsea/ganet v0.0.0-20200803062315-0bb3f3f0ce0b\n)\n\nreplace (\n\tcomm => ../comm\n\tgameproto => ../gameproto\n)\n"
  },
  {
    "path": "server/src/Server/go.sum",
    "content": "cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.36.0/go.mod h1:RUoy9p/M4ge0HzT8L+SDZ8jg+Q6fth0CiBuhFJpSV40=\ncloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=\ncloud.google.com/go v0.41.0/go.mod h1:OauMR7DV8fzvZIl2qg6rkaIhD/vmgk4iwEw/h6ercmg=\ncloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=\ncloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=\ncloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=\ncloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=\ncloud.google.com/go v0.48.0/go.mod h1:gGOnoa/XMQYHAscREBlbdHduGchEaP9N0//OXdrPI/M=\ncloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=\ncloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=\ncloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=\ncloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=\ncollectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE=\ndmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU=\ndmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=\ndmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU=\ndmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4=\ndmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU=\ngit.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=\ngithub.com/AsynkronIT/goconsole v0.0.0-20160504192649-bfa12eebf716/go.mod h1:2wH9LwjNrSqVmCIi35aqCJ0OGTE4DZ53LCRaGQESBp8=\ngithub.com/AsynkronIT/gonet v0.0.0-20161127091928-0553637be225/go.mod h1:RwIiSK8AJBCPP7hBBfXD1iferErYAmGbqv/Lu84ZFIA=\ngithub.com/AsynkronIT/protoactor-go v0.0.0-20200317173033-c483abfa40e2 h1:UTgOl+i/Y/91Si6EZeWLGbw5qoOw/gG918VKe6eqUm4=\ngithub.com/AsynkronIT/protoactor-go v0.0.0-20200317173033-c483abfa40e2/go.mod h1:oA0usvSnxPdbRUKVDvMBUqFyWQdVes7Xfcg5QSLE87A=\ngithub.com/Azure/azure-sdk-for-go v16.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=\ngithub.com/Azure/azure-sdk-for-go v31.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=\ngithub.com/Azure/azure-sdk-for-go v36.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=\ngithub.com/Azure/go-autorest v10.7.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest v10.15.3+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest v11.1.2+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest v13.3.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=\ngithub.com/Azure/go-autorest/autorest v0.9.2/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=\ngithub.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=\ngithub.com/Azure/go-autorest/autorest/adal v0.6.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=\ngithub.com/Azure/go-autorest/autorest/adal v0.7.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=\ngithub.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=\ngithub.com/Azure/go-autorest/autorest/azure/auth v0.4.0/go.mod h1:Oo5cRhLvZteXzI2itUm5ziqsoIxRkzrt3t61FeZaS18=\ngithub.com/Azure/go-autorest/autorest/azure/cli v0.3.0/go.mod h1:rNYMNAefZMRowqCV0cVhr/YDW5dD7afFq9nXAXL4ykE=\ngithub.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=\ngithub.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g=\ngithub.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=\ngithub.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=\ngithub.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM=\ngithub.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc=\ngithub.com/Azure/go-autorest/autorest/to v0.3.0/go.mod h1:MgwOyqaIuKdG4TL/2ywSsIWKAfJfgHDo8ObuUk3t5sA=\ngithub.com/Azure/go-autorest/autorest/validation v0.2.0/go.mod h1:3EEqHnBxQGHXRYq3HT1WyXAvT7LLY3tl70hw6tQIbjI=\ngithub.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=\ngithub.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk=\ngithub.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=\ngithub.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=\ngithub.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=\ngithub.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=\ngithub.com/DataDog/zstd v1.3.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=\ngithub.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=\ngithub.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=\ngithub.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=\ngithub.com/Microsoft/go-winio v0.4.3/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=\ngithub.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=\ngithub.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=\ngithub.com/NYTimes/gziphandler v1.0.1/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=\ngithub.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=\ngithub.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=\ngithub.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=\ngithub.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=\ngithub.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=\ngithub.com/Shopify/sarama v1.21.0/go.mod h1:yuqtN/pe8cXRWG5zPaO7hCfNJp5MwmkoJEoLjkm5tCQ=\ngithub.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=\ngithub.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=\ngithub.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=\ngithub.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=\ngithub.com/Workiva/go-datastructures v1.0.50 h1:slDmfW6KCHcC7U+LP3DDBbm4fqTwZGn1beOFPfGaLvo=\ngithub.com/Workiva/go-datastructures v1.0.50/go.mod h1:Z+F2Rca0qCsVYDS8z7bAGm8f3UkzuWYS/oBZz5a7VVA=\ngithub.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af/go.mod h1:5Jv4cbFiHJMsVxt52+i0Ha45fjshj6wxYr1r19tB9bw=\ngithub.com/aclements/go-gg v0.0.0-20170323211221-abd1f791f5ee/go.mod h1:55qNq4vcpkIuHowELi5C8e+1yUHtoLoOUR9QU5j7Tes=\ngithub.com/aclements/go-moremath v0.0.0-20190506201756-286cc0be6f75/go.mod h1:idZL3yvz4kzx1dsBOAC+oYv6L92P1oFEhUXUB1A/lwQ=\ngithub.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=\ngithub.com/ajg/form v0.0.0-20160822230020-523a5da1a92f/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=\ngithub.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=\ngithub.com/ajstarks/deck v0.0.0-20190526003814-edf08d731d5a/go.mod h1:j3f/59diR4DorW5A78eDYvRkdrkh+nps4p5LA1Tl05U=\ngithub.com/ajstarks/svgo v0.0.0-20181006003313-6ce6a3bcf6cd/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=\ngithub.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs=\ngithub.com/alecthomas/kingpin v2.2.6+incompatible/go.mod h1:59OFYbFVLKQKq+mqrL6Rw5bR0c3ACQaawgXx0QYndlE=\ngithub.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=\ngithub.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=\ngithub.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=\ngithub.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=\ngithub.com/alicebob/gopher-json v0.0.0-20180125190556-5a6b3ba71ee6/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=\ngithub.com/alicebob/miniredis v2.5.0+incompatible/go.mod h1:8HZjEj4yU0dwhYHky+DxYx+6BMjkBbe5ONFIF1MXffk=\ngithub.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=\ngithub.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c=\ngithub.com/apache/arrow/go/arrow v0.0.0-20190426170622-338c62a2a205/go.mod h1:W8yIftLTH1FLJvxuZc4tFnIlZ2tWg7RCoJR1HcETAso=\ngithub.com/apache/arrow/go/arrow v0.0.0-20190626211233-e980b2024a28/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0=\ngithub.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=\ngithub.com/apex/log v1.1.0/go.mod h1:yA770aXIDQrhVOIGurT/pVdfCpSq1GQV/auzMN5fzvY=\ngithub.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy8kCu4PNA+aP7WUV72eXWJeP9/r3/K9aLE=\ngithub.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=\ngithub.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=\ngithub.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=\ngithub.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=\ngithub.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg=\ngithub.com/armon/go-metrics v0.3.0/go.mod h1:zXjbSimjXTd7vOpY8B0/2LpvNvDoXBuplAD+gJD3GYs=\ngithub.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=\ngithub.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=\ngithub.com/astaxie/beego v1.12.2 h1:CajUexhSX5ONWDiSCpeQBNVfTzOtPb9e9d+3vuU5FuU=\ngithub.com/astaxie/beego v1.12.2/go.mod h1:TMcqhsbhN3UFpN+RCfysaxPAbrhox6QSS3NIAEp/uzE=\ngithub.com/aws/aws-sdk-go v1.15.24/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0=\ngithub.com/aws/aws-sdk-go v1.15.64/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM=\ngithub.com/aws/aws-sdk-go v1.20.9/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=\ngithub.com/aws/aws-sdk-go v1.25.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=\ngithub.com/aws/aws-sdk-go v1.25.36/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=\ngithub.com/aws/aws-sdk-go-v2 v0.9.0/go.mod h1:sa1GePZ/LfBGI4dSq30f6uR4Tthll8axxtEPvlpXZ8U=\ngithub.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I=\ngithub.com/beego/goyaml2 v0.0.0-20130207012346-5545475820dd/go.mod h1:1b+Y/CofkYwXMUU0OhQqGvsY2Bvgr4j6jfT699wyZKQ=\ngithub.com/beego/x2j v0.0.0-20131220205130-a0352aadc542/go.mod h1:kSeGC/p1AbBiEp5kat81+DSQrZenVBZXklMLaELspWU=\ngithub.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=\ngithub.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=\ngithub.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=\ngithub.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=\ngithub.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU=\ngithub.com/blakesmith/ar v0.0.0-20150311145944-8bd4349a67f2/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI=\ngithub.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=\ngithub.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c=\ngithub.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=\ngithub.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=\ngithub.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g=\ngithub.com/bradfitz/gomemcache v0.0.0-20180710155616-bc664df96737/go.mod h1:PmM6Mmwb0LSuEubjR8N7PtNe1KxZLtOUHtbeikc5h60=\ngithub.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA=\ngithub.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34=\ngithub.com/caarlos0/ctrlc v1.0.0/go.mod h1:CdXpj4rmq0q/1Eb44M9zi2nKB0QraNKuRGYGrrHhcQw=\ngithub.com/cactus/go-statsd-client/statsd v0.0.0-20190501063751-9a7692639588/go.mod h1:3/sdo8I67TaOslRGJ6FqQC/ynu+wg7H6IE4WYtr51hk=\ngithub.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E=\ngithub.com/campoy/unique v0.0.0-20180121183637-88950e537e7e/go.mod h1:9IOqJGCPMSc6E5ydlp5NIonxObaeu/Iub/X03EKPVYo=\ngithub.com/casbin/casbin v1.7.0/go.mod h1:c67qKN6Oum3UF5Q1+BByfFxkwKvhwW57ITjqwtzR1KE=\ngithub.com/casbin/casbin v1.8.3/go.mod h1:z8uPsfBJGUsnkagrt3G8QvjgTKFMBJ32UP8HpZllfog=\ngithub.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=\ngithub.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=\ngithub.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=\ngithub.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM=\ngithub.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=\ngithub.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ=\ngithub.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=\ngithub.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag=\ngithub.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=\ngithub.com/clbanning/x2j v0.0.0-20180326210544-5e605d46809c/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=\ngithub.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=\ngithub.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=\ngithub.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=\ngithub.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=\ngithub.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=\ngithub.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=\ngithub.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM=\ngithub.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0=\ngithub.com/coredns/coredns v1.1.2/go.mod h1:zASH/MVDgR6XZTbxvOnsZfffS+31vg6Ackf/wo1+AM0=\ngithub.com/coredns/coredns v1.6.5/go.mod h1:BvAJtEvf7XOlRB+4kj03JSkL0J1ntukFHiEdHWJA3xU=\ngithub.com/coredns/federation v0.0.0-20190818181423-e032b096babe/go.mod h1:MoqTEFX8GlnKkyq8eBCF94VzkNAOgjdlCJ+Pz/oCLPk=\ngithub.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=\ngithub.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=\ngithub.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=\ngithub.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=\ngithub.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=\ngithub.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=\ngithub.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=\ngithub.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20190212144455-93d5ec2c7f76/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20190620071333-e64a0ec8b42a/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=\ngithub.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=\ngithub.com/couchbase/go-couchbase v0.0.0-20200519150804-63f3cdb75e0d/go.mod h1:TWI8EKQMs5u5jLKW/tsb9VwauIrMIxQG1r5fMsswK5U=\ngithub.com/couchbase/gocb v1.5.2/go.mod h1:AtRhXLpjgHmkRgG3e0K9t41qnWFonb8iohS/u/TZzxM=\ngithub.com/couchbase/gomemcached v0.0.0-20200526233749-ec430f949808/go.mod h1:srVSlQLB8iXBVXHgnqemxUXqN6FCvClgCMPCsjBDR7c=\ngithub.com/couchbase/goutils v0.0.0-20180530154633-e865a1461c8a/go.mod h1:BQwMFlJzDjFDG3DJUdU0KORxn88UlsOULuxLExMh3Hs=\ngithub.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=\ngithub.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=\ngithub.com/cupcake/rdb v0.0.0-20161107195141-43ba34106c76/go.mod h1:vYwsqCOLxGiisLwp9rITslkFNpZD5rz43tf41QFkTWY=\ngithub.com/cznic/cc v0.0.0-20181122101902-d673e9b70d4d/go.mod h1:m3fD/V+XTB35Kh9zw6dzjMY+We0Q7PMf6LLIC4vuG9k=\ngithub.com/cznic/fileutil v0.0.0-20181122101858-4d67cfea8c87/go.mod h1:8S58EK26zhXSxzv7NQFpnliaOQsmDUxvoQO3rt154Vg=\ngithub.com/cznic/golex v0.0.0-20181122101858-9c343928389c/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc=\ngithub.com/cznic/internal v0.0.0-20181122101858-3279554c546e/go.mod h1:olo7eAdKwJdXxb55TKGLiJ6xt1H0/tiiRCWKVLmtjY4=\ngithub.com/cznic/ir v0.0.0-20181122101859-da7ba2ecce8b/go.mod h1:bctvsSxTD8Lpaj5RRQ0OrAAu4+0mD4KognDQItBNMn0=\ngithub.com/cznic/lex v0.0.0-20181122101858-ce0fb5e9bb1b/go.mod h1:LcYbbl1tn/c31gGxe2EOWyzr7EaBcdQOoIVGvJMc7Dc=\ngithub.com/cznic/lexer v0.0.0-20181122101858-e884d4bd112e/go.mod h1:YNGh5qsZlhFHDfWBp/3DrJ37Uy4pRqlwxtL+LS7a/Qw=\ngithub.com/cznic/mathutil v0.0.0-20181122101859-297441e03548/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM=\ngithub.com/cznic/strutil v0.0.0-20181122101858-275e90344537/go.mod h1:AHHPPPXTw0h6pVabbcbyGRK1DckRn7r/STdZEeIDzZc=\ngithub.com/cznic/xc v0.0.0-20181122101856-45b06973881e/go.mod h1:3oFoiOvCDBYH+swwf5+k/woVmWy7h1Fcyu8Qig/jjX0=\ngithub.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg=\ngithub.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-xdr v0.0.0-20161123171359-e6a2ba005892/go.mod h1:CTDl0pzVzE5DEzZhPfvhY/9sPFMQIxaJ9VAMs9AagrE=\ngithub.com/denverdino/aliyungo v0.0.0-20170926055100-d3308649c661/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=\ngithub.com/denverdino/aliyungo v0.0.0-20191112021521-0e9f4c697da3/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=\ngithub.com/dgrijalva/jwt-go v0.0.0-20160705203006-01aeca54ebda/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=\ngithub.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=\ngithub.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ=\ngithub.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=\ngithub.com/digitalocean/godo v1.1.1/go.mod h1:h6faOIcZ8lWIwNQ+DN7b3CgX4Kwby5T+nbpNqkUIozU=\ngithub.com/digitalocean/godo v1.10.0/go.mod h1:h6faOIcZ8lWIwNQ+DN7b3CgX4Kwby5T+nbpNqkUIozU=\ngithub.com/digitalocean/godo v1.26.0/go.mod h1:iJnN9rVu6K5LioLxLimlq0uRI+y/eAQjROUmeU/r0hY=\ngithub.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8=\ngithub.com/disintegration/gift v1.2.0/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI=\ngithub.com/djherbis/buffer v1.0.0/go.mod h1:VwN8VdFkMY0DCALdY8o00d3IZ6Amz/UNVMWcSaJT44o=\ngithub.com/djherbis/nio v2.0.3+incompatible/go.mod h1:v74owXPROGWsr1y28T13rlXf5Hn/bWJ1bbX8M+BqyPo=\ngithub.com/dnaeon/go-vcr v0.0.0-20180814043457-aafff18a5cc2/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=\ngithub.com/dnstap/golang-dnstap v0.0.0-20170829151710-2cf77a2b5e11/go.mod h1:s1PfVYYVmTMgCSPtho4LKBDecEHJWtiVDPNv78Z985U=\ngithub.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=\ngithub.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=\ngithub.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=\ngithub.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=\ngithub.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=\ngithub.com/dustin/go-humanize v0.0.0-20180713052910-9f541cc9db5d/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=\ngithub.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=\ngithub.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=\ngithub.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=\ngithub.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=\ngithub.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=\ngithub.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=\ngithub.com/elastic/go-elasticsearch/v6 v6.8.5/go.mod h1:UwaDJsD3rWLM5rKNFzv9hgox93HoX8utj1kxD9aFUcI=\ngithub.com/elazarl/go-bindata-assetfs v0.0.0-20160803192304-e1a2a7ec64b0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=\ngithub.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=\ngithub.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=\ngithub.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=\ngithub.com/emirpasic/gods v1.9.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=\ngithub.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg=\ngithub.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=\ngithub.com/envoyproxy/go-control-plane v0.8.0/go.mod h1:GSSbY9P1neVhdY7G4wu+IK1rk/dqhiCC/4ExuWJZVuk=\ngithub.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=\ngithub.com/envoyproxy/go-control-plane v0.9.1/go.mod h1:G1fbsNGAFpC1aaERrShZQVdUV2ZuZuv6FCl2v9JNSxQ=\ngithub.com/envoyproxy/protoc-gen-validate v0.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=\ngithub.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=\ngithub.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=\ngithub.com/evanphx/json-patch v4.1.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=\ngithub.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=\ngithub.com/farsightsec/golang-framestream v0.0.0-20181102145529-8a0cb8ba8710/go.mod h1:eNde4IQyEiA5br02AouhEHCu3p3UzrCdFR4LuQHklMI=\ngithub.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=\ngithub.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=\ngithub.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=\ngithub.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=\ngithub.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=\ngithub.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=\ngithub.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=\ngithub.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=\ngithub.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=\ngithub.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=\ngithub.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=\ngithub.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=\ngithub.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM=\ngithub.com/glendc/gopher-json v0.0.0-20170414221815-dc4743023d0c/go.mod h1:Gja1A+xZ9BoviGJNA2E9vFkPjjsl+CoJxSXiQM1UXtw=\ngithub.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=\ngithub.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=\ngithub.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M=\ngithub.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ=\ngithub.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=\ngithub.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=\ngithub.com/go-ini/ini v1.51.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=\ngithub.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=\ngithub.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=\ngithub.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc=\ngithub.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=\ngithub.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=\ngithub.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=\ngithub.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8=\ngithub.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8=\ngithub.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=\ngithub.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=\ngithub.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=\ngithub.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=\ngithub.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=\ngithub.com/go-redis/redis v6.14.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=\ngithub.com/go-redis/redis v6.15.8+incompatible h1:BKZuG6mCnRj5AOaWJXoCgf6rqTYnYJLe4en2hxT7r9o=\ngithub.com/go-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=\ngithub.com/go-redis/redis/v7 v7.4.0 h1:7obg6wUoj05T0EpY0o8B59S9w5yeMWql7sw2kwNW1x4=\ngithub.com/go-redis/redis/v7 v7.4.0/go.mod h1:JDNMw23GTyLNC4GZu9njt15ctBQVn7xjRfnwdHj/Dcg=\ngithub.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=\ngithub.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=\ngithub.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=\ngithub.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=\ngithub.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=\ngithub.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=\ngithub.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=\ngithub.com/gobuffalo/attrs v0.0.0-20190219185331-f338c9388485/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=\ngithub.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=\ngithub.com/gobuffalo/attrs v0.1.0/go.mod h1:fmNpaWyHM0tRm8gCZWKx8yY9fvaNLo2PyzBNSrBZ5Hw=\ngithub.com/gobuffalo/buffalo v0.12.8-0.20181004233540-fac9bb505aa8/go.mod h1:sLyT7/dceRXJUxSsE813JTQtA3Eb1vjxWfo/N//vXIY=\ngithub.com/gobuffalo/buffalo v0.13.0/go.mod h1:Mjn1Ba9wpIbpbrD+lIDMy99pQ0H0LiddMIIDGse7qT4=\ngithub.com/gobuffalo/buffalo v0.13.1/go.mod h1:K9c22KLfDz7obgxvHv1amvJtCQEZNiox9+q6FDJ1Zcs=\ngithub.com/gobuffalo/buffalo v0.13.2/go.mod h1:vA8I4Dwcfkx7RAzIRHVDZxfS3QJR7muiOjX4r8P2/GE=\ngithub.com/gobuffalo/buffalo v0.13.4/go.mod h1:y2jbKkO0k49OrNIOAkbWQiPBqxAFpHn5OKnkc7BDh+I=\ngithub.com/gobuffalo/buffalo v0.13.5/go.mod h1:hPcP12TkFSZmT3gUVHZ24KRhTX3deSgu6QSgn0nbWf4=\ngithub.com/gobuffalo/buffalo v0.13.6/go.mod h1:/Pm0MPLusPhWDayjRD+/vKYnelScIiv0sX9YYek0wpg=\ngithub.com/gobuffalo/buffalo v0.13.7/go.mod h1:3gQwZhI8DSbqmDqlFh7kfwuv/wd40rqdVxXtFWlCQHw=\ngithub.com/gobuffalo/buffalo v0.13.9/go.mod h1:vIItiQkTHq46D1p+bw8mFc5w3BwrtJhMvYjSIYK3yjE=\ngithub.com/gobuffalo/buffalo v0.13.12/go.mod h1:Y9e0p0cdo/eI+lHm7EFzlkc9YzjwGo5QeDj+FbsyqVA=\ngithub.com/gobuffalo/buffalo v0.13.13/go.mod h1:WAL36xBN8OkU71lNjuYv6llmgl0o8twjlY+j7oGUmYw=\ngithub.com/gobuffalo/buffalo v0.14.0/go.mod h1:A9JI3juErlXNrPBeJ/0Pdky9Wz+GffEg7ZN0d1B5h48=\ngithub.com/gobuffalo/buffalo v0.14.2/go.mod h1:VNMTzddg7bMnkVxCUXzqTS4PvUo6cDOs/imtG8Cnt/k=\ngithub.com/gobuffalo/buffalo v0.14.3/go.mod h1:3O9vB/a4UNb16TevehTvDCaPnb98NWvYz0msJQ6ZlVA=\ngithub.com/gobuffalo/buffalo v0.14.5/go.mod h1:RWK6evR4hY4nRVfw9xie9V/LYK3j0U9wU2oKgQUFZ88=\ngithub.com/gobuffalo/buffalo v0.14.6/go.mod h1:71Un+T2JGgwXLjBqYFdGSooz/OUjw15BJM0nbbcAM0o=\ngithub.com/gobuffalo/buffalo-docker v1.0.5/go.mod h1:NZ3+21WIdqOUlOlM2onCt7cwojYp4Qwlsngoolw8zlE=\ngithub.com/gobuffalo/buffalo-docker v1.0.6/go.mod h1:UlqKHJD8CQvyIb+pFq+m/JQW2w2mXuhxsaKaTj1X1XI=\ngithub.com/gobuffalo/buffalo-docker v1.0.7/go.mod h1:BdB8AhcmjwR6Lo3rDPMzyh/+eNjYnZ1TAO0eZeLkhig=\ngithub.com/gobuffalo/buffalo-plugins v1.0.2/go.mod h1:pOp/uF7X3IShFHyobahTkTLZaeUXwb0GrUTb9ngJWTs=\ngithub.com/gobuffalo/buffalo-plugins v1.0.4/go.mod h1:pWS1vjtQ6uD17MVFWf7i3zfThrEKWlI5+PYLw/NaDB4=\ngithub.com/gobuffalo/buffalo-plugins v1.4.3/go.mod h1:uCzTY0woez4nDMdQjkcOYKanngeUVRO2HZi7ezmAjWY=\ngithub.com/gobuffalo/buffalo-plugins v1.5.1/go.mod h1:jbmwSZK5+PiAP9cC09VQOrGMZFCa/P0UMlIS3O12r5w=\ngithub.com/gobuffalo/buffalo-plugins v1.6.1/go.mod h1:/XZt7UuuDnx5P4v3cStK0+XoYiNOA2f0wDIsm1oLJQA=\ngithub.com/gobuffalo/buffalo-plugins v1.6.4/go.mod h1:/+N1aophkA2jZ1ifB2O3Y9yGwu6gKOVMtUmJnbg+OZI=\ngithub.com/gobuffalo/buffalo-plugins v1.6.5/go.mod h1:0HVkbgrVs/MnPZ/FOseDMVanCTm2RNcdM0PuXcL1NNI=\ngithub.com/gobuffalo/buffalo-plugins v1.6.6/go.mod h1:hSWAEkJyL9RENJlmanMivgnNkrQ9RC4xJARz8dQryi0=\ngithub.com/gobuffalo/buffalo-plugins v1.6.7/go.mod h1:ZGZRkzz2PiKWHs0z7QsPBOTo2EpcGRArMEym6ghKYgk=\ngithub.com/gobuffalo/buffalo-plugins v1.6.9/go.mod h1:yYlYTrPdMCz+6/+UaXg5Jm4gN3xhsvsQ2ygVatZV5vw=\ngithub.com/gobuffalo/buffalo-plugins v1.6.10/go.mod h1:HxzPZjAEzh9H0gnHelObxxrut9O+1dxydf7U93SYsc8=\ngithub.com/gobuffalo/buffalo-plugins v1.6.11/go.mod h1:eAA6xJIL8OuynJZ8amXjRmHND6YiusVAaJdHDN1Lu8Q=\ngithub.com/gobuffalo/buffalo-plugins v1.7.2/go.mod h1:vEbx30cLFeeZ48gBA/rkhbqC2M/2JpsKs5CoESWhkPw=\ngithub.com/gobuffalo/buffalo-plugins v1.8.1/go.mod h1:vu71J3fD4b7KKywJQ1tyaJGtahG837Cj6kgbxX0e4UI=\ngithub.com/gobuffalo/buffalo-plugins v1.8.2/go.mod h1:9te6/VjEQ7pKp7lXlDIMqzxgGpjlKoAcAANdCgoR960=\ngithub.com/gobuffalo/buffalo-plugins v1.8.3/go.mod h1:IAWq6vjZJVXebIq2qGTLOdlXzmpyTZ5iJG5b59fza5U=\ngithub.com/gobuffalo/buffalo-plugins v1.9.3/go.mod h1:BNRunDThMZKjqx6R+n14Rk3sRSOWgbMuzCKXLqbd7m0=\ngithub.com/gobuffalo/buffalo-plugins v1.9.4/go.mod h1:grCV6DGsQlVzQwk6XdgcL3ZPgLm9BVxlBmXPMF8oBHI=\ngithub.com/gobuffalo/buffalo-plugins v1.10.0/go.mod h1:4osg8d9s60txLuGwXnqH+RCjPHj9K466cDFRl3PErHI=\ngithub.com/gobuffalo/buffalo-plugins v1.11.0/go.mod h1:rtIvAYRjYibgmWhnjKmo7OadtnxuMG5ZQLr25ozAzjg=\ngithub.com/gobuffalo/buffalo-plugins v1.12.0/go.mod h1:kw4Mj2vQXqe4X5TI36PEQgswbL30heGQwJEeDKd1v+4=\ngithub.com/gobuffalo/buffalo-plugins v1.13.0/go.mod h1:Y9nH2VwHVkeKhmdM380ulNXmhhD5On81nRVeD+WlDTQ=\ngithub.com/gobuffalo/buffalo-plugins v1.13.1/go.mod h1:VcvhrgWcZLhOp8JPLckHBDtv05KepY/MxHsT2+06xX4=\ngithub.com/gobuffalo/buffalo-plugins v1.14.0/go.mod h1:r2lykSXBT79c3T5JK1ouivVDrHvvCZUdZBmn+lPMHU8=\ngithub.com/gobuffalo/buffalo-plugins v1.14.1/go.mod h1:9BRBvXuKxR0m4YttVFRtuUcAP9Rs97mGq6OleyDbIuo=\ngithub.com/gobuffalo/buffalo-pop v1.0.5/go.mod h1:Fw/LfFDnSmB/vvQXPvcXEjzP98Tc+AudyNWUBWKCwQ8=\ngithub.com/gobuffalo/buffalo-pop v1.1.2/go.mod h1:czNLXcYbg5/fjr+uht0NyjZaQ0V2W23H1jzyORgCzQ4=\ngithub.com/gobuffalo/buffalo-pop v1.1.5/go.mod h1:H01JIg42XwOHS4gRMhSeDZqBovNVlfBUsVXckU617s4=\ngithub.com/gobuffalo/buffalo-pop v1.1.8/go.mod h1:1uaxOFzzVud/zR5f1OEBr21tMVLQS3OZpQ1A5cr0svE=\ngithub.com/gobuffalo/buffalo-pop v1.1.13/go.mod h1:47GQoBjCMcl5Pw40iCWHQYJvd0HsT9kdaOPWgnzHzk4=\ngithub.com/gobuffalo/buffalo-pop v1.1.14/go.mod h1:sAMh6+s7wytCn5cHqZIuItJbAqzvs6M7FemLexl+pwc=\ngithub.com/gobuffalo/buffalo-pop v1.1.15/go.mod h1:vnvvxhbEFAaEbac9E2ZPjsBeL7WHkma2UyKNVA4y9Wo=\ngithub.com/gobuffalo/buffalo-pop v1.2.1/go.mod h1:SHqojN0bVzaAzCbQDdWtsib202FDIxqwmCO8VDdweF4=\ngithub.com/gobuffalo/buffalo-pop v1.3.0/go.mod h1:P0PhA225dRGyv0WkgYjYKqgoxPdDPDFZDvHj60AGF5w=\ngithub.com/gobuffalo/buffalo-pop v1.6.0/go.mod h1:vrEVNOBKe042HjSNMj72J4FgER/VG6lt4xW6WMpTdlY=\ngithub.com/gobuffalo/buffalo-pop v1.7.0/go.mod h1:UB5HHeFucJG7esTPUPjinBaJTEpVoREJHfSJJELnyeI=\ngithub.com/gobuffalo/buffalo-pop v1.9.0/go.mod h1:MfrkBg0iN9+RdlxdHHAqqGFAC/iyCfTiKqH7Jvt+vhE=\ngithub.com/gobuffalo/buffalo-pop v1.10.0/go.mod h1:C3/cFXB8Zd38XiGgHFdE7dw3Wu9MOKeD7bfELQicGPI=\ngithub.com/gobuffalo/buffalo-pop v1.12.0/go.mod h1:pO2ONSJOCjyroGp4BwVHfMkfd7sLg1U9BvMJqRy6Otk=\ngithub.com/gobuffalo/buffalo-pop v1.13.0/go.mod h1:h+zfyXCUFwihFqz6jmo9xsdsZ1Tm9n7knYpQjW0gv18=\ngithub.com/gobuffalo/clara v0.4.1/go.mod h1:3QgAPqYgPqAzhfGbNLlp4UztaZRi2SOg+ZrZwaq9L94=\ngithub.com/gobuffalo/clara v0.6.0/go.mod h1:RKZxkcH80pLykRi2hLkoxGMxA8T06Dc9fN/pFvutMFY=\ngithub.com/gobuffalo/depgen v0.0.0-20190219190223-ba8c93fa0c2c/go.mod h1:CE/HUV4vDCXtJayRf6WoMWgezb1yH4QHg8GNK8FL0JI=\ngithub.com/gobuffalo/depgen v0.0.0-20190315122043-8442b3fa16db/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=\ngithub.com/gobuffalo/depgen v0.0.0-20190315124901-e02f65b90669/go.mod h1:yTQe8xo5pGIDOApkeO95DjePS4ZOSSSx+ItkqJHxUG4=\ngithub.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=\ngithub.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg=\ngithub.com/gobuffalo/depgen v0.1.1/go.mod h1:65EOv3g7CMe4kc8J1Ds+l2bjcwrWKGXkE4/vpRRLPWY=\ngithub.com/gobuffalo/depgen v0.2.0/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=\ngithub.com/gobuffalo/envy v1.6.4/go.mod h1:Abh+Jfw475/NWtYMEt+hnJWRiC8INKWibIMyNt1w2Mc=\ngithub.com/gobuffalo/envy v1.6.5/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.6/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.7/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.8/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.9/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.10/go.mod h1:X0CFllQjTV5ogsnUrg+Oks2yTI+PU2dGYBJOEI2D1Uo=\ngithub.com/gobuffalo/envy v1.6.11/go.mod h1:Fiq52W7nrHGDggFPhn2ZCcHw4u/rqXkqo+i7FB6EAcg=\ngithub.com/gobuffalo/envy v1.6.12/go.mod h1:qJNrJhKkZpEW0glh5xP2syQHH5kgdmgsKss2Kk8PTP0=\ngithub.com/gobuffalo/envy v1.6.13/go.mod h1:w9DJppgl51JwUFWWd/M/6/otrPtWV3WYMa+NNLunqKA=\ngithub.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI=\ngithub.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI=\ngithub.com/gobuffalo/events v1.0.3/go.mod h1:Txo8WmqScapa7zimEQIwgiJBvMECMe9gJjsKNPN3uZw=\ngithub.com/gobuffalo/events v1.0.7/go.mod h1:z8txf6H9jWhQ5Scr7YPLWg/cgXBRj8Q4uYI+rsVCCSQ=\ngithub.com/gobuffalo/events v1.0.8/go.mod h1:A5KyqT1sA+3GJiBE4QKZibse9mtOcI9nw8gGrDdqYGs=\ngithub.com/gobuffalo/events v1.1.1/go.mod h1:Ia9OgHMco9pEhJaPrPQJ4u4+IZlkxYVco2VbJ2XgnAE=\ngithub.com/gobuffalo/events v1.1.3/go.mod h1:9yPGWYv11GENtzrIRApwQRMYSbUgCsZ1w6R503fCfrk=\ngithub.com/gobuffalo/events v1.1.4/go.mod h1:09/YRRgZHEOts5Isov+g9X2xajxdvOAcUuAHIX/O//A=\ngithub.com/gobuffalo/events v1.1.5/go.mod h1:3YUSzgHfYctSjEjLCWbkXP6djH2M+MLaVRzb4ymbAK0=\ngithub.com/gobuffalo/events v1.1.6/go.mod h1:H/3ZB9BA+WorMb/0F79UvU6u0Cyo2hU97WA51bG2ONY=\ngithub.com/gobuffalo/events v1.1.7/go.mod h1:6fGqxH2ing5XMb3EYRq9LEkVlyPGs4oO/eLzh+S8CxY=\ngithub.com/gobuffalo/events v1.1.8/go.mod h1:UFy+W6X6VbCWS8k2iT81HYX65dMtiuVycMy04cplt/8=\ngithub.com/gobuffalo/events v1.1.9/go.mod h1:/0nf8lMtP5TkgNbzYxR6Bl4GzBy5s5TebgNTdRfRbPM=\ngithub.com/gobuffalo/events v1.2.0/go.mod h1:pxvpvsKXKZNPtHuIxUV3K+g+KP5o4forzaeFj++bh68=\ngithub.com/gobuffalo/events v1.3.1/go.mod h1:9JOkQVoyRtailYVE/JJ2ZQ/6i4gTjM5t2HsZK4C1cSA=\ngithub.com/gobuffalo/fizz v1.0.12/go.mod h1:C0sltPxpYK8Ftvf64kbsQa2yiCZY4RZviurNxXdAKwc=\ngithub.com/gobuffalo/fizz v1.0.15/go.mod h1:EI3mEpjImuji6Bwu++N2uXhljQwOhwtimZQJ89zwyF4=\ngithub.com/gobuffalo/fizz v1.0.16/go.mod h1:EI3mEpjImuji6Bwu++N2uXhljQwOhwtimZQJ89zwyF4=\ngithub.com/gobuffalo/fizz v1.1.2/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc=\ngithub.com/gobuffalo/fizz v1.1.3/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc=\ngithub.com/gobuffalo/fizz v1.3.0/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc=\ngithub.com/gobuffalo/fizz v1.5.0/go.mod h1:Uu3ch14M4S7LDU7LAP1GQ+KNCRmZYd05Gqasc96XLa0=\ngithub.com/gobuffalo/fizz v1.6.0/go.mod h1:V4V6EA8eYu/L43y6gZj7mjmPkigl9m+Eu3Pe+SWQRRg=\ngithub.com/gobuffalo/fizz v1.6.1/go.mod h1:V4V6EA8eYu/L43y6gZj7mjmPkigl9m+Eu3Pe+SWQRRg=\ngithub.com/gobuffalo/fizz v1.8.0/go.mod h1:2LqJOOGUp1JpN9m54ac5jMQ1MpbNvSVbFi9BY+AEXOo=\ngithub.com/gobuffalo/fizz v1.9.0/go.mod h1:2LqJOOGUp1JpN9m54ac5jMQ1MpbNvSVbFi9BY+AEXOo=\ngithub.com/gobuffalo/flect v0.0.0-20180907193754-dc14d8acaf9f/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181002182613-4571df4b1daf/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181007231023-ae7ed6bfe683/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181018182602-fd24a256709f/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181019110701-3d6f0b585514/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181024204909-8f6be1a8c6c2/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181104133451-1f6e9779237a/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181108195648-8fe1b44cfe32/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181109221320-179d36177b5b/go.mod h1:0HvNbHdfh+WOvDSIASqJOSxTOWSxCCUF++k/Y53v9rI=\ngithub.com/gobuffalo/flect v0.0.0-20181114183036-47375f6d8328/go.mod h1:0HvNbHdfh+WOvDSIASqJOSxTOWSxCCUF++k/Y53v9rI=\ngithub.com/gobuffalo/flect v0.0.0-20181210151238-24a2b68e0316/go.mod h1:en58vff74S9b99Eg42Dr+/9yPu437QjlNsO/hBYPuOk=\ngithub.com/gobuffalo/flect v0.0.0-20190104192022-4af577e09bf2/go.mod h1:en58vff74S9b99Eg42Dr+/9yPu437QjlNsO/hBYPuOk=\ngithub.com/gobuffalo/flect v0.0.0-20190117212819-a62e61d96794/go.mod h1:397QT6v05LkZkn07oJXXT6y9FCfwC8Pug0WA2/2mE9k=\ngithub.com/gobuffalo/flect v0.0.0-20190205211104-b2cb381e56e0/go.mod h1:397QT6v05LkZkn07oJXXT6y9FCfwC8Pug0WA2/2mE9k=\ngithub.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs=\ngithub.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI=\ngithub.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI=\ngithub.com/gobuffalo/flect v0.1.5/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80=\ngithub.com/gobuffalo/genny v0.0.0-20180924032338-7af3a40f2252/go.mod h1:tUTQOogrr7tAQnhajMSH6rv1BVev34H2sa1xNHMy94g=\ngithub.com/gobuffalo/genny v0.0.0-20181003150629-3786a0744c5d/go.mod h1:WAd8HmjMVrnkAZbmfgH5dLBUchsZfqzp/WS5sQz+uTM=\ngithub.com/gobuffalo/genny v0.0.0-20181005145118-318a41a134cc/go.mod h1:WAd8HmjMVrnkAZbmfgH5dLBUchsZfqzp/WS5sQz+uTM=\ngithub.com/gobuffalo/genny v0.0.0-20181007153042-b8de7d566757/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA=\ngithub.com/gobuffalo/genny v0.0.0-20181012161047-33e5f43d83a6/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA=\ngithub.com/gobuffalo/genny v0.0.0-20181017160347-90a774534246/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA=\ngithub.com/gobuffalo/genny v0.0.0-20181019144442-df0a36fdd146/go.mod h1:IyRrGrQb/sbHu/0z9i5mbpZroIsdxjCYfj+zFiFiWZQ=\ngithub.com/gobuffalo/genny v0.0.0-20181024195656-51392254bf53/go.mod h1:o9GEH5gn5sCKLVB5rHFC4tq40rQ3VRUzmx6WwmaqISE=\ngithub.com/gobuffalo/genny v0.0.0-20181025145300-af3f81d526b8/go.mod h1:uZ1fFYvdcP8mu0B/Ynarf6dsGvp7QFIpk/QACUuFUVI=\ngithub.com/gobuffalo/genny v0.0.0-20181027191429-94d6cfb5c7fc/go.mod h1:x7SkrQQBx204Y+O9EwRXeszLJDTaWN0GnEasxgLrQTA=\ngithub.com/gobuffalo/genny v0.0.0-20181027195209-3887b7171c4f/go.mod h1:JbKx8HSWICu5zyqWOa0dVV1pbbXOHusrSzQUprW6g+w=\ngithub.com/gobuffalo/genny v0.0.0-20181030163439-ed103521b8ec/go.mod h1:3Xm9z7/2oRxlB7PSPLxvadZ60/0UIek1YWmcC7QSaVs=\ngithub.com/gobuffalo/genny v0.0.0-20181106193839-7dcb0924caf1/go.mod h1:x61yHxvbDCgQ/7cOAbJCacZQuHgB0KMSzoYcw5debjU=\ngithub.com/gobuffalo/genny v0.0.0-20181107223128-f18346459dbe/go.mod h1:utQD3aKKEsdb03oR+Vi/6ztQb1j7pO10N3OBoowRcSU=\ngithub.com/gobuffalo/genny v0.0.0-20181109163038-9539921b620f/go.mod h1:118bnhJR2oviiji++mZj0IH/IaFBCzwkWHaI4OQq5hQ=\ngithub.com/gobuffalo/genny v0.0.0-20181110202416-7b7d8756a9e2/go.mod h1:118bnhJR2oviiji++mZj0IH/IaFBCzwkWHaI4OQq5hQ=\ngithub.com/gobuffalo/genny v0.0.0-20181111200257-599b33630ab4/go.mod h1:w+iD/cdtIpPDFax6LlUFuCdXFD0DLRUXsfp3IeT/Doc=\ngithub.com/gobuffalo/genny v0.0.0-20181114215459-0a4decd77f5d/go.mod h1:kN2KZ8VgXF9VIIOj/GM0Eo7YK+un4Q3tTreKOf0q1ng=\ngithub.com/gobuffalo/genny v0.0.0-20181119162812-e8ff4adce8bb/go.mod h1:BA9htSe4bZwBDJLe8CUkoqkypq3hn3+CkoHqVOW718E=\ngithub.com/gobuffalo/genny v0.0.0-20181127225641-2d959acc795b/go.mod h1:l54xLXNkteX/PdZ+HlgPk1qtcrgeOr3XUBBPDbH+7CQ=\ngithub.com/gobuffalo/genny v0.0.0-20181128191930-77e34f71ba2a/go.mod h1:FW/D9p7cEEOqxYA71/hnrkOWm62JZ5ZNxcNIVJEaWBU=\ngithub.com/gobuffalo/genny v0.0.0-20181203165245-fda8bcce96b1/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM=\ngithub.com/gobuffalo/genny v0.0.0-20181203201232-849d2c9534ea/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM=\ngithub.com/gobuffalo/genny v0.0.0-20181206121324-d6fb8a0dbe36/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM=\ngithub.com/gobuffalo/genny v0.0.0-20181207164119-84844398a37d/go.mod h1:y0ysCHGGQf2T3vOhCrGHheYN54Y/REj0ayd0Suf4C/8=\ngithub.com/gobuffalo/genny v0.0.0-20181211165820-e26c8466f14d/go.mod h1:sHnK+ZSU4e2feXP3PA29ouij6PUEiN+RCwECjCTB3yM=\ngithub.com/gobuffalo/genny v0.0.0-20190104222617-a71664fc38e7/go.mod h1:QPsQ1FnhEsiU8f+O0qKWXz2RE4TiDqLVChWkBuh1WaY=\ngithub.com/gobuffalo/genny v0.0.0-20190112155932-f31a84fcacf5/go.mod h1:CIaHCrSIuJ4il6ka3Hub4DR4adDrGoXGEEt2FbBxoIo=\ngithub.com/gobuffalo/genny v0.0.0-20190124191459-3310289fa4b4/go.mod h1:yIRqxhZV2sAzb+B3iPUMLauTRrYP8tJUlZ1zV9teKik=\ngithub.com/gobuffalo/genny v0.0.0-20190131150032-1045e97d19fb/go.mod h1:yIRqxhZV2sAzb+B3iPUMLauTRrYP8tJUlZ1zV9teKik=\ngithub.com/gobuffalo/genny v0.0.0-20190131190646-008a76242145/go.mod h1:NJvPZJxb9M4z790P6N2SMZKSUYpASpEvLuUWnHGKzb4=\ngithub.com/gobuffalo/genny v0.0.0-20190219203444-c95082806342/go.mod h1:3BLT+Vs94EEz3fKR8WWOkYpL6c1tdJcZUNCe3LZAnvQ=\ngithub.com/gobuffalo/genny v0.0.0-20190315121735-8b38fb089e88/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk=\ngithub.com/gobuffalo/genny v0.0.0-20190315124720-e16e52a93c79/go.mod h1:nKeefjbhYowo36ys9nG9VUvD9FRIS0p3BC2JFfcOucM=\ngithub.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk=\ngithub.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28=\ngithub.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo=\ngithub.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk=\ngithub.com/gobuffalo/genny v0.2.0/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk=\ngithub.com/gobuffalo/gitgen v0.0.0-20190219185555-91c2c5f0aad5/go.mod h1:ZzGIrxBvCJEluaU4i3CN0GFlu1Qmb3yK8ziV02evJ1E=\ngithub.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw=\ngithub.com/gobuffalo/github_flavored_markdown v1.0.4/go.mod h1:uRowCdK+q8d/RF0Kt3/DSalaIXbb0De/dmTqMQdkQ4I=\ngithub.com/gobuffalo/github_flavored_markdown v1.0.5/go.mod h1:U0643QShPF+OF2tJvYNiYDLDGDuQmJZXsf/bHOJPsMY=\ngithub.com/gobuffalo/github_flavored_markdown v1.0.7/go.mod h1:w93Pd9Lz6LvyQXEG6DktTPHkOtCbr+arAD5mkwMzXLI=\ngithub.com/gobuffalo/gogen v0.0.0-20190219194924-d32a17ad9761/go.mod h1:v47C8sid+ZM2qK+YpQ2MGJKssKAqyTsH1wl/pTCPdz8=\ngithub.com/gobuffalo/gogen v0.0.0-20190224213239-1c6076128bbc/go.mod h1:tQqPADZKflmJCR4FHRHYNPP79cXPICyxUiUHyhuXtqg=\ngithub.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360=\ngithub.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg=\ngithub.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE=\ngithub.com/gobuffalo/gogen v0.2.0/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360=\ngithub.com/gobuffalo/helpers v0.0.0-20190422082217-384f90c6579f/go.mod h1:g0I3qKQEyJxwnHtEmLugD75eoOiWxEtibcV62tYah9w=\ngithub.com/gobuffalo/helpers v0.0.0-20190506214229-8e6f634af7c3/go.mod h1:HlNpmw2+Rjx882VUf6hJfNJs5wpNRzX02KcqCXDlLGc=\ngithub.com/gobuffalo/helpers v0.2.1/go.mod h1:5UhA1EfGvyPZfzo9PqhKkSgmLolaTpnWYDbqCJcmiAE=\ngithub.com/gobuffalo/helpers v0.2.2/go.mod h1:xYbzUdCUpVzLwLnqV8HIjT6hmG0Cs7YIBCJkNM597jw=\ngithub.com/gobuffalo/httptest v1.0.2/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.3/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.4/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.5/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.6/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.1.0/go.mod h1:BIfCgiqCOotRc5xYwCcZN7IFYag4277Ynqjar/Ra3iI=\ngithub.com/gobuffalo/httptest v1.2.0/go.mod h1:0KfourZCsapuvkljDMSr7YM+66kCt/rXv54YcWRWwhc=\ngithub.com/gobuffalo/httptest v1.3.0/go.mod h1:Y4qebOsMH91XdB0cZuS8OUdAKHGV7hVDcjgzGupoYlk=\ngithub.com/gobuffalo/licenser v0.0.0-20180924033006-eae28e638a42/go.mod h1:Ubo90Np8gpsSZqNScZZkVXXAo5DGhTb+WYFIjlnog8w=\ngithub.com/gobuffalo/licenser v0.0.0-20181025145548-437d89de4f75/go.mod h1:x3lEpYxkRG/XtGCUNkio+6RZ/dlOvLzTI9M1auIwFcw=\ngithub.com/gobuffalo/licenser v0.0.0-20181027200154-58051a75da95/go.mod h1:BzhaaxGd1tq1+OLKObzgdCV9kqVhbTulxOpYbvMQWS0=\ngithub.com/gobuffalo/licenser v0.0.0-20181109171355-91a2a7aac9a7/go.mod h1:m+Ygox92pi9bdg+gVaycvqE8RVSjZp7mWw75+K5NPHk=\ngithub.com/gobuffalo/licenser v0.0.0-20181116224424-1b7fd3f9cbb4/go.mod h1:icHYfF2FVDi6CpI8BK9Sy1ChkSijz/0GNN7Qzzdk6JE=\ngithub.com/gobuffalo/licenser v0.0.0-20181128165715-cc7305f8abed/go.mod h1:oU9F9UCE+AzI/MueCKZamsezGOOHfSirltllOVeRTAE=\ngithub.com/gobuffalo/licenser v0.0.0-20181128170751-82cc989582b9/go.mod h1:oU9F9UCE+AzI/MueCKZamsezGOOHfSirltllOVeRTAE=\ngithub.com/gobuffalo/licenser v0.0.0-20181203160806-fe900bbede07/go.mod h1:ph6VDNvOzt1CdfaWC+9XwcBnlSTBz2j49PBwum6RFaU=\ngithub.com/gobuffalo/licenser v0.0.0-20181211173111-f8a311c51159/go.mod h1:ve/Ue99DRuvnTaLq2zKa6F4KtHiYf7W046tDjuGYPfM=\ngithub.com/gobuffalo/licenser v0.0.0-20190224205124-37799bc2ebf6/go.mod h1:ve/Ue99DRuvnTaLq2zKa6F4KtHiYf7W046tDjuGYPfM=\ngithub.com/gobuffalo/licenser v0.0.0-20190329153211-c35c0a2813b2/go.mod h1:ZVWE6uKUE3rGf7sedUHWVjNWrEgxaUQLVFL+pQiWpfY=\ngithub.com/gobuffalo/licenser v1.1.0/go.mod h1:ZVWE6uKUE3rGf7sedUHWVjNWrEgxaUQLVFL+pQiWpfY=\ngithub.com/gobuffalo/logger v0.0.0-20181022175615-46cfb361fc27/go.mod h1:8sQkgyhWipz1mIctHF4jTxmJh1Vxhp7mP8IqbljgJZo=\ngithub.com/gobuffalo/logger v0.0.0-20181027144941-73d08d2bb969/go.mod h1:7uGg2duHKpWnN4+YmyKBdLXfhopkAdVM6H3nKbyFbz8=\ngithub.com/gobuffalo/logger v0.0.0-20181027193913-9cf4dd0efe46/go.mod h1:7uGg2duHKpWnN4+YmyKBdLXfhopkAdVM6H3nKbyFbz8=\ngithub.com/gobuffalo/logger v0.0.0-20181109185836-3feeab578c17/go.mod h1:oNErH0xLe+utO+OW8ptXMSA5DkiSEDW1u3zGIt8F9Ew=\ngithub.com/gobuffalo/logger v0.0.0-20181117211126-8e9b89b7c264/go.mod h1:5etB91IE0uBlw9k756fVKZJdS+7M7ejVhmpXXiSFj0I=\ngithub.com/gobuffalo/logger v0.0.0-20181127160119-5b956e21995c/go.mod h1:+HxKANrR9VGw9yN3aOAppJKvhO05ctDi63w4mDnKv2U=\ngithub.com/gobuffalo/logger v0.0.0-20190224201004-be78ebfea0fa/go.mod h1:+HxKANrR9VGw9yN3aOAppJKvhO05ctDi63w4mDnKv2U=\ngithub.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8=\ngithub.com/gobuffalo/makr v1.1.5/go.mod h1:Y+o0btAH1kYAMDJW/TX3+oAXEu0bmSLLoC9mIFxtzOw=\ngithub.com/gobuffalo/mapi v1.0.0/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc=\ngithub.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc=\ngithub.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc=\ngithub.com/gobuffalo/mapi v1.1.0/go.mod h1:pqQ1XAqvpy/JYtRwoieNps2yU8MFiMxBUpAm2FBtQ50=\ngithub.com/gobuffalo/meta v0.0.0-20181018155829-df62557efcd3/go.mod h1:XTTOhwMNryif3x9LkTTBO/Llrveezd71u3quLd0u7CM=\ngithub.com/gobuffalo/meta v0.0.0-20181018192820-8c6cef77dab3/go.mod h1:E94EPzx9NERGCY69UWlcj6Hipf2uK/vnfrF4QD0plVE=\ngithub.com/gobuffalo/meta v0.0.0-20181025145500-3a985a084b0a/go.mod h1:YDAKBud2FP7NZdruCSlmTmDOZbVSa6bpK7LJ/A/nlKg=\ngithub.com/gobuffalo/meta v0.0.0-20181109154556-f76929ccd5fa/go.mod h1:1rYI5QsanV6cLpT1BlTAkrFi9rtCZrGkvSK8PglwfS8=\ngithub.com/gobuffalo/meta v0.0.0-20181114191255-b130ebedd2f7/go.mod h1:K6cRZ29ozr4Btvsqkjvg5nDFTLOgTqf03KA70Ks0ypE=\ngithub.com/gobuffalo/meta v0.0.0-20181116202903-8850e47774f5/go.mod h1:K6cRZ29ozr4Btvsqkjvg5nDFTLOgTqf03KA70Ks0ypE=\ngithub.com/gobuffalo/meta v0.0.0-20181127070345-0d7e59dd540b/go.mod h1:RLO7tMvE0IAKAM8wny1aN12pvEKn7EtkBLkUZR00Qf8=\ngithub.com/gobuffalo/meta v0.0.0-20190120163247-50bbb1fa260d/go.mod h1:KKsH44nIK2gA8p0PJmRT9GvWJUdphkDUA8AJEvFWiqM=\ngithub.com/gobuffalo/meta v0.0.0-20190121163014-ecaa953cbfb3/go.mod h1:KLfkGnS+Tucc+iTkUcAUBtxpwOJGfhw2pHRLddPxMQY=\ngithub.com/gobuffalo/meta v0.0.0-20190126124307-c8fb6f4eb5a9/go.mod h1:zoh6GLgkk9+iI/62dST4amAuVAczZrBXoAk/t64n7Ew=\ngithub.com/gobuffalo/meta v0.0.0-20190207205153-50a99e08b8cf/go.mod h1:+VGfK9Jm9I7oJyFeJzIT6omCPvrDktzAtpHJKaieugY=\ngithub.com/gobuffalo/meta v0.0.0-20190320152240-a5320142224a/go.mod h1:+VGfK9Jm9I7oJyFeJzIT6omCPvrDktzAtpHJKaieugY=\ngithub.com/gobuffalo/meta v0.0.0-20190329152330-e161e8a93e3b/go.mod h1:mCRSy5F47tjK8yaIDcJad4oe9fXxY5gLrx3Xx2spK+0=\ngithub.com/gobuffalo/mw-basicauth v1.0.3/go.mod h1:dg7+ilMZOKnQFHDefUzUHufNyTswVUviCBgF244C1+0=\ngithub.com/gobuffalo/mw-basicauth v1.0.6/go.mod h1:RFyeGeDLZlVgp/eBflqu2eavFqyv0j0fVVP87WPYFwY=\ngithub.com/gobuffalo/mw-basicauth v1.0.7/go.mod h1:xJ9/OSiOWl+kZkjaSun62srODr3Cx8OB4AKr+G4FlS4=\ngithub.com/gobuffalo/mw-contenttype v0.0.0-20180802152300-74f5a47f4d56/go.mod h1:7EvcmzBbeCvFtQm5GqF9ys6QnCxz2UM1x0moiWLq1No=\ngithub.com/gobuffalo/mw-contenttype v0.0.0-20190129203934-2554e742333b/go.mod h1:7x87+mDrr9Peh7AqhOtESyJLanMd2zQNz2Hts+vtBoE=\ngithub.com/gobuffalo/mw-csrf v0.0.0-20180802151833-446ff26e108b/go.mod h1:sbGtb8DmDZuDUQoxjr8hG1ZbLtZboD9xsn6p77ppcHo=\ngithub.com/gobuffalo/mw-csrf v0.0.0-20190129204204-25460a055517/go.mod h1:o5u+nnN0Oa7LBeDYH9QP36qeMPnXV9qbVnbZ4D+Kb0Q=\ngithub.com/gobuffalo/mw-forcessl v0.0.0-20180802152810-73921ae7a130/go.mod h1:JvNHRj7bYNAMUr/5XMkZaDcw3jZhUZpsmzhd//FFWmQ=\ngithub.com/gobuffalo/mw-i18n v0.0.0-20180802152014-e3060b7e13d6/go.mod h1:91AQfukc52A6hdfIfkxzyr+kpVYDodgAeT5cjX1UIj4=\ngithub.com/gobuffalo/mw-i18n v0.0.0-20181027200759-09e0c99be4d3/go.mod h1:1PpGPgqP8VsfUppgBA9FrTOXjI6X9gjqhh/8dmg48lg=\ngithub.com/gobuffalo/mw-i18n v0.0.0-20190129204410-552713a3ebb4/go.mod h1:rBg2eHxsyxVjtYra6fGy4GSF5C8NysOvz+Znnzk42EM=\ngithub.com/gobuffalo/mw-paramlogger v0.0.0-20181005191442-d6ee392ec72e/go.mod h1:6OJr6VwSzgJMqWMj7TYmRUqzNe2LXu/W1rRW4MAz/ME=\ngithub.com/gobuffalo/mw-paramlogger v0.0.0-20190129202837-395da1998525/go.mod h1:gEo/ABCsKqvpp/KCxN2AIzDEe0OJUXbJ9293FYrXw+w=\ngithub.com/gobuffalo/mw-tokenauth v0.0.0-20181001105134-8545f626c189/go.mod h1:UqBF00IfKvd39ni5+yI5MLMjAf4gX7cDKN/26zDOD6c=\ngithub.com/gobuffalo/mw-tokenauth v0.0.0-20190129201951-95847f29c5c8/go.mod h1:n2oa93LHGD94hGI+PoJO+6cf60DNrXrAIv9L/Ke3GXc=\ngithub.com/gobuffalo/nulls v0.0.0-20190305142546-85f3c9250d87/go.mod h1:KhaLCW+kFA/G97tZkmVkIxhRw3gvZszJn7JjPLI3gtI=\ngithub.com/gobuffalo/packd v0.0.0-20181027182251-01ad393492c8/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc=\ngithub.com/gobuffalo/packd v0.0.0-20181027190505-aafc0d02c411/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc=\ngithub.com/gobuffalo/packd v0.0.0-20181027194105-7ae579e6d213/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc=\ngithub.com/gobuffalo/packd v0.0.0-20181028162033-6d52e0eabf41/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181029140631-cf76bd87a5a6/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181031195726-c82734870264/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181103221656-16c4ed88b296/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181104210303-d376b15f8e96/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181111195323-b2e760a5f0ff/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181114190715-f25c5d2471d7/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181124090624-311c6248e5fb/go.mod h1:Foenia9ZvITEvG05ab6XpiD5EfBHPL8A6hush8SJ0o8=\ngithub.com/gobuffalo/packd v0.0.0-20181207120301-c49825f8f6f4/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA=\ngithub.com/gobuffalo/packd v0.0.0-20181212173646-eca3b8fd6687/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA=\ngithub.com/gobuffalo/packd v0.0.0-20190224160250-d04dd98aca5b/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA=\ngithub.com/gobuffalo/packd v0.0.0-20190315122247-83d601d65093/go.mod h1:LpEu7OkoplvlhztyAEePkS6JwcGgANdgGL5pB4Knxaw=\ngithub.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4=\ngithub.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4=\ngithub.com/gobuffalo/packd v0.2.0/go.mod h1:k2CkHP3bjbqL2GwxwhxUy1DgnlbW644hkLC9iIUvZwY=\ngithub.com/gobuffalo/packr v1.13.7/go.mod h1:KkinLIn/n6+3tVXMwg6KkNvWwVsrRAz4ph+jgpk3Z24=\ngithub.com/gobuffalo/packr v1.15.0/go.mod h1:t5gXzEhIviQwVlNx/+3SfS07GS+cZ2hn76WLzPp6MGI=\ngithub.com/gobuffalo/packr v1.15.1/go.mod h1:IeqicJ7jm8182yrVmNbM6PR4g79SjN9tZLH8KduZZwE=\ngithub.com/gobuffalo/packr v1.16.0/go.mod h1:Yx/lcR/7mDLXhuJSzsz2MauD/HUwSc+EK6oigMRGGsM=\ngithub.com/gobuffalo/packr v1.19.0/go.mod h1:MstrNkfCQhd5o+Ct4IJ0skWlxN8emOq8DsoT1G98VIU=\ngithub.com/gobuffalo/packr v1.20.0/go.mod h1:JDytk1t2gP+my1ig7iI4NcVaXr886+N0ecUga6884zw=\ngithub.com/gobuffalo/packr v1.21.0/go.mod h1:H00jGfj1qFKxscFJSw8wcL4hpQtPe1PfU2wa6sg/SR0=\ngithub.com/gobuffalo/packr v1.21.5/go.mod h1:zCvDxrZzFmq5Xd7Jw4vaGe/OYwzuXnma31D2EbTHMWk=\ngithub.com/gobuffalo/packr v1.21.7/go.mod h1:73tmYjwi4Cvb1eNiAwpmrzZ0gxVA4KBqVSZ2FNeJodM=\ngithub.com/gobuffalo/packr v1.21.9/go.mod h1:GC76q6nMzRtR+AEN/VV4w0z2/4q7SOaEmXh3Ooa8sOE=\ngithub.com/gobuffalo/packr v1.22.0/go.mod h1:Qr3Wtxr3+HuQEwWqlLnNW4t1oTvK+7Gc/Rnoi/lDFvA=\ngithub.com/gobuffalo/packr v1.24.0/go.mod h1:p9Sgang00I1hlr1ub+tgI9AQdFd4f+WH1h62jYpzetM=\ngithub.com/gobuffalo/packr v1.24.1/go.mod h1:absPnW/XUUa4DmIh5ga7AipGXXg0DOcd5YWKk5RZs8Y=\ngithub.com/gobuffalo/packr v1.25.0/go.mod h1:NqsGg8CSB2ZD+6RBIRs18G7aZqdYDlYNNvsSqP6T4/U=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.5/go.mod h1:e6gmOfhf3KmT4zl2X/NDRSfBXk2oV4TXZ+NNOM0xwt8=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.7/go.mod h1:BzhceHWfF3DMAkbPUONHYWs63uacCZxygFY1b4H9N2A=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.8/go.mod h1:y60QCdzwuMwO2R49fdQhsjCPv7tLQFR0ayzxxla9zes=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.9/go.mod h1:fQqADRfZpEsgkc7c/K7aMew3n4aF1Kji7+lIZeR98Fc=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.10/go.mod h1:4CWWn4I5T3v4c1OsJ55HbHlUEKNWMITG5iIkdr4Px4w=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.11/go.mod h1:JoieH/3h3U4UmatmV93QmqyPUdf4wVM9HELaHEu+3fk=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.12/go.mod h1:FV1zZTsVFi1DSCboO36Xgs4pzCZBjB/tDV9Cz/lSaR8=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.13/go.mod h1:2Mp7GhBFMdJlOK8vGfl7SYtfMP3+5roE39ejlfjw0rA=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.14/go.mod h1:06otbrNvDKO1eNQ3b8hst+1010UooI2MFg+B2Ze4MV8=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.15/go.mod h1:IMe7H2nJvcKXSF90y4X1rjYIRlNMJYCxEhssBXNZwWs=\ngithub.com/gobuffalo/packr/v2 v2.0.0/go.mod h1:7McfLpSxaPUoSQm7gYpTZRQSK63mX8EKzzYSEFKvfkM=\ngithub.com/gobuffalo/packr/v2 v2.0.1/go.mod h1:tp5/5A2e67F1lUGTiNadtA2ToP045+mvkWzaqMCsZr4=\ngithub.com/gobuffalo/packr/v2 v2.0.2/go.mod h1:6Y+2NY9cHDlrz96xkJG8bfPwLlCdJVS/irhNJmwD7kM=\ngithub.com/gobuffalo/packr/v2 v2.0.6/go.mod h1:/TYKOjadT7P9jRWZtj4BRTgeXy2tIYntifGkD+aM2KY=\ngithub.com/gobuffalo/packr/v2 v2.0.7/go.mod h1:1SBFAIr3YnxYdJRyrceR7zhOrhV/YhHzOjDwA9LLZ5Y=\ngithub.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ=\ngithub.com/gobuffalo/packr/v2 v2.0.10/go.mod h1:n90ZuXIc2KN2vFAOQascnPItp9A2g9QYSvYvS3AjQEM=\ngithub.com/gobuffalo/packr/v2 v2.1.0/go.mod h1:n90ZuXIc2KN2vFAOQascnPItp9A2g9QYSvYvS3AjQEM=\ngithub.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0=\ngithub.com/gobuffalo/packr/v2 v2.3.2/go.mod h1:93elRVdDhpUgox9GnXswWK5dzpVBQsnlQjnnncSLoiU=\ngithub.com/gobuffalo/packr/v2 v2.4.0/go.mod h1:ra341gygw9/61nSjAbfwcwh8IrYL4WmR4IsPkPBhQiY=\ngithub.com/gobuffalo/plush v3.7.16+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.20+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.21+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.22+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.23+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.30+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.31+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.32+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.33+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.34+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.8.0+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.8.2+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plushgen v0.0.0-20181128164830-d29dcb966cb2/go.mod h1:r9QwptTFnuvSaSRjpSp4S2/4e2D3tJhARYbvEBcKSb4=\ngithub.com/gobuffalo/plushgen v0.0.0-20181203163832-9fc4964505c2/go.mod h1:opEdT33AA2HdrIwK1aibqnTJDVVKXC02Bar/GT1YRVs=\ngithub.com/gobuffalo/plushgen v0.0.0-20181207152837-eedb135bd51b/go.mod h1:Lcw7HQbEVm09sAQrCLzIxuhFbB3nAgp4c55E+UlynR0=\ngithub.com/gobuffalo/plushgen v0.0.0-20190104222512-177cd2b872b3/go.mod h1:tYxCozi8X62bpZyKXYHw1ncx2ZtT2nFvG42kuLwYjoc=\ngithub.com/gobuffalo/plushgen v0.0.0-20190224160205-347ea233336e/go.mod h1:tYxCozi8X62bpZyKXYHw1ncx2ZtT2nFvG42kuLwYjoc=\ngithub.com/gobuffalo/plushgen v0.0.0-20190329152458-0555238fe0d9/go.mod h1:3U71v6HWZpVER1nInTXeAwdoRNsRd4W8aeIa1Lyp+Bk=\ngithub.com/gobuffalo/plushgen v0.1.0/go.mod h1:NK33QLkRK/xKexiPFSxlWRT286F4yStZUa/Fbx0guvo=\ngithub.com/gobuffalo/plushgen v0.1.2/go.mod h1:3U71v6HWZpVER1nInTXeAwdoRNsRd4W8aeIa1Lyp+Bk=\ngithub.com/gobuffalo/pop v4.8.2+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.3+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.4+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.5+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.7+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.8+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.1+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.2+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.3+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.5+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.6+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.8+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.9+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.10.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.11.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.11.1+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/release v1.0.35/go.mod h1:VtHFAKs61vO3wboCec5xr9JPTjYyWYcvaM3lclkc4x4=\ngithub.com/gobuffalo/release v1.0.38/go.mod h1:VtHFAKs61vO3wboCec5xr9JPTjYyWYcvaM3lclkc4x4=\ngithub.com/gobuffalo/release v1.0.42/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug=\ngithub.com/gobuffalo/release v1.0.51/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug=\ngithub.com/gobuffalo/release v1.0.52/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug=\ngithub.com/gobuffalo/release v1.0.53/go.mod h1:FdF257nd8rqhNaqtDWFGhxdJ/Ig4J7VcS3KL7n/a+aA=\ngithub.com/gobuffalo/release v1.0.54/go.mod h1:Pe5/RxRa/BE8whDpGfRqSI7D1a0evGK1T4JDm339tJc=\ngithub.com/gobuffalo/release v1.0.61/go.mod h1:mfIO38ujUNVDlBziIYqXquYfBF+8FDHUjKZgYC1Hj24=\ngithub.com/gobuffalo/release v1.0.63/go.mod h1:/7hQAikt0l8Iu/tAX7slC1qiOhD6Nb+3KMmn/htiUfc=\ngithub.com/gobuffalo/release v1.0.72/go.mod h1:NP5NXgg/IX3M5XmHmWR99D687/3Dt9qZtTK/Lbwc1hU=\ngithub.com/gobuffalo/release v1.0.74/go.mod h1:NP5NXgg/IX3M5XmHmWR99D687/3Dt9qZtTK/Lbwc1hU=\ngithub.com/gobuffalo/release v1.1.1/go.mod h1:Sluak1Xd6kcp6snkluR1jeXAogdJZpFFRzTYRs/2uwg=\ngithub.com/gobuffalo/release v1.1.3/go.mod h1:CuXc5/m+4zuq8idoDt1l4va0AXAn/OSs08uHOfMVr8E=\ngithub.com/gobuffalo/release v1.1.6/go.mod h1:18naWa3kBsqO0cItXZNJuefCKOENpbbUIqRL1g+p6z0=\ngithub.com/gobuffalo/release v1.2.2/go.mod h1:tkFFZua2N5WRxyGDk2cSwQjzkZ/apKKXl5T8P+kEO+E=\ngithub.com/gobuffalo/release v1.2.5/go.mod h1:tkFFZua2N5WRxyGDk2cSwQjzkZ/apKKXl5T8P+kEO+E=\ngithub.com/gobuffalo/release v1.4.0/go.mod h1:f4uUPnD9dxrWxVy9yy0k/mvDf3EzhFtf7/byl0tTdY4=\ngithub.com/gobuffalo/release v1.7.0/go.mod h1:xH2NjAueVSY89XgC4qx24ojEQ4zQ9XCGVs5eXwJTkEs=\ngithub.com/gobuffalo/shoulders v1.0.1/go.mod h1:V33CcVmaQ4gRUmHKwq1fiTXuf8Gp/qjQBUL5tHPmvbA=\ngithub.com/gobuffalo/shoulders v1.0.3/go.mod h1:LqMcHhKRuBPMAYElqOe3POHiZ1x7Ry0BE8ZZ84Bx+k4=\ngithub.com/gobuffalo/shoulders v1.0.4/go.mod h1:LqMcHhKRuBPMAYElqOe3POHiZ1x7Ry0BE8ZZ84Bx+k4=\ngithub.com/gobuffalo/shoulders v1.1.0/go.mod h1:kcIJs3p7VqoBJ36Mzs+x767NyzTx0pxBvzZdWTWZYF8=\ngithub.com/gobuffalo/syncx v0.0.0-20181120191700-98333ab04150/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=\ngithub.com/gobuffalo/syncx v0.0.0-20181120194010-558ac7de985f/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=\ngithub.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=\ngithub.com/gobuffalo/tags v2.0.11+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.0.14+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.0.15+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.0.16+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.1.0+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/uuid v2.0.3+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE=\ngithub.com/gobuffalo/uuid v2.0.4+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE=\ngithub.com/gobuffalo/uuid v2.0.5+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE=\ngithub.com/gobuffalo/validate v2.0.3+incompatible/go.mod h1:N+EtDe0J8252BgfzQUChBgfd6L93m9weay53EWFVsMM=\ngithub.com/gobuffalo/x v0.0.0-20181003152136-452098b06085/go.mod h1:WevpGD+5YOreDJznWevcn8NTmQEW5STSBgIkpkjzqXc=\ngithub.com/gobuffalo/x v0.0.0-20181007152206-913e47c59ca7/go.mod h1:9rDPXaB3kXdKWzMc4odGQQdG2e2DIEmANy5aSJ9yesY=\ngithub.com/gobuffalo/x v0.0.0-20181025165825-f204f550da9d/go.mod h1:Qh2Pb/Ak1Ko2mzHlGPigrnxkhO4WTTCI1jJM58sbgtE=\ngithub.com/gobuffalo/x v0.0.0-20181025192250-1ef645d63fe8/go.mod h1:AIlnMGlYXOCsoCntLPFLYtrJNS/pc2HD4IdSXH62TpU=\ngithub.com/gobuffalo/x v0.0.0-20181109195216-5b3131238124/go.mod h1:GpdLUY6/Ztf/3FfxfwsLkDqAGZ0brhlh7LzIibHyZp0=\ngithub.com/gobuffalo/x v0.0.0-20181110221217-14085ca3e1a9/go.mod h1:ig5vdn4+5IPtxgESlZWo1SSDyHKKef8EjVVKhY9kkIQ=\ngithub.com/gobuffalo/x v0.0.0-20190224155809-6bb134105960/go.mod h1:ig5vdn4+5IPtxgESlZWo1SSDyHKKef8EjVVKhY9kkIQ=\ngithub.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=\ngithub.com/godbus/dbus v4.1.0+incompatible/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=\ngithub.com/gofrs/uuid v3.1.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=\ngithub.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=\ngithub.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=\ngithub.com/gogo/googleapis v1.3.0/go.mod h1:d+q1s/xVJxZGKWwC/6UfPIF33J+G1Tq4GYv9Y+Tg/EU=\ngithub.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=\ngithub.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=\ngithub.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=\ngithub.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=\ngithub.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=\ngithub.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=\ngithub.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=\ngithub.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=\ngithub.com/goji/param v0.0.0-20160927210335-d7f49fd7d1ed/go.mod h1:GZJblUu7ACjguvQUK2un6nQBlnZk7H1MzXZdfrFUd8Q=\ngithub.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=\ngithub.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=\ngithub.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=\ngithub.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=\ngithub.com/golang/lint v0.0.0-20181217174547-8f45f776aaf1/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=\ngithub.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=\ngithub.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=\ngithub.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=\ngithub.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=\ngithub.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=\ngithub.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=\ngithub.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=\ngithub.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=\ngithub.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=\ngithub.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=\ngithub.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=\ngithub.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=\ngithub.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=\ngithub.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=\ngithub.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc=\ngithub.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg=\ngithub.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks=\ngithub.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A=\ngithub.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw=\ngithub.com/google/btree v0.0.0-20160524151835-7d79101e329e/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=\ngithub.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=\ngithub.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=\ngithub.com/google/flatbuffers v1.10.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=\ngithub.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=\ngithub.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=\ngithub.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=\ngithub.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=\ngithub.com/google/go-querystring v0.0.0-20170111101155-53e6ce116135/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=\ngithub.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=\ngithub.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=\ngithub.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=\ngithub.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=\ngithub.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=\ngithub.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=\ngithub.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=\ngithub.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=\ngithub.com/google/uuid v0.0.0-20170306145142-6a5e28554805/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=\ngithub.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=\ngithub.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg=\ngithub.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=\ngithub.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=\ngithub.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=\ngithub.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=\ngithub.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU=\ngithub.com/gophercloud/gophercloud v0.0.0-20180828235145-f29afc2cceca/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4=\ngithub.com/gophercloud/gophercloud v0.0.0-20190126172459-c818fa66e4c8/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4=\ngithub.com/gophercloud/gophercloud v0.0.0-20190307220656-fe1ba5ce12dd/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=\ngithub.com/gophercloud/gophercloud v0.6.0/go.mod h1:GICNByuaEBibcjmjvI7QvYJSZEbGkcYwAR7EZK2WMqM=\ngithub.com/gopherjs/gopherjs v0.0.0-20180825215210-0210a2f0f73c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=\ngithub.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=\ngithub.com/goreleaser/goreleaser v0.94.0/go.mod h1:OjbYR2NhOI6AEUWCowMSBzo9nP1aRif3sYtx+rhp+Zo=\ngithub.com/goreleaser/nfpm v0.9.7/go.mod h1:F2yzin6cBAL9gb+mSiReuXdsfTrOQwDMsuSpULof+y4=\ngithub.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=\ngithub.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/mux v1.7.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1/go.mod h1:YeAe0gNeiNT5hoiZRI4yiOky6jVdNvfO2N6Kav/HmxY=\ngithub.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=\ngithub.com/gorilla/sessions v1.1.2/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w=\ngithub.com/gorilla/sessions v1.1.3/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w=\ngithub.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=\ngithub.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=\ngithub.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=\ngithub.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=\ngithub.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=\ngithub.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=\ngithub.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=\ngithub.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=\ngithub.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=\ngithub.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw=\ngithub.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=\ngithub.com/grpc-ecosystem/grpc-gateway v1.9.2/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=\ngithub.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=\ngithub.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=\ngithub.com/hashicorp/consul v1.6.2/go.mod h1:kZmEKWDGa47nEdLEbvJyh14uTBpG37Wo6N39Vfpo7uE=\ngithub.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=\ngithub.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=\ngithub.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=\ngithub.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=\ngithub.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=\ngithub.com/hashicorp/go-bexpr v0.1.2/go.mod h1:ANbpTX1oAql27TZkKVeW8p1w8NTdnyzPe/0qqPCKohU=\ngithub.com/hashicorp/go-checkpoint v0.0.0-20171009173528-1545e56e46de/go.mod h1:xIwEieBHERyEvaeKF/TcHh1Hu+lxPM+n2vT1+g9I4m4=\ngithub.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg=\ngithub.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=\ngithub.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=\ngithub.com/hashicorp/go-discover v0.0.0-20190403160810-22221edb15cd/go.mod h1:ueUgD9BeIocT7QNuvxSyJyPAM9dfifBcaWmeybb67OY=\ngithub.com/hashicorp/go-discover v0.0.0-20190905142513-34a650575f6c/go.mod h1:FTV98wIi2RF5iDl1iLR/cB+no+B//ODP6133EcC9djw=\ngithub.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI=\ngithub.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=\ngithub.com/hashicorp/go-hclog v0.9.1/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=\ngithub.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=\ngithub.com/hashicorp/go-hclog v0.10.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=\ngithub.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=\ngithub.com/hashicorp/go-immutable-radix v1.1.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=\ngithub.com/hashicorp/go-memdb v0.0.0-20180223233045-1289e7fffe71/go.mod h1:kbfItVoBJwCfKXDXN4YoAXjxcFVZ7MRrJzyTX6H4giE=\ngithub.com/hashicorp/go-memdb v1.0.4/go.mod h1:LWQ8R70vPrS4OEY9k28D2z8/Zzyu34NVzeRibGAzHO0=\ngithub.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=\ngithub.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=\ngithub.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=\ngithub.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY=\ngithub.com/hashicorp/go-raftchunking v0.6.1/go.mod h1:cGlg3JtDy7qy6c/3Bu660Mic1JF+7lWqIwCFSb08fX0=\ngithub.com/hashicorp/go-raftchunking v0.6.2/go.mod h1:cGlg3JtDy7qy6c/3Bu660Mic1JF+7lWqIwCFSb08fX0=\ngithub.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=\ngithub.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=\ngithub.com/hashicorp/go-retryablehttp v0.6.3/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=\ngithub.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=\ngithub.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=\ngithub.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=\ngithub.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A=\ngithub.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=\ngithub.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=\ngithub.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=\ngithub.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=\ngithub.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=\ngithub.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=\ngithub.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=\ngithub.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=\ngithub.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=\ngithub.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=\ngithub.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=\ngithub.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=\ngithub.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=\ngithub.com/hashicorp/hil v0.0.0-20160711231837-1e86c6b523c5/go.mod h1:KHvg/R2/dPtaePb16oW4qIyzkMxXOL38xjRN64adsts=\ngithub.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE=\ngithub.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=\ngithub.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=\ngithub.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY=\ngithub.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=\ngithub.com/hashicorp/memberlist v0.1.5/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=\ngithub.com/hashicorp/net-rpc-msgpackrpc v0.0.0-20151116020338-a14192a58a69/go.mod h1:/z+jUGRBlwVpUZfjute9jWaF6/HuhjuFQuL1YXzVD1Q=\ngithub.com/hashicorp/raft v1.1.0/go.mod h1:4Ak7FSPnuvmb0GV6vgIAJ4vYT4bek9bb6Q+7HVbyzqM=\ngithub.com/hashicorp/raft v1.1.1/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8=\ngithub.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea/go.mod h1:pNv7Wc3ycL6F5oOWn+tPGo2gWD4a5X+yp/ntwdKLjRk=\ngithub.com/hashicorp/raft-boltdb v0.0.0-20191021154308-4207f1bf0617/go.mod h1:aUF6HQr8+t3FC/ZHAC+pZreUBhTaxumuu3L+d37uRxk=\ngithub.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=\ngithub.com/hashicorp/serf v0.8.5/go.mod h1:UpNcs7fFbpKIyZaUuSW6EPiH+eZC7OuyFD+wc1oal+k=\ngithub.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q=\ngithub.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M=\ngithub.com/hashicorp/vic v1.5.1-0.20190403131502-bbfe86ec9443/go.mod h1:bEpDU35nTu0ey1EXjwNwPjI9xErAsoOCmcMb9GKvyxo=\ngithub.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=\ngithub.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=\ngithub.com/hashicorp/yamux v0.0.0-20190923154419-df201c70410d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=\ngithub.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=\ngithub.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=\ngithub.com/hudl/fargo v1.2.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=\ngithub.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=\ngithub.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/inconshreveable/log15 v0.0.0-20180818164646-67afb5ed74ec/go.mod h1:cOaXtrgN4ScfRrD9Bre7U1thNq5RtJ8ZoP4iXVGRj6o=\ngithub.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=\ngithub.com/influxdata/flux v0.34.1/go.mod h1:GvaTIeU904jG5Q7kwsfPFyXD61I7eSSGO30p+y0XOmk=\ngithub.com/influxdata/influxdb v1.7.6/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY=\ngithub.com/influxdata/influxql v1.0.0/go.mod h1:KpVI7okXjK6PRi3Z5B+mtKZli+R1DnZgb3N+tzevNgo=\ngithub.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE=\ngithub.com/influxdata/roaring v0.4.12/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE=\ngithub.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0=\ngithub.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po=\ngithub.com/infobloxopen/go-trees v0.0.0-20190313150506-2af4e13f9062/go.mod h1:PcNJqIlcX/dj3DTG/+QQnRvSgTMG6CLpRMjWcv4+J6w=\ngithub.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ=\ngithub.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=\ngithub.com/jackc/pgx v3.3.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=\ngithub.com/jarcoal/httpmock v0.0.0-20180424175123-9c70cfe4a1da/go.mod h1:ks+b9deReOc7jgqp+e7LuFiCBH6Rm5hL32cLcEAArb4=\ngithub.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=\ngithub.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=\ngithub.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=\ngithub.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8=\ngithub.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=\ngithub.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=\ngithub.com/jmoiron/sqlx v0.0.0-20180614180643-0dae4fefe7c0/go.mod h1:IiEW3SEiiErVyFdH8NTuWjSifiEQKUoyK3LNqr2kCHU=\ngithub.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=\ngithub.com/joho/godotenv v1.2.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=\ngithub.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=\ngithub.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=\ngithub.com/joyent/triton-go v0.0.0-20180628001255-830d2b111e62/go.mod h1:U+RSyWxWd04xTqnuOQxnai7XGS2PrPY2cfGoDKtMHjA=\ngithub.com/joyent/triton-go v1.7.0/go.mod h1:zCt/it+QSYSRfzGPKw2zKK9pg3XqS3OoDoKjvOSOjJQ=\ngithub.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0=\ngithub.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=\ngithub.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=\ngithub.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=\ngithub.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=\ngithub.com/jsternberg/zap-logfmt v1.2.0/go.mod h1:kz+1CUmCutPWABnNkOu9hOHKdT2q3TDYCcsFy9hpqb0=\ngithub.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=\ngithub.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=\ngithub.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=\ngithub.com/jung-kurt/gofpdf v1.5.1/go.mod h1:oIiEpiXAwTUssrFUGgVj4SO17oiCYsfnTjeQZz/amnM=\ngithub.com/justinas/alice v0.0.0-20171023064455-03f45bd4b7da/go.mod h1:oLH0CmIaxCGXD67VKGR5AacGXZSMznlmeqM8RzPrcY8=\ngithub.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0=\ngithub.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=\ngithub.com/karrick/godirwalk v1.7.7/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=\ngithub.com/karrick/godirwalk v1.7.8/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=\ngithub.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=\ngithub.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=\ngithub.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=\ngithub.com/kevinburke/ssh_config v0.0.0-20180830205328-81db2a75821e/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=\ngithub.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=\ngithub.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=\ngithub.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=\ngithub.com/klauspost/compress v1.7.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=\ngithub.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=\ngithub.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=\ngithub.com/klauspost/pgzip v1.2.1/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=\ngithub.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=\ngithub.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=\ngithub.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=\ngithub.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=\ngithub.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=\ngithub.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=\ngithub.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=\ngithub.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=\ngithub.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=\ngithub.com/ledisdb/ledisdb v0.0.0-20200510135210-d35789ec47e6/go.mod h1:n931TsDuKuq+uX4v1fulaMbA/7ZLLhjc85h7chZGBCQ=\ngithub.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=\ngithub.com/lib/pq v1.1.1 h1:sJZmqHoEaY7f+NPP8pgLB/WxulyR3fewgCM2qaSlBb4=\ngithub.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=\ngithub.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=\ngithub.com/lightstep/lightstep-tracer-go v0.16.0/go.mod h1:6AMpwZpsyCFwSovxzM78e+AsYxE8sGwiM6C3TytaWeI=\ngithub.com/linode/linodego v0.7.1/go.mod h1:ga11n3ivecUrPCHN0rANxKmfWBJVkOXfLMZinAbj2sY=\ngithub.com/linode/linodego v0.12.0/go.mod h1:cQFzVqVu5KeFy2ZSTWTA/qVNYYa9ZY8uePJZsFG7EYs=\ngithub.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04=\ngithub.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk=\ngithub.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao=\ngithub.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58=\ngithub.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=\ngithub.com/magicsea/behavior3go v0.0.0-20200622063830-4cf5449990a7 h1:15/pWvZiTfgz/n7i4hvC7jH1UMI1LwGifKHIk7/JExA=\ngithub.com/magicsea/behavior3go v0.0.0-20200622063830-4cf5449990a7/go.mod h1:YPRcRdnDiwdQrUzMm9d07cMhCOTzdquY5iKbNBEAhSk=\ngithub.com/magicsea/ganet v0.0.0-20200721080758-d33e58ea37d8 h1:iN13kQxCzDfV739aBQ0hXhJb2+oBi3CPmFCaQpVcx5Q=\ngithub.com/magicsea/ganet v0.0.0-20200721080758-d33e58ea37d8/go.mod h1:cPIqHZJ4Xb2n5x1p0EV66o9LS60hW/PUUSYwSZDfbhE=\ngithub.com/magicsea/ganet v0.0.0-20200803062315-0bb3f3f0ce0b h1:xlQpZ8sZ7wvTX1YEmvCLpljoYJkQiOGQrGoMNBpvcwc=\ngithub.com/magicsea/ganet v0.0.0-20200803062315-0bb3f3f0ce0b/go.mod h1:cPIqHZJ4Xb2n5x1p0EV66o9LS60hW/PUUSYwSZDfbhE=\ngithub.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=\ngithub.com/markbates/deplist v1.0.4/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM=\ngithub.com/markbates/deplist v1.0.5/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM=\ngithub.com/markbates/deplist v1.1.3/go.mod h1:BF7ioVzAJYEtzQN/os4rt8H8Ti3h0T7EoN+7eyALktE=\ngithub.com/markbates/deplist v1.2.0/go.mod h1:dtsWLZ5bWoazbM0rCxZncQaAPifWbvHgBJk8UNI1Yfk=\ngithub.com/markbates/going v1.0.2/go.mod h1:UWCk3zm0UKefHZ7l8BNqi26UyiEMniznk8naLdTcy6c=\ngithub.com/markbates/going v1.0.3/go.mod h1:fQiT6v6yQar9UD6bd/D4Z5Afbk9J6BBVBtLiyY4gp2o=\ngithub.com/markbates/grift v1.0.4/go.mod h1:wbmtW74veyx+cgfwFhlnnMWqhoz55rnHR47oMXzsyVs=\ngithub.com/markbates/grift v1.0.5/go.mod h1:EHmVIjOQoj/OOBDzlZ8RW0ZkvOtQ4xRHjrPvmfoiFaU=\ngithub.com/markbates/grift v1.0.6/go.mod h1:2AUYA/+pODhwonRbYwsltPVPIztBzw5nIJEGiWgKMPM=\ngithub.com/markbates/hmax v1.0.0/go.mod h1:cOkR9dktiESxIMu+65oc/r/bdY4bE8zZw3OLhLx0X2c=\ngithub.com/markbates/hmax v1.1.0/go.mod h1:hhn8pJiRwNTEmNlxhfiTbL+CtEYiAX3wuhSf/kg/6wI=\ngithub.com/markbates/inflect v1.0.0/go.mod h1:oTeZL2KHA7CUX6X+fovmK9OvIOFuqu0TwdQrZjLTh88=\ngithub.com/markbates/inflect v1.0.1/go.mod h1:uv3UVNBe5qBIfCm8O8Q+DW+S1EopeyINj+Ikhc7rnCk=\ngithub.com/markbates/inflect v1.0.3/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs=\ngithub.com/markbates/inflect v1.0.4/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs=\ngithub.com/markbates/oncer v0.0.0-20180924031910-e862a676800b/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/oncer v0.0.0-20180924034138-723ad0170a46/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/oncer v0.0.0-20181014194634-05fccaae8fc4/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/refresh v1.4.10/go.mod h1:NDPHvotuZmTmesXxr95C9bjlw1/0frJwtME2dzcVKhc=\ngithub.com/markbates/refresh v1.4.11/go.mod h1:awpJuyo4zgexB/JaHfmBX0sRdvOjo2dXwIayWIz9i3g=\ngithub.com/markbates/refresh v1.5.0/go.mod h1:ZYMLkxV+x7wXQ2Xd7bXAPyF0EXiEWAMfiy/4URYb1+M=\ngithub.com/markbates/refresh v1.6.0/go.mod h1:p8jWGABFUaFf/cSw0pxbo0MQVujiz5NTQ0bmCHLC4ac=\ngithub.com/markbates/refresh v1.7.1/go.mod h1:hcGVJc3m5EeskliwSVJxcTHzUtMz2h8gBtCS0V94CgE=\ngithub.com/markbates/safe v1.0.0/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=\ngithub.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=\ngithub.com/markbates/sigtx v1.0.0/go.mod h1:QF1Hv6Ic6Ca6W+T+DL0Y/ypborFKyvUY9HmuCD4VeTc=\ngithub.com/markbates/willie v1.0.9/go.mod h1:fsrFVWl91+gXpx/6dv715j7i11fYPfZ9ZGfH0DQzY7w=\ngithub.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk=\ngithub.com/martini-contrib/render v0.0.0-20150707142108-ec18f8345a11/go.mod h1:Ah2dBMoxZEqk118as2T4u4fjfXarE0pPnMJaArZQZsI=\ngithub.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=\ngithub.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=\ngithub.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=\ngithub.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=\ngithub.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=\ngithub.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=\ngithub.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=\ngithub.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=\ngithub.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=\ngithub.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=\ngithub.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=\ngithub.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=\ngithub.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U=\ngithub.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=\ngithub.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE=\ngithub.com/mattn/go-zglob v0.0.0-20171230104132-4959821b4817/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo=\ngithub.com/mattn/go-zglob v0.0.0-20180803001819-2ea3427bfa53/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo=\ngithub.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=\ngithub.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY=\ngithub.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=\ngithub.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc=\ngithub.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=\ngithub.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=\ngithub.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=\ngithub.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=\ngithub.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=\ngithub.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=\ngithub.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=\ngithub.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=\ngithub.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=\ngithub.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=\ngithub.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=\ngithub.com/mitchellh/hashstructure v0.0.0-20170609045927-2bca23e0e452/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ=\ngithub.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ=\ngithub.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=\ngithub.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=\ngithub.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=\ngithub.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=\ngithub.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=\ngithub.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=\ngithub.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGEJq24YyJ2ban8EO0RUVSJlF1pGsEvoLEACr/Q=\ngithub.com/monoculum/formam v0.0.0-20190307031628-bc555adff0cd/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc=\ngithub.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=\ngithub.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=\ngithub.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=\ngithub.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0=\ngithub.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E=\ngithub.com/nats-io/go-nats v1.7.2/go.mod h1:+t7RHT5ApZebkrQdnn6AhQJmhJJiKAvJUio1PiiCtj0=\ngithub.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4=\ngithub.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=\ngithub.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU=\ngithub.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo=\ngithub.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM=\ngithub.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q=\ngithub.com/nicolai86/scaleway-sdk v1.10.2-0.20180628010248-798f60e20bb2/go.mod h1:TLb2Sg7HQcgGdloNxkrmtgDNR9uVYF3lfdFIN4Ro6Sk=\ngithub.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=\ngithub.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=\ngithub.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=\ngithub.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=\ngithub.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=\ngithub.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=\ngithub.com/olekukonko/tablewriter v0.0.0-20180130162743-b8a9be070da4/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=\ngithub.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.12.0 h1:Iw5WCbBcaAAd0fpRb1c9r5YCylv4XDoCSigm1zLevwU=\ngithub.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg=\ngithub.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=\ngithub.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=\ngithub.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.7.1 h1:K0jcRCwNQM3vFGh1ppMtDh/+7ApJrjldlX8fA0jDTLQ=\ngithub.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=\ngithub.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=\ngithub.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis=\ngithub.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=\ngithub.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=\ngithub.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=\ngithub.com/openzipkin-contrib/zipkin-go-opentracing v0.3.5/go.mod h1:uVHyebswE1cCXr2A73cRM2frx5ld1RJUCJkFNZ90ZiI=\ngithub.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8=\ngithub.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=\ngithub.com/orcaman/concurrent-map v0.0.0-20190107190726-7ed82d9cb717 h1:2v7IYkog9ZFN04bv5hkwjpyHkc6wujPPOVYDPp2rfwA=\ngithub.com/orcaman/concurrent-map v0.0.0-20190107190726-7ed82d9cb717/go.mod h1:Lu3tH6HLW3feq74c2GC+jIMS/K2CFcDWnWD9XkenwhI=\ngithub.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0=\ngithub.com/packethost/packngo v0.1.1-0.20180711074735-b9cb5096f54c/go.mod h1:otzZQXgoO96RTzDB/Hycg0qZcXZsWJGJRSXbmEIJ+4M=\ngithub.com/packethost/packngo v0.2.0/go.mod h1:RQHg5xR1F614BwJyepfMqrKN+32IH0i7yX+ey43rEeQ=\ngithub.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=\ngithub.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=\ngithub.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE=\ngithub.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=\ngithub.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo=\ngithub.com/pelletier/go-toml v1.0.1/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=\ngithub.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=\ngithub.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=\ngithub.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=\ngithub.com/peterh/liner v1.0.1-0.20171122030339-3681c2a91233/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=\ngithub.com/peterh/liner v1.1.0/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0=\ngithub.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=\ngithub.com/phpdave11/gofpdi v1.0.3/go.mod h1:B7ryN7q4MLItB8BDM5PJAplblJegAAcaI98viOZUihg=\ngithub.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=\ngithub.com/pierrec/lz4 v2.3.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=\ngithub.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=\ngithub.com/pkg/sftp v1.10.0/go.mod h1:NxmoDg/QLVWluQDUYG7XBZTLUpKeFa8e3aMf1BfjyHk=\ngithub.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ=\ngithub.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=\ngithub.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=\ngithub.com/pressly/chi v4.0.2+incompatible/go.mod h1:s/kslmeFE633XtTPvfX2olbs4ymzIHxGGXmEJ/AvPT8=\ngithub.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=\ngithub.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=\ngithub.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM=\ngithub.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=\ngithub.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=\ngithub.com/prometheus/client_golang v1.2.1/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U=\ngithub.com/prometheus/client_golang v1.7.0/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=\ngithub.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=\ngithub.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=\ngithub.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=\ngithub.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=\ngithub.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=\ngithub.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=\ngithub.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=\ngithub.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=\ngithub.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=\ngithub.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=\ngithub.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=\ngithub.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=\ngithub.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=\ngithub.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=\ngithub.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=\ngithub.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=\ngithub.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=\ngithub.com/prometheus/procfs v0.0.7/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=\ngithub.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=\ngithub.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=\ngithub.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=\ngithub.com/remyoudompheng/bigfft v0.0.0-20190512091148-babf20351dd7/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=\ngithub.com/renier/xmlrpc v0.0.0-20170708154548-ce4a1a486c03/go.mod h1:gRAiPF5C5Nd0eyyRdqIu9qTiFSoZzpTq727b5B8fkkU=\ngithub.com/renier/xmlrpc v0.0.0-20191022213033-ce560eccbd00/go.mod h1:gRAiPF5C5Nd0eyyRdqIu9qTiFSoZzpTq727b5B8fkkU=\ngithub.com/retailnext/hllpp v1.0.0/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc=\ngithub.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=\ngithub.com/rogpeppe/go-internal v1.0.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=\ngithub.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=\ngithub.com/rs/zerolog v1.4.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=\ngithub.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=\ngithub.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=\ngithub.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w=\ngithub.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk=\ngithub.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=\ngithub.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=\ngithub.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=\ngithub.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=\ngithub.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=\ngithub.com/sean-/conswriter v0.0.0-20180208195008-f5ae3917a627/go.mod h1:7zjs06qF79/FKAJpBvFx3P8Ww4UTIMAe+lpNXDHziac=\ngithub.com/sean-/pager v0.0.0-20180208200047-666be9bf53b5/go.mod h1:BeybITEsBEg6qbIiqJ6/Bqeq25bCLbL7YFmpaFfJDuM=\ngithub.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=\ngithub.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo=\ngithub.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs=\ngithub.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=\ngithub.com/serialx/hashring v0.0.0-20180504054112-49a4782e9908/go.mod h1:/yeG0My1xr/u+HZrFQ1tOQQQQrOawfyMUH13ai5brBc=\ngithub.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=\ngithub.com/shirou/gopsutil v0.0.0-20181107111621-48177ef5f880/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=\ngithub.com/shirou/gopsutil v2.19.10+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=\ngithub.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=\ngithub.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=\ngithub.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY=\ngithub.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM=\ngithub.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0=\ngithub.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=\ngithub.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=\ngithub.com/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw=\ngithub.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c/go.mod h1:8d3azKNyqcHP1GaQE/c6dDgjkgSx2BZ4IoEi4F1reUI=\ngithub.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU=\ngithub.com/shurcooL/highlight_go v0.0.0-20170515013102-78fb10f4a5f8/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag=\ngithub.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag=\ngithub.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9/go.mod h1:+rgNQw2P9ARFAs37qieuu7ohDNQ3gds9msbT2yn85sg=\ngithub.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50/go.mod h1:zPn1wHpTIePGnXSHpsVPWEktKXHr6+SS6x/IKRb7cpw=\ngithub.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc/go.mod h1:aYMfkZ6DWSJPJ6c4Wwz3QtW22G7mf/PEgaB9k/ik5+Y=\ngithub.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=\ngithub.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9/go.mod h1:919LwcH0M7/W4fcZ0/jy0qGght1GIhqyS/EgWGH2j5Q=\ngithub.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191/go.mod h1:e2qWDig5bLteJ4fwvDAc2NHzqFEthkqn7aOZAOpj+PQ=\ngithub.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241/go.mod h1:NPpHK2TI7iSaM0buivtFUc9offApnI0Alt/K8hcHy0I=\ngithub.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122/go.mod h1:b5uSkrEVM1jQUspwbixRBhaIjIzL2xazXp6kntxYle0=\ngithub.com/shurcooL/octicon v0.0.0-20180602230221-c42b0e3b24d9/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ=\ngithub.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ=\ngithub.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82/go.mod h1:TCR1lToEk4d2s07G3XGfz2QrgHXg4RJBvjrOozvoWfk=\ngithub.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=\ngithub.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4=\ngithub.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw=\ngithub.com/siddontang/go v0.0.0-20170517070808-cb568a3e5cc0/go.mod h1:3yhqj7WBBfRhbBlzyOC3gUxftwsU0u8gqevxwIHQpMw=\ngithub.com/siddontang/goredis v0.0.0-20150324035039-760763f78400/go.mod h1:DDcKzU3qCuvj/tPnimWSsZZzvk9qvkvrIL5naVBPh5s=\ngithub.com/siddontang/rdb v0.0.0-20150307021120-fc89ed2e418d/go.mod h1:AMEsy7v5z92TR1JKMkLLoaOQk++LVnOKL3ScbJ8GNGA=\ngithub.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=\ngithub.com/sirupsen/logrus v1.1.0/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A=\ngithub.com/sirupsen/logrus v1.1.1/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A=\ngithub.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=\ngithub.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=\ngithub.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=\ngithub.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=\ngithub.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=\ngithub.com/smartystreets/assertions v0.0.0-20180820201707-7c9eb446e3cf/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=\ngithub.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM=\ngithub.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=\ngithub.com/softlayer/softlayer-go v0.0.0-20180806151055-260589d94c7d/go.mod h1:Cw4GTlQccdRGSEf6KiMju767x0NEHE0YIVPJSaXjlsw=\ngithub.com/softlayer/softlayer-go v1.0.0/go.mod h1:Cw4GTlQccdRGSEf6KiMju767x0NEHE0YIVPJSaXjlsw=\ngithub.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=\ngithub.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=\ngithub.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE=\ngithub.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA=\ngithub.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=\ngithub.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=\ngithub.com/spf13/afero v1.2.0/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=\ngithub.com/spf13/afero v1.2.1/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=\ngithub.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=\ngithub.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg=\ngithub.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=\ngithub.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=\ngithub.com/spf13/cobra v0.0.4/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=\ngithub.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=\ngithub.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=\ngithub.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/spf13/viper v1.2.1/go.mod h1:P4AexN0a+C9tGAnUFNwDMYYZv3pjFuvmeiMyKRaNVlI=\ngithub.com/spf13/viper v1.3.0/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=\ngithub.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=\ngithub.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=\ngithub.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=\ngithub.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI=\ngithub.com/ssdb/gossdb v0.0.0-20180723034631-88f6b59b84ec/go.mod h1:QBvMkMya+gXctz3kmljlUCu/yB3GZ6oee+dUozsezQE=\ngithub.com/stathat/go v1.0.0/go.mod h1:+9Eg2szqkcOGWv6gfheJmBBsmq9Qf5KDbzy8/aYYR0c=\ngithub.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=\ngithub.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=\ngithub.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=\ngithub.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=\ngithub.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=\ngithub.com/syndtr/goleveldb v0.0.0-20160425020131-cfa635847112/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=\ngithub.com/syndtr/goleveldb v0.0.0-20181127023241-353a9fca669c/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=\ngithub.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=\ngithub.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=\ngithub.com/tent/http-link-go v0.0.0-20130702225549-ac974c61c2f9/go.mod h1:RHkNRtSLfOK7qBTHaeSX1D6BNpI3qw7NTxsmNr4RvN8=\ngithub.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=\ngithub.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2/go.mod h1:WjeM0Oo1eNAjXGDx2yma7uG2XoyRZTq1uv3M/o7imD0=\ngithub.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPfx6jb1bBgRFjl5lytqVqZXEaeqWP8lTEao=\ngithub.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4=\ngithub.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=\ngithub.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=\ngithub.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31/go.mod h1:onvgF043R+lC5RZ8IT9rBXDaEDnpnw/Cl+HFiw+v/7Q=\ngithub.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=\ngithub.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=\ngithub.com/uber/jaeger-lib v1.5.0/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=\ngithub.com/ugorji/go v0.0.0-20171122102828-84cb69a8af83/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ=\ngithub.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=\ngithub.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=\ngithub.com/unrolled/secure v0.0.0-20180918153822-f340ee86eb8b/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/unrolled/secure v0.0.0-20181005190816-ff9db2ff917f/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/unrolled/secure v0.0.0-20181022170031-4b6b7cf51606/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/unrolled/secure v0.0.0-20190103195806-76e6d4e9b90c/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=\ngithub.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=\ngithub.com/vmware/govmomi v0.18.0/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU=\ngithub.com/vmware/govmomi v0.21.0/go.mod h1:zbnFoBQ9GIjs2RVETy8CNEpb+L+Lwkjs3XZUL0B3/m0=\ngithub.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728/go.mod h1:x9oS4Wk2s2u4tS29nEaDLdzvuHdB19CvSGJjPgkZJNk=\ngithub.com/wendal/errors v0.0.0-20130201093226-f66c77a7882b/go.mod h1:Q12BUT7DqIlHRmgv3RskH+UCM/4eqVMgI0EMmlSpAXc=\ngithub.com/xanzy/ssh-agent v0.2.0/go.mod h1:0NyE30eGUDliuLEHJgYte/zncp2zdTStcOnWhgSqHD8=\ngithub.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=\ngithub.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=\ngithub.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=\ngithub.com/yuin/gopher-lua v0.0.0-20171031051903-609c9cd26973/go.mod h1:aEV29XrmTYFr3CiRxZeGHpkvbwq+prZduBqMaascyCU=\ngithub.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=\ngo.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=\ngo.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=\ngo.etcd.io/etcd v0.5.0-alpha.5.0.20190917205325-a14579fbfb1a/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=\ngo.etcd.io/etcd v3.3.13+incompatible/go.mod h1:yaeTdrJi5lOmYerz05bd8+V7KubZs8YSFZfzsF9A6aI=\ngo.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA=\ngo.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=\ngo.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=\ngo.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=\ngo.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=\ngo.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=\ngo.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=\ngo.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=\ngo.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=\ngo4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE=\ngolang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw=\ngolang.org/x/build v0.0.0-20190626175840-54405f243e45/go.mod h1:fYw7AShPAhGMdXqA9gRadk/CcMsvLlClpE5oBwnS3dM=\ngolang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20180910181607-0e37d006457b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181015023909-0c41d7ab0a0e/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181024171144-74cb1d3d52f4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181025113841-85e1b3f9139a/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181025213731-e84da0312774/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181106171534-e4dc69e5b2fd/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190122013713-64072686203f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190130090550-b01c7a725664/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190403202508-8e1b8d32e692/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190424203555-c05e17bb3b2d/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=\ngolang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20191117063200-497ca9f6d64f/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=\ngolang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20181112044915-a3060d491354/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=\ngolang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=\ngolang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=\ngolang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=\ngolang.org/x/image v0.0.0-20190507092727-e4e5bf290fec/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=\ngolang.org/x/image v0.0.0-20190622003408-7e034cad6442/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=\ngolang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=\ngolang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=\ngolang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=\ngolang.org/x/mobile v0.0.0-20190607214518-6fa95d984e88/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=\ngolang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=\ngolang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=\ngolang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=\ngolang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=\ngolang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180611182652-db08ff08e862/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180816102801-aaf60122140d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180921000356-2f5d2388922f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180926154720-4dfa2610cdf3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181017193950-04a2e542c03f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181029044818-c44066c5c816/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181108082009-03003ca0c849/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181207154023-610586996380/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181213202711-891ebc4b82d6/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190119204137-ed066c81e75e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190206173232-65e2d4e15006/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190502183928-7f726cade0ab/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190514140710-3ec191127204/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=\ngolang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=\ngolang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20191003171128-d98b1b443823/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20191116160921-f9c825593386 h1:ktbWvQrW08Txdxno1PiDpSxPXG6ndGsfnJjRRtkM0LQ=\ngolang.org/x/net v0.0.0-20191116160921-f9c825593386/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/oauth2 v0.0.0-20170807180024-9a379c6b3e95/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=\ngolang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=\ngolang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=\ngolang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=\ngolang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180903190138-2b024373dcd9/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180906133057-8cf3aee42992/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180921163948-d47a0f339242/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180927150500-dad3d9fb7b6e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181005133103-4497e2df6f9e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181011152604-fa43e7bc11ba/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181019084534-8f1d3d21f81b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181022134430-8a28ead16f52/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181024145615-5cd93ef61a7c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181025063200-d989b31c8746/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181026064943-731415f00dce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181030150119-7e31e0c00fa0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181106135930-3a76605856fd/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181206074257-70b957f3b65e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181213150753-586ba8c9bb14/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181213200352-4d1cda033e06/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190116161447-11f53e031339/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190122071731-054c452bb702/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190220154126-629670e5acc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190508220229-2d0786266e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190523142557-0e01d883c5c5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191118013547-6254a7c3cac6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20200615200032-f1bc736245b1 h1:ogLJMz+qpzav7lGMh10LMvAkM/fAoGlaiiHYiFYdm80=\ngolang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=\ngolang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=\ngolang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=\ngolang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181003024731-2f84ea8ef872/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181006002542-f60d9635b16a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181008205924-a2b3f7f249e9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181013182035-5e66757b835f/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181017214349-06f26fdaaa28/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181019005945-6adeb8aab2de/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181024171208-a2dc47679d30/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181026183834-f60e5f99f081/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181030151751-bb28844c46df/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181102223251-96e9e165b75e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181105230042-78dc5bac0cac/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181107215632-34b416bd17b3/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181109152631-138c20b93253/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181109202920-92d8274bd7b8/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181111003725-6d71ab8aade0/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181114190951-94339b83286c/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181119130350-139d099f6620/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181120060634-fc4f04983f62/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181122213734-04b5d21e00f1/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181127195227-b4e97c0ed882/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181127232545-e782529d0ddd/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181201035826-d0ca3933b724/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181203210056-e5f3ab76ea4b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181205224935-3576414c54a4/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181206194817-bcd4e47d0288/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181207183836-8bc39b988060/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181212172921-837e80568c09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181213190329-bbccd8cae4a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181221154417-3ad2d988d5e2/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190102213336-ca9055ed7d04/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190104182027-498d95493402/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190111214448-fc1d57b08d7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190118193359-16909d206f00/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190122202912-9c309ee22fab/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190124004107-78ee07aa9465/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190131142011-8dbcc66f33bb/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190206221403-44bcb96178d3/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190214204934-8dcb7bc8c7fe/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44=\ngolang.org/x/tools v0.0.0-20190219135230-f000d56b39dc/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44=\ngolang.org/x/tools v0.0.0-20190219185102-9394956cfdc5/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44=\ngolang.org/x/tools v0.0.0-20190221204921-83362c3779f5/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=\ngolang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=\ngolang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190315044204-8b67d361bba2/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190318200714-bb1270c20edf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190404132500-923d25813098/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190407030857-0fdf0c73855b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20190603152906-08e0b306e832/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190603231351-8aaa1484dc10/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190613204242-ed0dc450797f/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190624190245-7f2218787638/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190626204024-7ef8a99cf38d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20200117065230-39095c1d176c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=\ngolang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=\ngolang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=\ngonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=\ngoogle.golang.org/api v0.0.0-20180829000535-087779f1d2c9/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=\ngoogle.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=\ngoogle.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=\ngoogle.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y=\ngoogle.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=\ngoogle.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=\ngoogle.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=\ngoogle.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=\ngoogle.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=\ngoogle.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=\ngoogle.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=\ngoogle.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=\ngoogle.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=\ngoogle.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg=\ngoogle.golang.org/genproto v0.0.0-20190201180003-4b09977fb922/go.mod h1:L3J43x8/uS+qIUoksaLKe6OS3nUKxOKuIFz1sl2/jx4=\ngoogle.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=\ngoogle.golang.org/genproto v0.0.0-20190626174449-989357319d63/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=\ngoogle.golang.org/genproto v0.0.0-20190701230453-710ae3a149df/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=\ngoogle.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=\ngoogle.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=\ngoogle.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=\ngoogle.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=\ngoogle.golang.org/genproto v0.0.0-20191115221424-83cc0476cb11 h1:51D++eCgOHufw5VfDE9Uzqyyc+OyQIjb9hkYy9LN5Fk=\ngoogle.golang.org/genproto v0.0.0-20191115221424-83cc0476cb11/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=\ngoogle.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=\ngoogle.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio=\ngoogle.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=\ngoogle.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=\ngoogle.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=\ngoogle.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=\ngoogle.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=\ngoogle.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=\ngoogle.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=\ngoogle.golang.org/grpc v1.25.1 h1:wdKvqQk7IttEw92GoRyKG2IDrUIpgpj6H6m81yfeMW0=\ngoogle.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=\ngoogle.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=\ngoogle.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=\ngoogle.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=\ngoogle.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=\ngoogle.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=\ngoogle.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM=\ngoogle.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=\ngopkg.in/DataDog/dd-trace-go.v1 v1.19.0/go.mod h1:DVp8HmDh8PuTu2Z0fVVlBsyWaC++fzwVCaGWylTe3tg=\ngopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=\ngopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=\ngopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=\ngopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=\ngopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=\ngopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=\ngopkg.in/couchbase/gocbcore.v7 v7.1.11/go.mod h1:48d2Be0MxRtsyuvn+mWzqmoGUG9uA00ghopzOs148/E=\ngopkg.in/couchbaselabs/gocbconnstr.v1 v1.0.2/go.mod h1:ZjII0iKx4Veo6N6da+pEZu/ptNyKLg9QTVt7fFmR6sw=\ngopkg.in/couchbaselabs/jsonx.v1 v1.0.0/go.mod h1:oR201IRovxvLW/eISevH12/+MiKHtNQAKfcX8iWZvJY=\ngopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=\ngopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=\ngopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=\ngopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=\ngopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo=\ngopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=\ngopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=\ngopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw=\ngopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s=\ngopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=\ngopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=\ngopkg.in/mail.v2 v2.0.0-20180731213649-a0242b2233b4/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw=\ngopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U=\ngopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=\ngopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=\ngopkg.in/resty.v1 v1.9.1/go.mod h1:vo52Hzryw9PnPHcJfPsBiFW62XhNx5OczbV9y+IMpgc=\ngopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=\ngopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=\ngopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=\ngopkg.in/square/go-jose.v2 v2.4.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=\ngopkg.in/src-d/go-billy.v4 v4.2.1/go.mod h1:tm33zBoOwxjYHZIE+OV8bxTWFMJLrconzFMd38aARFk=\ngopkg.in/src-d/go-git-fixtures.v3 v3.1.1/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g=\ngopkg.in/src-d/go-git.v4 v4.8.1/go.mod h1:Vtut8izDyrM8BUVQnzJ+YvmNcem2J89EmfZYCkLokZk=\ngopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=\ngopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=\ngopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0=\ngopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=\ngopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg=\ngopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=\ngopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=\ngopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngrpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o=\nhonnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20181108184350-ae8f1f9103cc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=\nistio.io/gogo-genproto v0.0.0-20190124151557-6d926a6e6feb/go.mod h1:eIDJ6jNk/IeJz6ODSksHl5Aiczy5JUq6vFhJWI5OtiI=\nk8s.io/api v0.0.0-20180806132203-61b11ee65332/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA=\nk8s.io/api v0.0.0-20190325185214-7544f9db76f6/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA=\nk8s.io/api v0.0.0-20190620084959-7cf5895f2711/go.mod h1:TBhBqb1AWbBQbW3XRusr7n7E4v2+5ZY8r8sAMnyFC5A=\nk8s.io/api v0.0.0-20191115135540-bbc9463b57e5/go.mod h1:iA/8arsvelvo4IDqIhX4IbjTEKBGgvsf2OraTuRtLFU=\nk8s.io/apimachinery v0.0.0-20180821005732-488889b0007f/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0=\nk8s.io/apimachinery v0.0.0-20190223001710-c182ff3b9841/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0=\nk8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719/go.mod h1:I4A+glKBHiTgiEjQiCCQfCAIcIMFGt291SmsvcrFzJA=\nk8s.io/apimachinery v0.0.0-20191115015347-3c7067801da2/go.mod h1:dXFS2zaQR8fyzuvRdJDHw2Aerij/yVGJSre0bZQSVJA=\nk8s.io/apimachinery v0.0.0-20191116203941-08e4eafd6d11/go.mod h1:dXFS2zaQR8fyzuvRdJDHw2Aerij/yVGJSre0bZQSVJA=\nk8s.io/client-go v0.0.0-20190620085101-78d2af792bab/go.mod h1:E95RaSlHr79aHaX0aGSwcPNfygDiPKOVXdmivCIZT0k=\nk8s.io/client-go v8.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=\nk8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=\nk8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=\nk8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=\nk8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=\nk8s.io/klog v0.3.1/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=\nk8s.io/klog v0.4.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=\nk8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=\nk8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc=\nk8s.io/kube-openapi v0.0.0-20190306001800-15615b16d372/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc=\nk8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=\nk8s.io/utils v0.0.0-20190221042446-c2654d5206da/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0=\nk8s.io/utils v0.0.0-20190529001817-6999998975a7/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=\nk8s.io/utils v0.0.0-20191114200735-6ca3b61696b6/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=\nrsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=\nsigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=\nsigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=\nsourcegraph.com/sourcegraph/appdash v0.0.0-20190107175209-d9ea5c54f7dc/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=\nsourcegraph.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67/go.mod h1:L5q+DGLGOQFpo1snNEkLOJT2d1YTW66rWNzatr3He1k=\nsourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck=\nsourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0=\n"
  },
  {
    "path": "server/src/Server/init_mod.bat",
    "content": "go env -w GOPROXY=https://goproxy.cn,direct\ngo mod tidy"
  },
  {
    "path": "server/src/Server/lobby/lobby_test.go",
    "content": "package lobby_test\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestGoFunc(t *testing.T) {\n\tGoFunc(nil, \"hello\", 3, func(o interface{}, err error) {\n\t\tfmt.Println(\"get :\", o, err)\n\t})\n}\n\nfunc GoFunc(pid *actor.PID, message interface{}, times int32, callback func(interface{}, error)) {\n\tgo func() {\n\t\to, err := pid.RequestFuture(message, time.Second).Result()\n\t\tcallback(o, err)\n\t}()\n}\n"
  },
  {
    "path": "server/src/Server/lobby/lobbyserver.go",
    "content": "package lobby\n\nimport (\n\t\"Server/db\"\n\t\"gameproto\"\n\t\"gameproto/msgs\"\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n\t\"github.com/magicsea/ganet/log\"\n\t\"github.com/magicsea/ganet/service\"\n\t\"github.com/magicsea/ganet/util\"\n\t\"reflect\"\n\t\"time\"\n)\n\ntype LobbyService struct {\n\tservice.ServiceData\n\tqueueMgr *QueueMgr\n\t//queuePid2Player map[string]uint64\n}\n\n//Service 获取服务对象\nfunc Service() service.IService {\n\treturn new(LobbyService)\n}\n\nfunc Type() string {\n\treturn \"lobby\"\n}\n\n//以下为接口函数\nfunc (s *LobbyService) OnReceive(context service.Context) {\n\tlog.Debug(\"LobbyService.OnReceive:%v\", context.Message())\n\n}\n\nfunc (s *LobbyService) OnInit() {\n\t//Init()\n\ts.queueMgr = NewQueueMgr(s.OnMatchOK)\n\t//s.queuePid2Player = make(map[string]uint64)\n\tlog.Info(\"LobbyService init:%v  \", s.queueMgr)\n\n\t//清空redis\n\tdb.GetRedisBattleLoad().FlushDB()\n\tdb.GetRedisBattle().FlushDB()\n}\n\nfunc (s *LobbyService) OnStart(as *service.ActorService) {\n\tas.RegisterMsg(reflect.TypeOf(&msgs.GetBattleServer{}), s.OnGetBestBattleServer)\n\tas.RegisterMsg(reflect.TypeOf(&msgs.JoinBattleQueue{}), s.OnJoinBattleQueue)\n\t//as.RegisterMsg(reflect.TypeOf(&actor.Terminated{}), s.OnPlayerTerminated) //玩家掉线\n\tas.RegisterMsg(reflect.TypeOf(&msgs.LeaveBattleQueue{}), s.OnLeaveQueue)\n\tas.RegisterMsg(reflect.TypeOf(&msgs.GetLobbyInfo{}), s.GetLobbyInfo)\n\tas.RegisterMsg(reflect.TypeOf(&msgs.Tick{}), s.OnTick)\n\n\tutil.StartLoopTask(time.Second*time.Duration(PVP_WAIT_TIME), s.Tick)\n\tlog.Debug(\"lobby OnStart ok!!\")\n}\n\nfunc (s *LobbyService) Tick() {\n\ts.Pid.Tell(&msgs.Tick{})\n}\n\nfunc (s *LobbyService) OnTick(context service.Context) {\n\t//log.Info(\"LobbyService tick\")\n\n\ts.queueMgr.Match()\n}\n\n//获取lobyy状态\nfunc (s *LobbyService) GetLobbyInfo(context service.Context) {\n\tlog.Info(\"LobbyService.GetLobbyInfo:%v\", context.Message())\n\tresult := &msgs.GetLobbyInfoResult{}\n\tfor t, list := range s.queueMgr.queues {\n\t\tdata := msgs.LobbyQueueData{t, int32(list.Count())}\n\t\tresult.Queuedata = append(result.Queuedata, &data)\n\t}\n\tserverlist, _ := GetBattleServers()\n\tfor addr, num := range serverlist {\n\t\tdata := msgs.BattleServerData{addr, num, 0}\n\t\tresult.BattleServerData = append(result.BattleServerData, &data)\n\t}\n\tcontext.Respond(result)\n}\n\n//获取最佳battle服务器pve,pvp-ai\nfunc (s *LobbyService) OnGetBestBattleServer(context service.Context) {\n\tlog.Info(\"LobbyService.GetBattleServer:%v\", context.Message())\n\tmsg := context.Message().(*msgs.GetBattleServer)\n\tbserverPid, errcode := GetBestServer()\n\tresult := &msgs.GetBattleServerResult{}\n\tif errcode != msgs.OK {\n\t\tresult.Result = errcode\n\t\tcontext.Respond(result)\n\t\tlog.Info(\"battle服务器已满,battle serverfull:%v\", errcode)\n\t\treturn\n\t}\n\n\t//db.SavePlayerInfo(msg.Uid, msg.Rtype, rid, addr, msg.RoomInfo)\n\t//rid := util.GetGUID()\n\t//result.RoomId = rid\n\tresult.Result = msgs.OK\n\tcontext.Respond(result)\n\n\t//直接开始\n\tvar players = []*msgs.CreateBattlePlayer{\n\t\t&msgs.CreateBattlePlayer{Uid: msg.Uid, PlayerPID: msg.SelfPID},\n\t}\n\ts.AsynCreateBattle(players, msg.Boss, int32(gameproto.PVE), bserverPid)\n}\n\nfunc (s *LobbyService) OnLeaveQueue(context service.Context) {\n\tlog.Info(\"center.OnLeaveQueue:%v\", context.Message())\n\tmsg := context.Message().(*msgs.LeaveBattleQueue)\n\ts.queueMgr.Remove(msg.Uid)\n}\n\n//排队\nfunc (s *LobbyService) OnJoinBattleQueue(context service.Context) {\n\tmsg := context.Message().(*msgs.JoinBattleQueue)\n\tlog.Info(\"center.JoinBattleQueue:%v\", msg)\n\tq := &QueuePlayer{msg, nil, 0}\n\t//log.Info(\"jq:%v,%v\", q, s.queueMgr)\n\tok := s.queueMgr.Add(q)\n\n\terr := msgs.OK\n\tif !ok {\n\t\terr = msgs.Error\n\t\tlog.Error(\"join battle again:%d\", msg.Uid)\n\t} else {\n\t\t//监听断开\n\t\t//s.queuePid2Player[msg.Sender.String()] = msg.Uid\n\t\t//context.Watch(msg.Sender)\n\t}\n\tcontext.Respond(&msgs.JoinBattleQueueResult{Waittime: 0, Result: err})\n}\n\n//匹配完成一组 p2==nil就是AI\nfunc (s *LobbyService) OnMatchOK(battleType int32, p1, p2 *QueuePlayer) {\n\tlog.Info(\"OnMatchOK\")\n\n\t//s.ReleaseWatchPlayer(p1.Sender, false)\n\t//s.ReleaseWatchPlayer(p2.Sender, false)\n\tbserverPid, errcode := GetBestServer()\n\tresult := &msgs.MatchBattle{}\n\tif errcode != msgs.OK {\n\t\tresult.Result = errcode\n\t\tp1.Sender.Tell(result)\n\t\tif p2 != nil {\n\t\t\tp2.Sender.Tell(result)\n\t\t}\n\t\tlog.Info(\"OnMatchOK battle服务器已满:%v\", errcode)\n\t\treturn\n\t}\n\n\tvar players = []*msgs.CreateBattlePlayer{\n\t\t&msgs.CreateBattlePlayer{Uid: p1.Uid, PlayerPID: p1.Sender},\n\t\t&msgs.CreateBattlePlayer{Uid: p2.Uid, PlayerPID: p2.Sender},\n\t}\n\ts.AsynCreateBattle(players, 0, int32(gameproto.PVP), bserverPid)\n}\n\n//异步创建房间\nfunc (s *LobbyService) AsynCreateBattle(players []*msgs.CreateBattlePlayer, stageId int32, rtype int32, battlePID *actor.PID) {\n\tlog.Info(\"AsynCreateBattle: rtype=%d,battle=%+v\", rtype, battlePID)\n\tgo func() {\n\t\trid := util.GetGUID()\n\t\tmsg := &msgs.CreateBattle{RoomId: rid, StageId: stageId, Rtype: rtype, Players: players}\n\t\tr, err := battlePID.RequestFuture(msg, time.Second*3).Result()\n\t\tif err != nil {\n\t\t\tlog.Error(\"CreateBattle error:%v\", err)\n\t\t\treturn\n\t\t}\n\n\t\trep := r.(*msgs.CreateBattleRep)\n\t\t// if rep.Result != msgs.OK {\n\t\t// \tlog.Error(\"CreateBattle fail:%v\", rep.Result)\n\t\t// \treturn\n\t\t// }\n\n\t\troompid := rep.RoomPID\n\t\tfor _, p := range players {\n\t\t\tlog.Info(\"send MatchBattle:%v\", p.Uid)\n\t\t\tdb.SavePlayerFightInfo(p.Uid, rtype, rid, roompid.Address, roompid.Id)\n\t\t\tresult := &msgs.MatchBattle{RoomId: rid, Rtype: rtype, Result: rep.Result, RoomPID: roompid}\n\t\t\tp.PlayerPID.Tell(result)\n\t\t}\n\n\t\tlog.Info(\"CreateBattle{ stage:%v,roompid:%v roomid:%v,player:%+v }\", stageId, roompid.String(), rid, players)\n\t}()\n}\n"
  },
  {
    "path": "server/src/Server/lobby/queuegmr.go",
    "content": "package lobby\n\nimport (\n\t//\"Server/GDataManager\"\n\t\"Server/db\"\n\t\"encoding/json\"\n\t\"gameproto/msgs\"\n\tlist \"github.com/magicsea/ganet/data-structures/list\"\n\t\"github.com/magicsea/ganet/log\"\n\t\"github.com/magicsea/ganet/util\"\n)\n\nvar (\n\tPVP_WAIT_TIME         int32 = 20\n\tPVP_STAIR_MATCH       int32 = 10\n\tPVP_STAIR_MATCH_SCORE int32 = 10\n\tPVP_ARENA_MATCH_SCORE int32 = 10\n\tPVP_AI_MAX            int32\n)\n\n//战斗类型\nconst (\n\tBATTLE_PVE    = 0\n\tBATTLE_PVP    = 1\n\tBATTLE_ARENA  = 2\n\tBATTLE_FRIEND = 3\n\tBATTLE_TEAM   = 4\n\tBATTLE_FREE   = 5\n\tBATTLE_GUILD  = 6\n)\n\ntype MatchFinishFunc func(battleType int32, p1, p2 *QueuePlayer)\ntype QueueMgr struct {\n\tqueues      map[int32]*list.List    //[BATTLE_TYPE]队列\n\twaitPlayers map[uint64]*QueuePlayer //[uid]*QueuePlayer\n\tfinishFunc  MatchFinishFunc\n}\n\ntype QueuePlayer struct {\n\t*msgs.JoinBattleQueue\n\tbattleInfo *db.MsgBattleRoomInfo\n\tmatchNum   int32\n}\n\nfunc NewQueueMgr(fin MatchFinishFunc) *QueueMgr {\n\tq := &QueueMgr{make(map[int32]*list.List), make(map[uint64]*QueuePlayer), fin}\n\tq.Init()\n\treturn q\n}\n\nfunc (q *QueueMgr) Init() {\n\t//PVP_WAIT_TIME = 1\n\tlog.Info(\"PVP_STAIR_MATCH_SCORE:%d PVP_STAIR_MATCH:%d PVP_WAIT_TIME:%d\",\n\t\tPVP_STAIR_MATCH_SCORE, PVP_STAIR_MATCH, PVP_WAIT_TIME)\n}\nfunc (q *QueueMgr) Add(player *QueuePlayer) bool {\n\tdefer util.PrintPanicStack()\n\n\tplayer.battleInfo = new(db.MsgBattleRoomInfo)\n\tjson.Unmarshal(player.RoomInfo, player.battleInfo)\n\n\tif _, ok := q.waitPlayers[player.Uid]; ok {\n\t\treturn false\n\t}\n\tq.waitPlayers[player.Uid] = player\n\tqueue := q.GetQueue(player.Rtype)\n\tqueue.Append(player)\n\treturn true\n}\n\nfunc (q *QueueMgr) GetQueue(battletype int32) *list.List {\n\tvar queue *list.List\n\tif ql, ok := q.queues[battletype]; !ok {\n\t\tqueue = list.New()\n\t\tq.queues[battletype] = queue\n\t} else {\n\t\tqueue = ql\n\t}\n\treturn queue\n}\n\nfunc (q *QueueMgr) Remove(uid uint64) {\n\tif p, ok := q.waitPlayers[uid]; ok {\n\t\tdelete(q.waitPlayers, uid)\n\t\tlist := q.GetQueue(p.Rtype)\n\t\tlist.RemoveRule(func(o interface{}) bool {\n\t\t\treturn o.(*QueuePlayer).Uid == uid\n\t\t})\n\t}\n}\n\nfunc (q *QueueMgr) Match() {\n\tif len(q.waitPlayers) < 1 {\n\t\treturn\n\t}\n\n\tif !CheckBattleServer() {\n\t\tlog.Error(\"Match没有可用battleServer\")\n\t\treturn\n\t}\n\tfor k, list := range q.queues {\n\t\tq.MatchQueue(k, list)\n\t}\n}\n\ntype ReadyPair struct {\n\tplayer *QueuePlayer\n}\n\nfunc (q *QueueMgr) MatchQueue(battleType int32, l *list.List) {\n\tlog.Info(\"match%d:%d\", battleType, l.Count())\n\n\tplist := l.MatchPairList(func(o1, o2 interface{}) bool {\n\t\t//if battleType == BATTLE_PVP {\n\t\tif q.matchFuncStair(o1.(*QueuePlayer), o2.(*QueuePlayer)) {\n\t\t\treturn true\n\t\t}\n\t\t// } else if battleType == BATTLE_ARENA {\n\t\t// \tif q.matchFuncArena(o1.(*QueuePlayer), o2.(*QueuePlayer)) {\n\t\t// \t\treturn true\n\t\t// \t}\n\t\t// }\n\n\t\treturn false\n\t})\n\tif len(plist) > 0 {\n\t\tfor _, pair := range plist {\n\t\t\t//匹配一对\n\t\t\tq.finishFunc(battleType, pair.I1.(*QueuePlayer), pair.I2.(*QueuePlayer))\n\t\t\t//移除一对\n\t\t\tl.RemoveEquel(pair.I1)\n\t\t\tl.RemoveEquel(pair.I2)\n\t\t\tdelete(q.waitPlayers, pair.I1.(*QueuePlayer).Uid)\n\t\t\tdelete(q.waitPlayers, pair.I2.(*QueuePlayer).Uid)\n\t\t\tlog.Info(\"match ok,%d:%v\", pair.I1.(*QueuePlayer).Uid, pair.I2.(*QueuePlayer).Uid)\n\t\t}\n\t}\n\n\t//>>>>>>>>>>>>>>>超时匹配AI<<<<<<<<<<<<<<<<\n\tif battleType != BATTLE_ARENA {\n\t\tvar tmpl []*QueuePlayer\n\t\tl.Each(func(node interface{}) {\n\t\t\tq := node.(*QueuePlayer)\n\t\t\t//info := GDataManager.StairPlayerMap[q.battleInfo.Stair] //表里有的才给机器人\n\t\t\tlog.Info(\"-----uid:%v, aiNum:%v,maxNum:%v\", q.Uid, q.JoinBattleQueue.AiNum, PVP_AI_MAX)\n\t\t\t// if info != nil {\n\t\t\t// \tif q.matchNum > info.WaitTime/PVP_WAIT_TIME {\n\t\t\t// \t\t//准备匹配ai\n\t\t\t// \t\ttmpl = append(tmpl, q)\n\t\t\t// \t\t//log.Info(\" uid:%v, PvpMatchNum:%v, stair:%v, targetNum:%v\", q.Uid, q.matchNum, q.battleInfo.Stair, info.WaitTime/PVP_WAIT_TIME)\n\t\t\t// \t} else {\n\t\t\t// \t\t//增加计数\n\t\t\t// \t\tq.matchNum++\n\t\t\t// \t\tif q.matchNum > PVP_STAIR_MATCH {\n\t\t\t// \t\t\tq.matchNum = PVP_STAIR_MATCH\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// }\n\t\t})\n\n\t\tfor _, p := range tmpl {\n\t\t\tlog.Info(\"pvp vs ai:\", p.Uid)\n\t\t\t//匹配一对,机器人数据到battle创建\n\t\t\tq.finishFunc(battleType, p, nil)\n\t\t\t//清理\n\t\t\tl.RemoveRule(func(o interface{}) bool {\n\t\t\t\treturn o == p\n\t\t\t})\n\t\t\tdelete(q.waitPlayers, p.Uid)\n\t\t}\n\n\t} else {\n\t\t//增加计数\n\t\tl.Each(func(node interface{}) {\n\t\t\tq := node.(*QueuePlayer)\n\t\t\tq.matchNum++\n\t\t})\n\t}\n\n}\n\n//匹配规则\nfunc (q *QueueMgr) matchFuncStair(p1, p2 *QueuePlayer) bool {\n\t// if needAI != 0 and NEED_AI:\n\t// continue\n\t// if not IS_MEET_DEBUG and (self.lastStairOppUid.get(uid, 0) == oppUid or self.lastStairOppUid.get(oppUid, 0) == uid):\n\t// continue\n\n\t//var winScore int32\n\t//var oppWinScore int32\n\t//_ = winScore\n\t//_ = oppWinScore\\\n\n\toffset := util.Abs32(p1.battleInfo.Score - p2.battleInfo.Score)\n\tif p1.battleInfo.StairScore != 0 {\n\t\tif p1.matchNum <= 60/PVP_WAIT_TIME {\n\t\t\tif p2.battleInfo.StairScore == 0 {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tscore := util.I32Max(util.I32Max(p1.battleInfo.StairScore, p2.battleInfo.StairScore)/10, 200) * p1.matchNum\n\n\t\tif p1.matchNum <= 40/PVP_WAIT_TIME {\n\t\t\tif offset > score {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif p1.matchNum > 60/PVP_WAIT_TIME {\n\t\t\tif p2.battleInfo.StairScore == 0 && offset > p1.matchNum*PVP_STAIR_MATCH_SCORE {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t//匹配成功\n\t\t// fscore := float64(p1.battleInfo.StairScore)\n\t\t// tscore := float64(p2.battleInfo.StairScore)\n\t\t// if p2.battleInfo.StairScore == 0 {\n\t\t// \ta := ((1000-fscore)*0.5)/math.Max(1000+fscore, 2000) + 0.5\n\t\t// \twinScore = 8 + int32(a*14)\n\t\t// } else {\n\t\t// \ta := (tscore-fscore)*0.5/math.Max(tscore+fscore, 2000) + 0.5\n\t\t// \tb := (fscore-tscore)*0.5/math.Max(tscore+fscore, 2000) + 0.5\n\t\t// \twinScore = 8 + int32(a*14)\n\t\t// \toppWinScore = 8 + int32(b*14)\n\t\t// }\n\n\t} else {\n\t\t//使用净胜场匹配\n\t\tif p2.battleInfo.StairScore != 0 {\n\t\t\treturn false\n\t\t}\n\n\t\tif offset > p1.matchNum*PVP_STAIR_MATCH_SCORE {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\nfunc (q *QueueMgr) matchFuncArena(p1, p2 *QueuePlayer) bool {\n\n\toffset := util.Abs32(p1.battleInfo.Score - p2.battleInfo.Score)\n\tlog.Info(\"matchFuncArena:id=%d,score=%d,ts=%d,num=%d\", p1.Uid, p1.battleInfo.Score, p2.battleInfo.Score, p1.matchNum)\n\tif offset > p1.matchNum*PVP_ARENA_MATCH_SCORE {\n\t\treturn false\n\t}\n\n\treturn true\n}\n"
  },
  {
    "path": "server/src/Server/lobby/servermgr.go",
    "content": "package lobby\n\nimport (\n\t_ \"Server/config\"\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n\t\"github.com/magicsea/ganet/log\"\n\t_ \"time\"\n\n\t\"Server/cluster\"\n\t\"Server/db\"\n\t\"gameproto/msgs\"\n\t\"strconv\"\n)\n\n//var redclient *redis.Client\n\n//服务器承载\nconst ServerFullNum = 1000\n\n/*\nfunc Init() bool {\n\n\tredclient = redis.NewClient(&redis.Options{\n\t\tAddr:         config.GetAppConf().Redis.Addr, //\":6379\",\n\t\tDialTimeout:  10 * time.Second,\n\t\tReadTimeout:  30 * time.Second,\n\t\tWriteTimeout: 30 * time.Second,\n\t\tPoolSize:     config.GetAppConf().Redis.PoolSize, //10,\n\t\tPoolTimeout:  30 * time.Second,\n\t\tDB:           1,\n\t})\n\t//redclient.Set(\"key\", \"v111\", 0)\n\treturn true\n}\n*/\n\nfunc CheckBattleServer() bool {\n\tallkeys, err := db.GetRedisBattleLoad().Keys(\"*\").Result()\n\tif err != nil {\n\t\tlog.Error(\"CheckBattleServer error:%v\", err)\n\t\treturn false\n\t}\n\n\tif len(allkeys) < 1 {\n\t\treturn false\n\t}\n\n\tfor _, key := range allkeys {\n\t\tres, err := db.GetRedisBattleLoad().Get(key).Result()\n\t\t//log.Info(\"readkey:%v,%v\", key, res)\n\t\tif err != nil {\n\t\t\tlog.Error(\"CheckBattleServer error:%v\", err)\n\t\t\treturn false\n\t\t}\n\t\tcount, _ := strconv.Atoi(res)\n\t\tif count < ServerFullNum {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\nfunc GetBattleServers() (map[string]int32, error) {\n\treturn nil, nil\n}\n\n//todo:get 次数太多，需要优化\nfunc GetBestServer() (pid *actor.PID, errorCode msgs.GAErrorCode) {\n\n\tresult, err := cluster.GetServicePID(\"center\").Ask(&msgs.ApplyService{\"battle\"})\n\tif err != nil {\n\t\tlog.Error(\"get battle server error:%v\", err)\n\t\treturn nil, msgs.Error\n\t}\n\tsr := result.(*msgs.ApplyServiceResult)\n\tif sr.Result != msgs.OK {\n\t\tlog.Error(\"get battle server fail:%v\", sr.Result)\n\t\treturn nil, msgs.Error\n\t}\n\n\treturn sr.GetPid(), msgs.OK\n}\n"
  },
  {
    "path": "server/src/Server/login/loginserver.go",
    "content": "package login\n\nimport (\n\t\"Server/cluster\"\n\t\"errors\"\n\t\"fmt\"\n\t\"gameproto/msgs\"\n\t\"github.com/magicsea/ganet/config\"\n\t\"github.com/magicsea/ganet/log\"\n\t\"github.com/magicsea/ganet/service\"\n\t\"net/http\"\n\n\t\"Server/db\"\n\t\"gameproto\"\n\n\t\"strconv\"\n\n\t\"time\"\n\n\t\"github.com/magicsea/ganet/proto\"\n\t//\"Server/config\"\n)\n\ntype LoginService struct {\n\tservice.ServiceData\n}\n\n//Service 获取服务对象\nfunc Service() service.IService {\n\treturn new(LoginService)\n}\n\nfunc Type() string {\n\treturn \"login\"\n}\n\n//以下为接口函数\nfunc (s *LoginService) OnReceive(context service.Context) {\n\tfmt.Println(\"center.OnReceive:\", context.Message())\n}\nfunc (s *LoginService) OnInit() {\n\n}\n\nfunc (s *LoginService) OnStart(as *service.ActorService) {\n\t//as.RegisterMsg(reflect.TypeOf(&messages.UserLogin{}), s.OnUserLogin) //注册登录\n\n\t//开启rpc,任意端口\n\t//remote.Start(\"127.0.0.1:0\")\n\t//cluster.Start(&cluster.ClusterConfig{\"127.0.0.1:8090\", \"127.0.0.1:8091\"})\n\n\tgo func() {\n\t\t//开启http服务\n\t\thttp.HandleFunc(\"/login\", login)\n\t\thttp.HandleFunc(\"/regist\", regist)\n\t\thttpAddr := config.GetServiceConfigString(s.Name, \"httpAddr\")\n\t\tlog.Info(\"login listen http:\", s.Name, \"  \", httpAddr)\n\t\thttp.ListenAndServe(httpAddr, nil)\n\t}()\n\n}\n\nfunc doCreateAcc(acc,pwd string)  error {\n\tlog.Info(\"doCreateAcc:%s,%s\",acc,pwd)\n\tif len(acc) < 1 || len(pwd) < 1 {\n\t\treturn errors.New(fmt.Sprintf(\"账号密码都不能为空\"))\n\t}\n\n\tkey := \"User:nameindex:\" + acc\n\tr := db.GetRedisGame().Get(key).Val()\n\t// if err1!=nil {\n\t// \tregistBackError(w,\"数据插入,获取索引出错\",err1)\n\t// \treturn;\n\t// }\n\tif len(r) > 0 {\n\t\treturn errors.New(fmt.Sprintf(\"已经存在的账号\"))\n\t}\n\n\t//插入\n\tgamedb := db.GetRedisGame()\n\tid, err2 := gamedb.Incr(\"User:Id\").Result()\n\tif err2 != nil {\n\t\treturn errors.New(fmt.Sprintf(\"数据插入id出错 %v\", err2))\n\t}\n\n\tvar user = &db.User{Id: id, Account: acc, Password: pwd, RegisterTime: time.Now().Unix()}\n\tif err := db.SetRedisObject(user, id, gamedb); err != nil {\n\t\treturn errors.New(fmt.Sprintf(\"数据插入出错 %v\", err))\n\t}\n\n\t//设置索引\n\tif err:=db.GetRedisGame().Set(key, id, 0);err!=nil {\n\t\treturn nil\n\t}\n\n\n\treturn nil\n}\n\n//注册\nfunc regist(w http.ResponseWriter, req *http.Request) {\n\tw.Header().Set(\"Access-Control-Allow-Origin\", \"*\")\n\treq.ParseForm()\n\tif req.Form[\"a\"] == nil || req.Form[\"p\"] == nil {\n\t\tlog.Error(\"a,p is empty:\", req.Form)\n\t\treturn\n\t}\n\t//账号\n\tacc := \"\"\n\tif al, ok := req.Form[\"a\"]; ok {\n\t\tacc = al[0]\n\t}\n\t//密码\n\tpwd := \"\"\n\tif al, ok := req.Form[\"p\"]; ok {\n\t\tpwd = al[0]\n\t}\n\n\tlog.Info(\"reg account:acc=%s,pwd=%s\", acc, pwd)\n\tif err:= doCreateAcc(acc,pwd);err!=nil {\n\t\tregistBackError(w, err.Error(), err)\n\t}\n\tw.Write([]byte(\"success\"))\n}\n\nfunc registBackError(w http.ResponseWriter, val string, e error) {\n\tlog.Error(\"create user db error:%s,%v\", val, e)\n\tw.Write([]byte(val))\n}\n\n//账号是否自动创建\nconst autoCreateAccount = true\n\n//登录\nfunc login(w http.ResponseWriter, req *http.Request) {\n\tw.Header().Set(\"Access-Control-Allow-Origin\", \"*\")\n\treq.ParseForm()\n\tif req.Form[\"a\"] == nil || req.Form[\"p\"] == nil {\n\t\tlog.Error(\"a,p is empty:\", req.Form)\n\t\treturn\n\t}\n\t//账号\n\tacc := \"\"\n\tif al, ok := req.Form[\"a\"]; ok {\n\t\tacc = al[0]\n\t}\n\n\tpwd := \"\"\n\tif pl, ok := req.Form[\"p\"]; ok {\n\t\tpwd = pl[0]\n\t}\n\n\t//协议，默认pb，否则json\n\t// proto:=\"pb\"\n\t// if al, ok := req.Form[\"proto\"]; ok {\n\t// \tproto = al[0]\n\t// }\n\n\t//验证 here...\n\tlog.Info(\"login account:acc=%s,pwd=%s\", acc, pwd)\n\tgamedb := db.GetRedisGame()\n\t//索引\n\tkey := \"User:nameindex:\" + acc\n\tr, err := db.GetRedisGame().Get(key).Result()\n\tif err != nil {\n\t\tif autoCreateAccount {\n\t\t\tcreateErr := doCreateAcc(acc,pwd)\n\t\t\tif createErr!=nil {\n\t\t\t\tloginBackError(w, \"auto create error:\"+key, err)\n\t\t\t\treturn\n\t\t\t}\n\t\t\t//query again\n\t\t\tr, err = db.GetRedisGame().Get(key).Result()\n\t\t} else {\n\t\t\tloginBackError(w, \"get username error:\"+key, err)\n\t\t\treturn\n\t\t}\n\t}\n\tif len(r) < 1 {\n\t\tloginBackError(w, \"username not exist:\"+key, nil)\n\t\treturn\n\t}\n\n\t//账号密码\n\tnow := time.Now().Unix()\n\tuser := &db.User{}\n\tfound, e := db.GetRedisObject(user, r, gamedb)\n\tif e != nil && !found {\n\t\tloginBackError(w, \"not found user:\"+r, e)\n\t\treturn\n\t}\n\n\t//调试先不验证\n\t//if user.Password != pwd {\n\t//\tloginBackError(w, \"password error:\"+user.Password+\"!=\"+pwd, nil)\n\t//\treturn\n\t//}\n\n\t//保存\n\tdb.SetRedisObjectField(user, r, gamedb, \"LastLoginTime\", now)\n\tid, _ := strconv.Atoi(r)\n\n\t//保存token\n\n\tresp, err := onUserLogin(uint64(id))\n\tif err == nil {\n\t\tvar s, _ = proto.Marshal(resp)\n\t\tw.Write(s)\n\t\tlog.Info(\"login ok:msg=%+v\", resp)\n\t} else {\n\t\tloginBackError(w, \"login error\", err)\n\t\tlog.Info(\"login error:\", acc, err)\n\t}\n}\n\n//玩家登陆\nfunc onUserLogin(id uint64) (*gameproto.UserLoginResult, error) {\n\t//请求gate\n\tresult, err := cluster.GetServicePID(\"center\").Ask(&msgs.ApplyService{\"gate\"})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tsr := result.(*msgs.ApplyServiceResult)\n\tif sr.Result != msgs.OK {\n\t\treturn &gameproto.UserLoginResult{Result: int32(sr.Result)}, nil\n\t}\n\n\t//加入数据\n\tkey := \"1111\"\n\t//uInfo := &msgs.UserBaseInfo{msg.Account, \"玩家\" + strconv.Itoa(int(msg.Uid)), msg.Uid}\n\t//ss := &PlayerSession{userInfo: uInfo, gatePid: sr.Pid, key: \"1111\"}\n\t//s.sessionMgr.AddSession(ss)\n\t//s.unlogiinDataMgr.Push(msg.Uid, key, nil)\n\ttokenkey := fmt.Sprintf(\"UserToken:%v_%v\", id, key)\n\tdb.GetRedisGame().Set(tokenkey, key, time.Second*30)\n\n\tgateAddr := GetServiceValue(\"TcpAddr\", sr.Values)\n\tgateWsAddr := GetServiceValue(\"WsAddr\", sr.Values)\n\treturn &gameproto.UserLoginResult{Uid: uint32(id), GateTcpAddr: gateAddr, GateWsAddr: gateWsAddr, Key: key, Result: int32(msgs.OK)}, nil\n}\n\nfunc GetServiceValue(key string, values []*msgs.ServiceValue) string {\n\tfor _, v := range values {\n\t\tif v.Key == key {\n\t\t\treturn v.Value\n\t\t}\n\t}\n\treturn \"\"\n}\n\nfunc loginBackError(w http.ResponseWriter, info string, e error) {\n\tlog.Error(\"login user db fail:%v,%v\", info, e)\n\tvar m = &gameproto.UserLoginResult{Result: int32(msgs.Error)}\n\td, _ := proto.Marshal(m)\n\tw.Write(d)\n}\n"
  },
  {
    "path": "server/src/Server/server/server.go",
    "content": "package main\n\nimport (\n\t\"Server/battle\"\n\t\"Server/center\"\n\t\"Server/cluster\"\n\t\"Server/config\"\n\t\"Server/db\"\n\t\"Server/game\"\n\t\"Server/gate\"\n\t\"Server/lobby\"\n\t\"Server/login\"\n\t\"Server/session\"\n\t\"flag\"\n\t\"github.com/magicsea/ganet/app\"\n\t//gp \"github.com/magicsea/ganet/proto\"\n\t\"log\"\n)\n\nvar (\n\tconfPath = flag.String(\"config\", \"config.json\", \"配置文件\")\n)\n\nfunc main() {\n\tflag.Parse()\n\tconf, err := config.LoadConfig(*confPath)\n\tif err != nil {\n\t\tlog.Println(\"load config err:\", err)\n\t\treturn\n\t}\n\tlogo := `\n\t██████╗  █████╗ ███╗   ██╗███████╗████████╗\n\t██╔════╝ ██╔══██╗████╗  ██║██╔════╝╚══██╔══╝\n\t██║  ███╗███████║██╔██╗ ██║█████╗     ██║   \n\t██║   ██║██╔══██║██║╚██╗██║██╔══╝     ██║   \n\t╚██████╔╝██║  ██║██║ ╚████║███████╗   ██║   \n\t ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═══╝╚══════╝   ╚═╝   \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t`\n\tlog.Println(logo + \"ver.\" + conf.Ver)\n\t//gp.SetProtoType(\"pb\")//消息体使用protobuf，默认json\n\tapp.RegisterService(center.Type(), center.Service)\n\tapp.RegisterService(session.Type(), session.Service)\n\tapp.RegisterService(login.Type(), login.Service)\n\tapp.RegisterService(gate.Type(), gate.Service)\n\tapp.RegisterService(game.Type(), game.Service)\n\tapp.RegisterService(lobby.Type(), lobby.Service)\n\tapp.RegisterService(battle.Type(), battle.Service)\n\tlog.Println(\"================Run================\")\n\tapp.Run(&conf.Base, cluster.New(), db.NewRedisMgr()) //db.NewMgr()\n\tlog.Println(\"================GameOver================\")\n}\n"
  },
  {
    "path": "server/src/Server/session/playerSession.go",
    "content": "package session\n\nimport (\n\t\"gameproto/msgs\"\n\n\t\"github.com/AsynkronIT/protoactor-go/actor\"\n)\n\ntype PlayerSession struct {\n\tuserInfo      *msgs.UserBaseInfo\n\tgatePid       *actor.PID //gate服地址\n\tagentPid      *actor.PID //agent对象地址\n\tgamePlayerPid *actor.PID //player对象地址\n\n\tkey string //动态生成密码\n}\n\n//踢下线\nfunc (p *PlayerSession) Kick(reason string, ignServer msgs.ServerType) {\n\tmsg := &msgs.Kick{Uid: p.userInfo.Uid, Reason: reason}\n\tif ignServer != msgs.ST_GateServer && p.agentPid != nil {\n\t\tp.agentPid.Tell(msg)\n\t}\n\tif ignServer != msgs.ST_GameServer && p.gamePlayerPid != nil {\n\t\tp.gamePlayerPid.Tell(msg)\n\t}\n}\n"
  },
  {
    "path": "server/src/Server/session/sessionManager.go",
    "content": "package session\n\ntype SessionManager struct {\n\tplayers      map[uint64]*PlayerSession\n\tname2players map[string]*PlayerSession //名字索引\n}\n\nfunc NewSessionManager() *SessionManager {\n\tsm := new(SessionManager)\n\tsm.players = make(map[uint64]*PlayerSession)\n\tsm.name2players = make(map[string]*PlayerSession)\n\treturn sm\n}\n\nfunc (mgr *SessionManager) AddSession(session *PlayerSession) {\n\tmgr.players[session.userInfo.Uid] = session\n\tmgr.name2players[session.userInfo.Name] = session\n}\n\nfunc (mgr *SessionManager) GetSession(uid uint64) *PlayerSession {\n\treturn mgr.players[uid]\n}\nfunc (mgr *SessionManager) GetSessionByName(name string) *PlayerSession {\n\treturn mgr.name2players[name]\n}\nfunc (mgr *SessionManager) RemoveSession(uid uint64) *PlayerSession {\n\tss := mgr.GetSession(uid)\n\tdelete(mgr.players, uid)\n\tif ss != nil {\n\t\tdelete(mgr.name2players, ss.userInfo.Name)\n\t}\n\treturn ss\n}\n"
  },
  {
    "path": "server/src/Server/session/session_test.go",
    "content": "package session\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestUnloginData(t *testing.T) {\n\tmgr := NewUnloginDataMgr(time.Second * 3)\n\tmgr.Push(1, \"1\")\n\ttime.Sleep(time.Second)\n\tmgr.Push(2, \"2\")\n\ttime.Sleep(time.Second)\n\tmgr.Push(3, \"3\")\n\tmgr.Push(4, \"4\")\n\tfor index := 0; index < 5; index++ {\n\t\tmgr.Tick(time.Now())\n\t\ttime.Sleep(time.Second)\n\t\tfmt.Printf(\"run %d,len=%d\\n\", index, mgr.q.Len())\n\t}\n}\n"
  },
  {
    "path": "server/src/Server/session/sessionserver.go",
    "content": "package session\n\nimport (\n\t//\"Server/cluster\"\n\t\"fmt\"\n\t//\"gameproto\"\n\t\"gameproto/msgs\"\n\t\"github.com/magicsea/ganet/log\"\n\t\"github.com/magicsea/ganet/service\"\n\t\"reflect\"\n\t_ \"time\"\n)\n\ntype SessionService struct {\n\tservice.ServiceData\n\t//unlogiinDataMgr *UnloginDataMgr\n\tsessionMgr *SessionManager\n}\n\n//Service 获取服务对象\nfunc Service() service.IService {\n\treturn new(SessionService)\n}\n\nfunc Type() string {\n\treturn \"session\"\n}\n\n//以下为接口函数\nfunc (s *SessionService) OnReceive(context service.Context) {\n\tfmt.Println(\"session.OnReceive:\", context.Message())\n}\n\nfunc (s *SessionService) OnInit() {\n\ts.sessionMgr = NewSessionManager()\n\t//s.unlogiinDataMgr = NewUnloginDataMgr(time.Second * 3)\n}\n\nfunc (s *SessionService) OnStart(as *service.ActorService) {\n\t//as.RegisterMsg(reflect.TypeOf(&msgs.UserLogin{}), s.OnUserLogin) //注册登录\n\t//as.RegisterMsg(reflect.TypeOf(&msgs.ServerCheckLogin{}), s.OnUserCheckLogin)         //二次验证\n\tas.RegisterMsg(reflect.TypeOf(&msgs.CreatePlayerResult{}), s.OnUserCheckLoginGsBack) //二次验证gs返回\n\tas.RegisterMsg(reflect.TypeOf(&msgs.GetSessionInfo{}), s.GetSessionInfo)             //查询玩家信息\n\tas.RegisterMsg(reflect.TypeOf(&msgs.GetSessionInfoByName{}), s.GetSessionInfoByName) //查询玩家信息通过名字\n\tas.RegisterMsg(reflect.TypeOf(&msgs.UserLeave{}), s.OnUserLeave)                     //玩家掉线\n\tlog.Debug(\"session OnStart ok!!\")\n}\n\n//查询玩家信息\nfunc (s *SessionService) GetSessionInfo(context service.Context) {\n\tfmt.Println(\"SessionService.GetSessionInfo:\", context.Message())\n\tmsg := context.Message().(*msgs.GetSessionInfo)\n\tss := s.sessionMgr.GetSession(msg.Uid)\n\tif ss != nil {\n\t\tcontext.Send(context.Sender(), &msgs.GetSessionInfoResult{Result: msgs.OK, UserInfo: ss.userInfo, AgentPID: ss.agentPid})\n\t} else {\n\t\tcontext.Send(context.Sender(), &msgs.GetSessionInfoResult{Result: msgs.Fail})\n\t}\n}\n\n//查询玩家信息 by name\nfunc (s *SessionService) GetSessionInfoByName(context service.Context) {\n\tfmt.Println(\"SessionService.GetSessionInfoByName:\", context.Message())\n\tmsg := context.Message().(*msgs.GetSessionInfoByName)\n\tss := s.sessionMgr.GetSessionByName(msg.Name)\n\tif ss != nil {\n\t\tcontext.Send(context.Sender(), &msgs.GetSessionInfoResult{Result: msgs.OK, UserInfo: ss.userInfo, AgentPID: ss.agentPid})\n\t} else {\n\t\tcontext.Send(context.Sender(), &msgs.GetSessionInfoResult{Result: msgs.Fail})\n\t}\n\tfmt.Println(\"GetSessionInfoByName end\")\n}\n\n//玩家登陆\n// func (s *SessionService) OnUserLogin(context service.Context) {\n// \tfmt.Println(\"SessionService.OnUserLogin:\", context.Message())\n// \tmsg := context.Message().(*msgs.UserLogin)\n\n// \t//踢掉老玩家\n// \toldSession := s.sessionMgr.GetSession(msg.Uid)\n// \tif oldSession != nil {\n// \t\toldSession.Kick(\"try kick same\", msgs.ST_NONE)\n// \t\ts.sessionMgr.RemoveSession(msg.Uid)\n// \t}\n\n// \t//查看是否多次验证\n// \toldCheck := s.unlogiinDataMgr.Get(msg.Uid)\n// \tif oldCheck != nil {\n// \t\ts.unlogiinDataMgr.Remove(oldCheck)\n// \t}\n\n// \t//请求gate\n// \tresult, err := cluster.GetServicePID(\"center\").Ask(&msgs.ApplyService{\"gate\"})\n// \tif err != nil {\n// \t\tlog.Error(\"get gate server,%v\", err)\n// \t\tcontext.Tell(context.Sender(), &gameproto.UserLoginResult{Result: int32(msgs.Error)})\n// \t\treturn\n// \t}\n\n// \tsr := result.(*msgs.ApplyServiceResult)\n// \tif sr.Result != msgs.OK {\n// \t\tcontext.Tell(context.Sender(), &gameproto.UserLoginResult{Result: int32(sr.Result)})\n// \t\treturn\n// \t}\n\n// \t//加入数据\n// \tkey := \"1111\"\n// \t//uInfo := &msgs.UserBaseInfo{msg.Account, \"玩家\" + strconv.Itoa(int(msg.Uid)), msg.Uid}\n// \t//ss := &PlayerSession{userInfo: uInfo, gatePid: sr.Pid, key: \"1111\"}\n// \t//s.sessionMgr.AddSession(ss)\n// \t//s.unlogiinDataMgr.Push(msg.Uid, key, nil)\n\n// \tgateAddr := GetServiceValue(\"TcpAddr\", sr.Values)\n// \tgateWsAddr := GetServiceValue(\"WsAddr\", sr.Values)\n// \tcontext.Tell(context.Sender(), &gameproto.UserLoginResult{Uid: uint32(msg.Uid), GateTcpAddr: gateAddr, GateWsAddr: gateWsAddr, Key: key, Result: int32(msgs.OK)})\n// }\n\nfunc GetServiceValue(key string, values []*msgs.ServiceValue) string {\n\tfor _, v := range values {\n\t\tif v.Key == key {\n\t\t\treturn v.Value\n\t\t}\n\t}\n\treturn \"\"\n}\n\n//玩家验证\n// func (s *SessionService) OnUserCheckLogin(context service.Context) {\n// \tfmt.Println(\"SessionService.OnUserCheckLogin:\", context.Message())\n// \tmsg := context.Message().(*msgs.ServerCheckLogin)\n\n// \tcheckData := s.unlogiinDataMgr.Get(msg.Uid)\n// \t//人不在\n// \tif checkData == nil {\n// \t\tlog.Error(\"OnUserCheckLogin,no found player,id=%v,count=%d\", msg.Uid, len(s.unlogiinDataMgr.dataMap))\n// \t\tcontext.Tell(context.Sender(), &msgs.CheckLoginResult{Result: msgs.Fail})\n// \t\treturn\n// \t}\n// \ts.unlogiinDataMgr.Remove(checkData)\n// \t//密码错\n// \tif checkData.key != msg.Key {\n// \t\tlog.Error(\"OnUserCheckLogin,key error,id=%v,key=%v:%v\", msg.Uid, checkData.key, msg.Key)\n// \t\tcontext.Tell(context.Sender(), &msgs.CheckLoginResult{Result: msgs.KeyError})\n// \t\treturn\n// \t}\n// \t//请求gameserver\n// \tresult, err := cluster.GetServicePID(\"center\").Ask(&msgs.ApplyService{\"game\"})\n// \tif err != nil {\n// \t\tlog.Error(\"get gameserver error:%v\", err)\n// \t\tcontext.Tell(context.Sender(), &msgs.CheckLoginResult{Result: msgs.Error})\n// \t\treturn\n// \t}\n\n// \tsr := result.(*msgs.ApplyServiceResult)\n// \tif sr.Result != msgs.OK {\n// \t\tcontext.Tell(context.Sender(), &msgs.CheckLoginResult{Result: sr.Result})\n// \t\treturn\n// \t}\n// \tgsPid := sr.Pid\n// \tcontext.Request(gsPid, &msgs.CreatePlayer{Uid: msg.Uid, AgentPID: msg.AgentPID, Sender: context.Sender(),\n// \t\tGatePID: nil, Key: \"1111\"})\n// \tlog.Info(\"SessionService.OnUserCheckLogin pre:\", msg.Uid)\n// }\n\nfunc (s *SessionService) OnUserCheckLoginGsBack(context service.Context) {\n\tfmt.Println(\"SessionService.OnUserCheckLogin:\", context.Message())\n\tcresult := context.Message().(*msgs.CreatePlayerResult)\n\n\t//踢掉老玩家\n\tid := cresult.BaseInfo.Uid\n\toldSession := s.sessionMgr.GetSession(id)\n\tif oldSession != nil {\n\t\toldSession.Kick(\"try kick same\", msgs.ST_NONE)\n\t\ts.sessionMgr.RemoveSession(id)\n\t}\n\n\t//新角色\n\t// id := cresult.TransData.Uid\n\t// sender := cresult.TransData.Sender\n\t// if cresult.Result != msgs.OK {\n\t// \tlog.Error(\"OnUserCheckLogin,create player fail,id=%v,%v\", id, cresult.Result)\n\t// \tcontext.Tell(sender, &msgs.CheckLoginResult{Result: msgs.Error})\n\t// \treturn\n\t// }\n\t//完成\n\n\t//uInfo := &msgs.UserBaseInfo{\"\", \"玩家\" + strconv.Itoa(int(msg.Uid)), msg.Uid}\n\tss := &PlayerSession{userInfo: cresult.BaseInfo, gatePid: cresult.TransData.GatePID, key: cresult.TransData.Key}\n\ts.sessionMgr.AddSession(ss)\n\tss.agentPid = cresult.TransData.AgentPID\n\tss.gamePlayerPid = cresult.PlayerPID\n\n\t//发送消息\n\t// gsValue := msgs.UserBindServer{msgs.GameServer, cresult.GetPlayerPID()}\n\t// bsValue := msgs.UserBindServer{msgs.BattleServer, cresult.GetRoomPID()}\n\t// context.Tell(sender, &msgs.CheckLoginResult{\n\t// \tResult:      msgs.OK,\n\t// \tBaseInfo:    ss.userInfo,\n\t// \tBindServers: []*msgs.UserBindServer{&gsValue, &bsValue}})\n\n\tlog.Info(\"SessionService.OnUserCheckLogin ok:\", id)\n}\n\n//离线\nfunc (s *SessionService) OnUserLeave(context service.Context) {\n\tfmt.Println(\"SessionService.OnUserLeave:\", context.Message())\n\tmsg := context.Message().(*msgs.UserLeave)\n\t//内存移除\n\tss := s.sessionMgr.RemoveSession(msg.Uid)\n\t//踢人\n\tif ss != nil {\n\t\tss.Kick(msg.Reason, msg.From)\n\t}\n}\n"
  },
  {
    "path": "server/src/comm/go.mod",
    "content": "module comm\n\ngo 1.13\n\nrequire gameproto v0.0.0-00010101000000-000000000000\n\nreplace gameproto => ../gameproto\n"
  },
  {
    "path": "server/src/comm/go.sum",
    "content": "cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.36.0/go.mod h1:RUoy9p/M4ge0HzT8L+SDZ8jg+Q6fth0CiBuhFJpSV40=\ncloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=\ncloud.google.com/go v0.41.0/go.mod h1:OauMR7DV8fzvZIl2qg6rkaIhD/vmgk4iwEw/h6ercmg=\ncloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=\ncloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=\ncloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=\ncloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=\ncloud.google.com/go v0.48.0/go.mod h1:gGOnoa/XMQYHAscREBlbdHduGchEaP9N0//OXdrPI/M=\ncloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=\ncloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=\ncloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=\ncloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=\ncollectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE=\ndmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU=\ndmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=\ndmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU=\ndmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4=\ndmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU=\ngit.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=\ngithub.com/AsynkronIT/goconsole v0.0.0-20160504192649-bfa12eebf716/go.mod h1:2wH9LwjNrSqVmCIi35aqCJ0OGTE4DZ53LCRaGQESBp8=\ngithub.com/AsynkronIT/gonet v0.0.0-20161127091928-0553637be225/go.mod h1:RwIiSK8AJBCPP7hBBfXD1iferErYAmGbqv/Lu84ZFIA=\ngithub.com/AsynkronIT/protoactor-go v0.0.0-20200317173033-c483abfa40e2/go.mod h1:oA0usvSnxPdbRUKVDvMBUqFyWQdVes7Xfcg5QSLE87A=\ngithub.com/Azure/azure-sdk-for-go v16.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=\ngithub.com/Azure/azure-sdk-for-go v31.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=\ngithub.com/Azure/azure-sdk-for-go v36.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=\ngithub.com/Azure/go-autorest v10.7.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest v10.15.3+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest v11.1.2+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest v13.3.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=\ngithub.com/Azure/go-autorest/autorest v0.9.2/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=\ngithub.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=\ngithub.com/Azure/go-autorest/autorest/adal v0.6.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=\ngithub.com/Azure/go-autorest/autorest/adal v0.7.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=\ngithub.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=\ngithub.com/Azure/go-autorest/autorest/azure/auth v0.4.0/go.mod h1:Oo5cRhLvZteXzI2itUm5ziqsoIxRkzrt3t61FeZaS18=\ngithub.com/Azure/go-autorest/autorest/azure/cli v0.3.0/go.mod h1:rNYMNAefZMRowqCV0cVhr/YDW5dD7afFq9nXAXL4ykE=\ngithub.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=\ngithub.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g=\ngithub.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=\ngithub.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=\ngithub.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM=\ngithub.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc=\ngithub.com/Azure/go-autorest/autorest/to v0.3.0/go.mod h1:MgwOyqaIuKdG4TL/2ywSsIWKAfJfgHDo8ObuUk3t5sA=\ngithub.com/Azure/go-autorest/autorest/validation v0.2.0/go.mod h1:3EEqHnBxQGHXRYq3HT1WyXAvT7LLY3tl70hw6tQIbjI=\ngithub.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=\ngithub.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk=\ngithub.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=\ngithub.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=\ngithub.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=\ngithub.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=\ngithub.com/DataDog/zstd v1.3.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=\ngithub.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=\ngithub.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=\ngithub.com/Microsoft/go-winio v0.4.3/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=\ngithub.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=\ngithub.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=\ngithub.com/NYTimes/gziphandler v1.0.1/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=\ngithub.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=\ngithub.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=\ngithub.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=\ngithub.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=\ngithub.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=\ngithub.com/Shopify/sarama v1.21.0/go.mod h1:yuqtN/pe8cXRWG5zPaO7hCfNJp5MwmkoJEoLjkm5tCQ=\ngithub.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=\ngithub.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=\ngithub.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=\ngithub.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=\ngithub.com/Workiva/go-datastructures v1.0.50/go.mod h1:Z+F2Rca0qCsVYDS8z7bAGm8f3UkzuWYS/oBZz5a7VVA=\ngithub.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af/go.mod h1:5Jv4cbFiHJMsVxt52+i0Ha45fjshj6wxYr1r19tB9bw=\ngithub.com/aclements/go-gg v0.0.0-20170323211221-abd1f791f5ee/go.mod h1:55qNq4vcpkIuHowELi5C8e+1yUHtoLoOUR9QU5j7Tes=\ngithub.com/aclements/go-moremath v0.0.0-20190506201756-286cc0be6f75/go.mod h1:idZL3yvz4kzx1dsBOAC+oYv6L92P1oFEhUXUB1A/lwQ=\ngithub.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=\ngithub.com/ajg/form v0.0.0-20160822230020-523a5da1a92f/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=\ngithub.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=\ngithub.com/ajstarks/deck v0.0.0-20190526003814-edf08d731d5a/go.mod h1:j3f/59diR4DorW5A78eDYvRkdrkh+nps4p5LA1Tl05U=\ngithub.com/ajstarks/svgo v0.0.0-20181006003313-6ce6a3bcf6cd/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=\ngithub.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs=\ngithub.com/alecthomas/kingpin v2.2.6+incompatible/go.mod h1:59OFYbFVLKQKq+mqrL6Rw5bR0c3ACQaawgXx0QYndlE=\ngithub.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=\ngithub.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=\ngithub.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=\ngithub.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=\ngithub.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=\ngithub.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c=\ngithub.com/apache/arrow/go/arrow v0.0.0-20190426170622-338c62a2a205/go.mod h1:W8yIftLTH1FLJvxuZc4tFnIlZ2tWg7RCoJR1HcETAso=\ngithub.com/apache/arrow/go/arrow v0.0.0-20190626211233-e980b2024a28/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0=\ngithub.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=\ngithub.com/apex/log v1.1.0/go.mod h1:yA770aXIDQrhVOIGurT/pVdfCpSq1GQV/auzMN5fzvY=\ngithub.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy8kCu4PNA+aP7WUV72eXWJeP9/r3/K9aLE=\ngithub.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=\ngithub.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=\ngithub.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=\ngithub.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=\ngithub.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg=\ngithub.com/armon/go-metrics v0.3.0/go.mod h1:zXjbSimjXTd7vOpY8B0/2LpvNvDoXBuplAD+gJD3GYs=\ngithub.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=\ngithub.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=\ngithub.com/aws/aws-sdk-go v1.15.24/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0=\ngithub.com/aws/aws-sdk-go v1.15.64/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM=\ngithub.com/aws/aws-sdk-go v1.20.9/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=\ngithub.com/aws/aws-sdk-go v1.25.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=\ngithub.com/aws/aws-sdk-go v1.25.36/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=\ngithub.com/aws/aws-sdk-go-v2 v0.9.0/go.mod h1:sa1GePZ/LfBGI4dSq30f6uR4Tthll8axxtEPvlpXZ8U=\ngithub.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I=\ngithub.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=\ngithub.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=\ngithub.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=\ngithub.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=\ngithub.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU=\ngithub.com/blakesmith/ar v0.0.0-20150311145944-8bd4349a67f2/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI=\ngithub.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=\ngithub.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c=\ngithub.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=\ngithub.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=\ngithub.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g=\ngithub.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA=\ngithub.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34=\ngithub.com/caarlos0/ctrlc v1.0.0/go.mod h1:CdXpj4rmq0q/1Eb44M9zi2nKB0QraNKuRGYGrrHhcQw=\ngithub.com/cactus/go-statsd-client/statsd v0.0.0-20190501063751-9a7692639588/go.mod h1:3/sdo8I67TaOslRGJ6FqQC/ynu+wg7H6IE4WYtr51hk=\ngithub.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E=\ngithub.com/campoy/unique v0.0.0-20180121183637-88950e537e7e/go.mod h1:9IOqJGCPMSc6E5ydlp5NIonxObaeu/Iub/X03EKPVYo=\ngithub.com/casbin/casbin v1.8.3/go.mod h1:z8uPsfBJGUsnkagrt3G8QvjgTKFMBJ32UP8HpZllfog=\ngithub.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=\ngithub.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=\ngithub.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=\ngithub.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM=\ngithub.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=\ngithub.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ=\ngithub.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=\ngithub.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag=\ngithub.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=\ngithub.com/clbanning/x2j v0.0.0-20180326210544-5e605d46809c/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=\ngithub.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=\ngithub.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=\ngithub.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=\ngithub.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=\ngithub.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=\ngithub.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM=\ngithub.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0=\ngithub.com/coredns/coredns v1.1.2/go.mod h1:zASH/MVDgR6XZTbxvOnsZfffS+31vg6Ackf/wo1+AM0=\ngithub.com/coredns/coredns v1.6.5/go.mod h1:BvAJtEvf7XOlRB+4kj03JSkL0J1ntukFHiEdHWJA3xU=\ngithub.com/coredns/federation v0.0.0-20190818181423-e032b096babe/go.mod h1:MoqTEFX8GlnKkyq8eBCF94VzkNAOgjdlCJ+Pz/oCLPk=\ngithub.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=\ngithub.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=\ngithub.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=\ngithub.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=\ngithub.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=\ngithub.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=\ngithub.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=\ngithub.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20190212144455-93d5ec2c7f76/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20190620071333-e64a0ec8b42a/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=\ngithub.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=\ngithub.com/couchbase/gocb v1.5.2/go.mod h1:AtRhXLpjgHmkRgG3e0K9t41qnWFonb8iohS/u/TZzxM=\ngithub.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=\ngithub.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=\ngithub.com/cznic/cc v0.0.0-20181122101902-d673e9b70d4d/go.mod h1:m3fD/V+XTB35Kh9zw6dzjMY+We0Q7PMf6LLIC4vuG9k=\ngithub.com/cznic/fileutil v0.0.0-20181122101858-4d67cfea8c87/go.mod h1:8S58EK26zhXSxzv7NQFpnliaOQsmDUxvoQO3rt154Vg=\ngithub.com/cznic/golex v0.0.0-20181122101858-9c343928389c/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc=\ngithub.com/cznic/internal v0.0.0-20181122101858-3279554c546e/go.mod h1:olo7eAdKwJdXxb55TKGLiJ6xt1H0/tiiRCWKVLmtjY4=\ngithub.com/cznic/ir v0.0.0-20181122101859-da7ba2ecce8b/go.mod h1:bctvsSxTD8Lpaj5RRQ0OrAAu4+0mD4KognDQItBNMn0=\ngithub.com/cznic/lex v0.0.0-20181122101858-ce0fb5e9bb1b/go.mod h1:LcYbbl1tn/c31gGxe2EOWyzr7EaBcdQOoIVGvJMc7Dc=\ngithub.com/cznic/lexer v0.0.0-20181122101858-e884d4bd112e/go.mod h1:YNGh5qsZlhFHDfWBp/3DrJ37Uy4pRqlwxtL+LS7a/Qw=\ngithub.com/cznic/mathutil v0.0.0-20181122101859-297441e03548/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM=\ngithub.com/cznic/strutil v0.0.0-20181122101858-275e90344537/go.mod h1:AHHPPPXTw0h6pVabbcbyGRK1DckRn7r/STdZEeIDzZc=\ngithub.com/cznic/xc v0.0.0-20181122101856-45b06973881e/go.mod h1:3oFoiOvCDBYH+swwf5+k/woVmWy7h1Fcyu8Qig/jjX0=\ngithub.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg=\ngithub.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-xdr v0.0.0-20161123171359-e6a2ba005892/go.mod h1:CTDl0pzVzE5DEzZhPfvhY/9sPFMQIxaJ9VAMs9AagrE=\ngithub.com/denverdino/aliyungo v0.0.0-20170926055100-d3308649c661/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=\ngithub.com/denverdino/aliyungo v0.0.0-20191112021521-0e9f4c697da3/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=\ngithub.com/dgrijalva/jwt-go v0.0.0-20160705203006-01aeca54ebda/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=\ngithub.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=\ngithub.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ=\ngithub.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=\ngithub.com/digitalocean/godo v1.1.1/go.mod h1:h6faOIcZ8lWIwNQ+DN7b3CgX4Kwby5T+nbpNqkUIozU=\ngithub.com/digitalocean/godo v1.10.0/go.mod h1:h6faOIcZ8lWIwNQ+DN7b3CgX4Kwby5T+nbpNqkUIozU=\ngithub.com/digitalocean/godo v1.26.0/go.mod h1:iJnN9rVu6K5LioLxLimlq0uRI+y/eAQjROUmeU/r0hY=\ngithub.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8=\ngithub.com/disintegration/gift v1.2.0/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI=\ngithub.com/djherbis/buffer v1.0.0/go.mod h1:VwN8VdFkMY0DCALdY8o00d3IZ6Amz/UNVMWcSaJT44o=\ngithub.com/djherbis/nio v2.0.3+incompatible/go.mod h1:v74owXPROGWsr1y28T13rlXf5Hn/bWJ1bbX8M+BqyPo=\ngithub.com/dnaeon/go-vcr v0.0.0-20180814043457-aafff18a5cc2/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=\ngithub.com/dnstap/golang-dnstap v0.0.0-20170829151710-2cf77a2b5e11/go.mod h1:s1PfVYYVmTMgCSPtho4LKBDecEHJWtiVDPNv78Z985U=\ngithub.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=\ngithub.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=\ngithub.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=\ngithub.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=\ngithub.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=\ngithub.com/dustin/go-humanize v0.0.0-20180713052910-9f541cc9db5d/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=\ngithub.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=\ngithub.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=\ngithub.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=\ngithub.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=\ngithub.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=\ngithub.com/elazarl/go-bindata-assetfs v0.0.0-20160803192304-e1a2a7ec64b0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=\ngithub.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=\ngithub.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=\ngithub.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=\ngithub.com/emirpasic/gods v1.9.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=\ngithub.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=\ngithub.com/envoyproxy/go-control-plane v0.8.0/go.mod h1:GSSbY9P1neVhdY7G4wu+IK1rk/dqhiCC/4ExuWJZVuk=\ngithub.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=\ngithub.com/envoyproxy/go-control-plane v0.9.1/go.mod h1:G1fbsNGAFpC1aaERrShZQVdUV2ZuZuv6FCl2v9JNSxQ=\ngithub.com/envoyproxy/protoc-gen-validate v0.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=\ngithub.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=\ngithub.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=\ngithub.com/evanphx/json-patch v4.1.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=\ngithub.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=\ngithub.com/farsightsec/golang-framestream v0.0.0-20181102145529-8a0cb8ba8710/go.mod h1:eNde4IQyEiA5br02AouhEHCu3p3UzrCdFR4LuQHklMI=\ngithub.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=\ngithub.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=\ngithub.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=\ngithub.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=\ngithub.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=\ngithub.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=\ngithub.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=\ngithub.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=\ngithub.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=\ngithub.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=\ngithub.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=\ngithub.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM=\ngithub.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=\ngithub.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=\ngithub.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M=\ngithub.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ=\ngithub.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=\ngithub.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=\ngithub.com/go-ini/ini v1.51.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=\ngithub.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=\ngithub.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=\ngithub.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc=\ngithub.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=\ngithub.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=\ngithub.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=\ngithub.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8=\ngithub.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8=\ngithub.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=\ngithub.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=\ngithub.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=\ngithub.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=\ngithub.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=\ngithub.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=\ngithub.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=\ngithub.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=\ngithub.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=\ngithub.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=\ngithub.com/gobuffalo/attrs v0.0.0-20190219185331-f338c9388485/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=\ngithub.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=\ngithub.com/gobuffalo/attrs v0.1.0/go.mod h1:fmNpaWyHM0tRm8gCZWKx8yY9fvaNLo2PyzBNSrBZ5Hw=\ngithub.com/gobuffalo/buffalo v0.12.8-0.20181004233540-fac9bb505aa8/go.mod h1:sLyT7/dceRXJUxSsE813JTQtA3Eb1vjxWfo/N//vXIY=\ngithub.com/gobuffalo/buffalo v0.13.0/go.mod h1:Mjn1Ba9wpIbpbrD+lIDMy99pQ0H0LiddMIIDGse7qT4=\ngithub.com/gobuffalo/buffalo v0.13.1/go.mod h1:K9c22KLfDz7obgxvHv1amvJtCQEZNiox9+q6FDJ1Zcs=\ngithub.com/gobuffalo/buffalo v0.13.2/go.mod h1:vA8I4Dwcfkx7RAzIRHVDZxfS3QJR7muiOjX4r8P2/GE=\ngithub.com/gobuffalo/buffalo v0.13.4/go.mod h1:y2jbKkO0k49OrNIOAkbWQiPBqxAFpHn5OKnkc7BDh+I=\ngithub.com/gobuffalo/buffalo v0.13.5/go.mod h1:hPcP12TkFSZmT3gUVHZ24KRhTX3deSgu6QSgn0nbWf4=\ngithub.com/gobuffalo/buffalo v0.13.6/go.mod h1:/Pm0MPLusPhWDayjRD+/vKYnelScIiv0sX9YYek0wpg=\ngithub.com/gobuffalo/buffalo v0.13.7/go.mod h1:3gQwZhI8DSbqmDqlFh7kfwuv/wd40rqdVxXtFWlCQHw=\ngithub.com/gobuffalo/buffalo v0.13.9/go.mod h1:vIItiQkTHq46D1p+bw8mFc5w3BwrtJhMvYjSIYK3yjE=\ngithub.com/gobuffalo/buffalo v0.13.12/go.mod h1:Y9e0p0cdo/eI+lHm7EFzlkc9YzjwGo5QeDj+FbsyqVA=\ngithub.com/gobuffalo/buffalo v0.13.13/go.mod h1:WAL36xBN8OkU71lNjuYv6llmgl0o8twjlY+j7oGUmYw=\ngithub.com/gobuffalo/buffalo v0.14.0/go.mod h1:A9JI3juErlXNrPBeJ/0Pdky9Wz+GffEg7ZN0d1B5h48=\ngithub.com/gobuffalo/buffalo v0.14.2/go.mod h1:VNMTzddg7bMnkVxCUXzqTS4PvUo6cDOs/imtG8Cnt/k=\ngithub.com/gobuffalo/buffalo v0.14.3/go.mod h1:3O9vB/a4UNb16TevehTvDCaPnb98NWvYz0msJQ6ZlVA=\ngithub.com/gobuffalo/buffalo v0.14.5/go.mod h1:RWK6evR4hY4nRVfw9xie9V/LYK3j0U9wU2oKgQUFZ88=\ngithub.com/gobuffalo/buffalo v0.14.6/go.mod h1:71Un+T2JGgwXLjBqYFdGSooz/OUjw15BJM0nbbcAM0o=\ngithub.com/gobuffalo/buffalo-docker v1.0.5/go.mod h1:NZ3+21WIdqOUlOlM2onCt7cwojYp4Qwlsngoolw8zlE=\ngithub.com/gobuffalo/buffalo-docker v1.0.6/go.mod h1:UlqKHJD8CQvyIb+pFq+m/JQW2w2mXuhxsaKaTj1X1XI=\ngithub.com/gobuffalo/buffalo-docker v1.0.7/go.mod h1:BdB8AhcmjwR6Lo3rDPMzyh/+eNjYnZ1TAO0eZeLkhig=\ngithub.com/gobuffalo/buffalo-plugins v1.0.2/go.mod h1:pOp/uF7X3IShFHyobahTkTLZaeUXwb0GrUTb9ngJWTs=\ngithub.com/gobuffalo/buffalo-plugins v1.0.4/go.mod h1:pWS1vjtQ6uD17MVFWf7i3zfThrEKWlI5+PYLw/NaDB4=\ngithub.com/gobuffalo/buffalo-plugins v1.4.3/go.mod h1:uCzTY0woez4nDMdQjkcOYKanngeUVRO2HZi7ezmAjWY=\ngithub.com/gobuffalo/buffalo-plugins v1.5.1/go.mod h1:jbmwSZK5+PiAP9cC09VQOrGMZFCa/P0UMlIS3O12r5w=\ngithub.com/gobuffalo/buffalo-plugins v1.6.1/go.mod h1:/XZt7UuuDnx5P4v3cStK0+XoYiNOA2f0wDIsm1oLJQA=\ngithub.com/gobuffalo/buffalo-plugins v1.6.4/go.mod h1:/+N1aophkA2jZ1ifB2O3Y9yGwu6gKOVMtUmJnbg+OZI=\ngithub.com/gobuffalo/buffalo-plugins v1.6.5/go.mod h1:0HVkbgrVs/MnPZ/FOseDMVanCTm2RNcdM0PuXcL1NNI=\ngithub.com/gobuffalo/buffalo-plugins v1.6.6/go.mod h1:hSWAEkJyL9RENJlmanMivgnNkrQ9RC4xJARz8dQryi0=\ngithub.com/gobuffalo/buffalo-plugins v1.6.7/go.mod h1:ZGZRkzz2PiKWHs0z7QsPBOTo2EpcGRArMEym6ghKYgk=\ngithub.com/gobuffalo/buffalo-plugins v1.6.9/go.mod h1:yYlYTrPdMCz+6/+UaXg5Jm4gN3xhsvsQ2ygVatZV5vw=\ngithub.com/gobuffalo/buffalo-plugins v1.6.10/go.mod h1:HxzPZjAEzh9H0gnHelObxxrut9O+1dxydf7U93SYsc8=\ngithub.com/gobuffalo/buffalo-plugins v1.6.11/go.mod h1:eAA6xJIL8OuynJZ8amXjRmHND6YiusVAaJdHDN1Lu8Q=\ngithub.com/gobuffalo/buffalo-plugins v1.7.2/go.mod h1:vEbx30cLFeeZ48gBA/rkhbqC2M/2JpsKs5CoESWhkPw=\ngithub.com/gobuffalo/buffalo-plugins v1.8.1/go.mod h1:vu71J3fD4b7KKywJQ1tyaJGtahG837Cj6kgbxX0e4UI=\ngithub.com/gobuffalo/buffalo-plugins v1.8.2/go.mod h1:9te6/VjEQ7pKp7lXlDIMqzxgGpjlKoAcAANdCgoR960=\ngithub.com/gobuffalo/buffalo-plugins v1.8.3/go.mod h1:IAWq6vjZJVXebIq2qGTLOdlXzmpyTZ5iJG5b59fza5U=\ngithub.com/gobuffalo/buffalo-plugins v1.9.3/go.mod h1:BNRunDThMZKjqx6R+n14Rk3sRSOWgbMuzCKXLqbd7m0=\ngithub.com/gobuffalo/buffalo-plugins v1.9.4/go.mod h1:grCV6DGsQlVzQwk6XdgcL3ZPgLm9BVxlBmXPMF8oBHI=\ngithub.com/gobuffalo/buffalo-plugins v1.10.0/go.mod h1:4osg8d9s60txLuGwXnqH+RCjPHj9K466cDFRl3PErHI=\ngithub.com/gobuffalo/buffalo-plugins v1.11.0/go.mod h1:rtIvAYRjYibgmWhnjKmo7OadtnxuMG5ZQLr25ozAzjg=\ngithub.com/gobuffalo/buffalo-plugins v1.12.0/go.mod h1:kw4Mj2vQXqe4X5TI36PEQgswbL30heGQwJEeDKd1v+4=\ngithub.com/gobuffalo/buffalo-plugins v1.13.0/go.mod h1:Y9nH2VwHVkeKhmdM380ulNXmhhD5On81nRVeD+WlDTQ=\ngithub.com/gobuffalo/buffalo-plugins v1.13.1/go.mod h1:VcvhrgWcZLhOp8JPLckHBDtv05KepY/MxHsT2+06xX4=\ngithub.com/gobuffalo/buffalo-plugins v1.14.0/go.mod h1:r2lykSXBT79c3T5JK1ouivVDrHvvCZUdZBmn+lPMHU8=\ngithub.com/gobuffalo/buffalo-plugins v1.14.1/go.mod h1:9BRBvXuKxR0m4YttVFRtuUcAP9Rs97mGq6OleyDbIuo=\ngithub.com/gobuffalo/buffalo-pop v1.0.5/go.mod h1:Fw/LfFDnSmB/vvQXPvcXEjzP98Tc+AudyNWUBWKCwQ8=\ngithub.com/gobuffalo/buffalo-pop v1.1.2/go.mod h1:czNLXcYbg5/fjr+uht0NyjZaQ0V2W23H1jzyORgCzQ4=\ngithub.com/gobuffalo/buffalo-pop v1.1.5/go.mod h1:H01JIg42XwOHS4gRMhSeDZqBovNVlfBUsVXckU617s4=\ngithub.com/gobuffalo/buffalo-pop v1.1.8/go.mod h1:1uaxOFzzVud/zR5f1OEBr21tMVLQS3OZpQ1A5cr0svE=\ngithub.com/gobuffalo/buffalo-pop v1.1.13/go.mod h1:47GQoBjCMcl5Pw40iCWHQYJvd0HsT9kdaOPWgnzHzk4=\ngithub.com/gobuffalo/buffalo-pop v1.1.14/go.mod h1:sAMh6+s7wytCn5cHqZIuItJbAqzvs6M7FemLexl+pwc=\ngithub.com/gobuffalo/buffalo-pop v1.1.15/go.mod h1:vnvvxhbEFAaEbac9E2ZPjsBeL7WHkma2UyKNVA4y9Wo=\ngithub.com/gobuffalo/buffalo-pop v1.2.1/go.mod h1:SHqojN0bVzaAzCbQDdWtsib202FDIxqwmCO8VDdweF4=\ngithub.com/gobuffalo/buffalo-pop v1.3.0/go.mod h1:P0PhA225dRGyv0WkgYjYKqgoxPdDPDFZDvHj60AGF5w=\ngithub.com/gobuffalo/buffalo-pop v1.6.0/go.mod h1:vrEVNOBKe042HjSNMj72J4FgER/VG6lt4xW6WMpTdlY=\ngithub.com/gobuffalo/buffalo-pop v1.7.0/go.mod h1:UB5HHeFucJG7esTPUPjinBaJTEpVoREJHfSJJELnyeI=\ngithub.com/gobuffalo/buffalo-pop v1.9.0/go.mod h1:MfrkBg0iN9+RdlxdHHAqqGFAC/iyCfTiKqH7Jvt+vhE=\ngithub.com/gobuffalo/buffalo-pop v1.10.0/go.mod h1:C3/cFXB8Zd38XiGgHFdE7dw3Wu9MOKeD7bfELQicGPI=\ngithub.com/gobuffalo/buffalo-pop v1.12.0/go.mod h1:pO2ONSJOCjyroGp4BwVHfMkfd7sLg1U9BvMJqRy6Otk=\ngithub.com/gobuffalo/buffalo-pop v1.13.0/go.mod h1:h+zfyXCUFwihFqz6jmo9xsdsZ1Tm9n7knYpQjW0gv18=\ngithub.com/gobuffalo/clara v0.4.1/go.mod h1:3QgAPqYgPqAzhfGbNLlp4UztaZRi2SOg+ZrZwaq9L94=\ngithub.com/gobuffalo/clara v0.6.0/go.mod h1:RKZxkcH80pLykRi2hLkoxGMxA8T06Dc9fN/pFvutMFY=\ngithub.com/gobuffalo/depgen v0.0.0-20190219190223-ba8c93fa0c2c/go.mod h1:CE/HUV4vDCXtJayRf6WoMWgezb1yH4QHg8GNK8FL0JI=\ngithub.com/gobuffalo/depgen v0.0.0-20190315122043-8442b3fa16db/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=\ngithub.com/gobuffalo/depgen v0.0.0-20190315124901-e02f65b90669/go.mod h1:yTQe8xo5pGIDOApkeO95DjePS4ZOSSSx+ItkqJHxUG4=\ngithub.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=\ngithub.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg=\ngithub.com/gobuffalo/depgen v0.1.1/go.mod h1:65EOv3g7CMe4kc8J1Ds+l2bjcwrWKGXkE4/vpRRLPWY=\ngithub.com/gobuffalo/depgen v0.2.0/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=\ngithub.com/gobuffalo/envy v1.6.4/go.mod h1:Abh+Jfw475/NWtYMEt+hnJWRiC8INKWibIMyNt1w2Mc=\ngithub.com/gobuffalo/envy v1.6.5/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.6/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.7/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.8/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.9/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.10/go.mod h1:X0CFllQjTV5ogsnUrg+Oks2yTI+PU2dGYBJOEI2D1Uo=\ngithub.com/gobuffalo/envy v1.6.11/go.mod h1:Fiq52W7nrHGDggFPhn2ZCcHw4u/rqXkqo+i7FB6EAcg=\ngithub.com/gobuffalo/envy v1.6.12/go.mod h1:qJNrJhKkZpEW0glh5xP2syQHH5kgdmgsKss2Kk8PTP0=\ngithub.com/gobuffalo/envy v1.6.13/go.mod h1:w9DJppgl51JwUFWWd/M/6/otrPtWV3WYMa+NNLunqKA=\ngithub.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI=\ngithub.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI=\ngithub.com/gobuffalo/events v1.0.3/go.mod h1:Txo8WmqScapa7zimEQIwgiJBvMECMe9gJjsKNPN3uZw=\ngithub.com/gobuffalo/events v1.0.7/go.mod h1:z8txf6H9jWhQ5Scr7YPLWg/cgXBRj8Q4uYI+rsVCCSQ=\ngithub.com/gobuffalo/events v1.0.8/go.mod h1:A5KyqT1sA+3GJiBE4QKZibse9mtOcI9nw8gGrDdqYGs=\ngithub.com/gobuffalo/events v1.1.1/go.mod h1:Ia9OgHMco9pEhJaPrPQJ4u4+IZlkxYVco2VbJ2XgnAE=\ngithub.com/gobuffalo/events v1.1.3/go.mod h1:9yPGWYv11GENtzrIRApwQRMYSbUgCsZ1w6R503fCfrk=\ngithub.com/gobuffalo/events v1.1.4/go.mod h1:09/YRRgZHEOts5Isov+g9X2xajxdvOAcUuAHIX/O//A=\ngithub.com/gobuffalo/events v1.1.5/go.mod h1:3YUSzgHfYctSjEjLCWbkXP6djH2M+MLaVRzb4ymbAK0=\ngithub.com/gobuffalo/events v1.1.6/go.mod h1:H/3ZB9BA+WorMb/0F79UvU6u0Cyo2hU97WA51bG2ONY=\ngithub.com/gobuffalo/events v1.1.7/go.mod h1:6fGqxH2ing5XMb3EYRq9LEkVlyPGs4oO/eLzh+S8CxY=\ngithub.com/gobuffalo/events v1.1.8/go.mod h1:UFy+W6X6VbCWS8k2iT81HYX65dMtiuVycMy04cplt/8=\ngithub.com/gobuffalo/events v1.1.9/go.mod h1:/0nf8lMtP5TkgNbzYxR6Bl4GzBy5s5TebgNTdRfRbPM=\ngithub.com/gobuffalo/events v1.2.0/go.mod h1:pxvpvsKXKZNPtHuIxUV3K+g+KP5o4forzaeFj++bh68=\ngithub.com/gobuffalo/events v1.3.1/go.mod h1:9JOkQVoyRtailYVE/JJ2ZQ/6i4gTjM5t2HsZK4C1cSA=\ngithub.com/gobuffalo/fizz v1.0.12/go.mod h1:C0sltPxpYK8Ftvf64kbsQa2yiCZY4RZviurNxXdAKwc=\ngithub.com/gobuffalo/fizz v1.0.15/go.mod h1:EI3mEpjImuji6Bwu++N2uXhljQwOhwtimZQJ89zwyF4=\ngithub.com/gobuffalo/fizz v1.0.16/go.mod h1:EI3mEpjImuji6Bwu++N2uXhljQwOhwtimZQJ89zwyF4=\ngithub.com/gobuffalo/fizz v1.1.2/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc=\ngithub.com/gobuffalo/fizz v1.1.3/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc=\ngithub.com/gobuffalo/fizz v1.3.0/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc=\ngithub.com/gobuffalo/fizz v1.5.0/go.mod h1:Uu3ch14M4S7LDU7LAP1GQ+KNCRmZYd05Gqasc96XLa0=\ngithub.com/gobuffalo/fizz v1.6.0/go.mod h1:V4V6EA8eYu/L43y6gZj7mjmPkigl9m+Eu3Pe+SWQRRg=\ngithub.com/gobuffalo/fizz v1.6.1/go.mod h1:V4V6EA8eYu/L43y6gZj7mjmPkigl9m+Eu3Pe+SWQRRg=\ngithub.com/gobuffalo/fizz v1.8.0/go.mod h1:2LqJOOGUp1JpN9m54ac5jMQ1MpbNvSVbFi9BY+AEXOo=\ngithub.com/gobuffalo/fizz v1.9.0/go.mod h1:2LqJOOGUp1JpN9m54ac5jMQ1MpbNvSVbFi9BY+AEXOo=\ngithub.com/gobuffalo/flect v0.0.0-20180907193754-dc14d8acaf9f/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181002182613-4571df4b1daf/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181007231023-ae7ed6bfe683/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181018182602-fd24a256709f/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181019110701-3d6f0b585514/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181024204909-8f6be1a8c6c2/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181104133451-1f6e9779237a/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181108195648-8fe1b44cfe32/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181109221320-179d36177b5b/go.mod h1:0HvNbHdfh+WOvDSIASqJOSxTOWSxCCUF++k/Y53v9rI=\ngithub.com/gobuffalo/flect v0.0.0-20181114183036-47375f6d8328/go.mod h1:0HvNbHdfh+WOvDSIASqJOSxTOWSxCCUF++k/Y53v9rI=\ngithub.com/gobuffalo/flect v0.0.0-20181210151238-24a2b68e0316/go.mod h1:en58vff74S9b99Eg42Dr+/9yPu437QjlNsO/hBYPuOk=\ngithub.com/gobuffalo/flect v0.0.0-20190104192022-4af577e09bf2/go.mod h1:en58vff74S9b99Eg42Dr+/9yPu437QjlNsO/hBYPuOk=\ngithub.com/gobuffalo/flect v0.0.0-20190117212819-a62e61d96794/go.mod h1:397QT6v05LkZkn07oJXXT6y9FCfwC8Pug0WA2/2mE9k=\ngithub.com/gobuffalo/flect v0.0.0-20190205211104-b2cb381e56e0/go.mod h1:397QT6v05LkZkn07oJXXT6y9FCfwC8Pug0WA2/2mE9k=\ngithub.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs=\ngithub.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI=\ngithub.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI=\ngithub.com/gobuffalo/flect v0.1.5/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80=\ngithub.com/gobuffalo/genny v0.0.0-20180924032338-7af3a40f2252/go.mod h1:tUTQOogrr7tAQnhajMSH6rv1BVev34H2sa1xNHMy94g=\ngithub.com/gobuffalo/genny v0.0.0-20181003150629-3786a0744c5d/go.mod h1:WAd8HmjMVrnkAZbmfgH5dLBUchsZfqzp/WS5sQz+uTM=\ngithub.com/gobuffalo/genny v0.0.0-20181005145118-318a41a134cc/go.mod h1:WAd8HmjMVrnkAZbmfgH5dLBUchsZfqzp/WS5sQz+uTM=\ngithub.com/gobuffalo/genny v0.0.0-20181007153042-b8de7d566757/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA=\ngithub.com/gobuffalo/genny v0.0.0-20181012161047-33e5f43d83a6/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA=\ngithub.com/gobuffalo/genny v0.0.0-20181017160347-90a774534246/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA=\ngithub.com/gobuffalo/genny v0.0.0-20181019144442-df0a36fdd146/go.mod h1:IyRrGrQb/sbHu/0z9i5mbpZroIsdxjCYfj+zFiFiWZQ=\ngithub.com/gobuffalo/genny v0.0.0-20181024195656-51392254bf53/go.mod h1:o9GEH5gn5sCKLVB5rHFC4tq40rQ3VRUzmx6WwmaqISE=\ngithub.com/gobuffalo/genny v0.0.0-20181025145300-af3f81d526b8/go.mod h1:uZ1fFYvdcP8mu0B/Ynarf6dsGvp7QFIpk/QACUuFUVI=\ngithub.com/gobuffalo/genny v0.0.0-20181027191429-94d6cfb5c7fc/go.mod h1:x7SkrQQBx204Y+O9EwRXeszLJDTaWN0GnEasxgLrQTA=\ngithub.com/gobuffalo/genny v0.0.0-20181027195209-3887b7171c4f/go.mod h1:JbKx8HSWICu5zyqWOa0dVV1pbbXOHusrSzQUprW6g+w=\ngithub.com/gobuffalo/genny v0.0.0-20181030163439-ed103521b8ec/go.mod h1:3Xm9z7/2oRxlB7PSPLxvadZ60/0UIek1YWmcC7QSaVs=\ngithub.com/gobuffalo/genny v0.0.0-20181106193839-7dcb0924caf1/go.mod h1:x61yHxvbDCgQ/7cOAbJCacZQuHgB0KMSzoYcw5debjU=\ngithub.com/gobuffalo/genny v0.0.0-20181107223128-f18346459dbe/go.mod h1:utQD3aKKEsdb03oR+Vi/6ztQb1j7pO10N3OBoowRcSU=\ngithub.com/gobuffalo/genny v0.0.0-20181109163038-9539921b620f/go.mod h1:118bnhJR2oviiji++mZj0IH/IaFBCzwkWHaI4OQq5hQ=\ngithub.com/gobuffalo/genny v0.0.0-20181110202416-7b7d8756a9e2/go.mod h1:118bnhJR2oviiji++mZj0IH/IaFBCzwkWHaI4OQq5hQ=\ngithub.com/gobuffalo/genny v0.0.0-20181111200257-599b33630ab4/go.mod h1:w+iD/cdtIpPDFax6LlUFuCdXFD0DLRUXsfp3IeT/Doc=\ngithub.com/gobuffalo/genny v0.0.0-20181114215459-0a4decd77f5d/go.mod h1:kN2KZ8VgXF9VIIOj/GM0Eo7YK+un4Q3tTreKOf0q1ng=\ngithub.com/gobuffalo/genny v0.0.0-20181119162812-e8ff4adce8bb/go.mod h1:BA9htSe4bZwBDJLe8CUkoqkypq3hn3+CkoHqVOW718E=\ngithub.com/gobuffalo/genny v0.0.0-20181127225641-2d959acc795b/go.mod h1:l54xLXNkteX/PdZ+HlgPk1qtcrgeOr3XUBBPDbH+7CQ=\ngithub.com/gobuffalo/genny v0.0.0-20181128191930-77e34f71ba2a/go.mod h1:FW/D9p7cEEOqxYA71/hnrkOWm62JZ5ZNxcNIVJEaWBU=\ngithub.com/gobuffalo/genny v0.0.0-20181203165245-fda8bcce96b1/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM=\ngithub.com/gobuffalo/genny v0.0.0-20181203201232-849d2c9534ea/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM=\ngithub.com/gobuffalo/genny v0.0.0-20181206121324-d6fb8a0dbe36/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM=\ngithub.com/gobuffalo/genny v0.0.0-20181207164119-84844398a37d/go.mod h1:y0ysCHGGQf2T3vOhCrGHheYN54Y/REj0ayd0Suf4C/8=\ngithub.com/gobuffalo/genny v0.0.0-20181211165820-e26c8466f14d/go.mod h1:sHnK+ZSU4e2feXP3PA29ouij6PUEiN+RCwECjCTB3yM=\ngithub.com/gobuffalo/genny v0.0.0-20190104222617-a71664fc38e7/go.mod h1:QPsQ1FnhEsiU8f+O0qKWXz2RE4TiDqLVChWkBuh1WaY=\ngithub.com/gobuffalo/genny v0.0.0-20190112155932-f31a84fcacf5/go.mod h1:CIaHCrSIuJ4il6ka3Hub4DR4adDrGoXGEEt2FbBxoIo=\ngithub.com/gobuffalo/genny v0.0.0-20190124191459-3310289fa4b4/go.mod h1:yIRqxhZV2sAzb+B3iPUMLauTRrYP8tJUlZ1zV9teKik=\ngithub.com/gobuffalo/genny v0.0.0-20190131150032-1045e97d19fb/go.mod h1:yIRqxhZV2sAzb+B3iPUMLauTRrYP8tJUlZ1zV9teKik=\ngithub.com/gobuffalo/genny v0.0.0-20190131190646-008a76242145/go.mod h1:NJvPZJxb9M4z790P6N2SMZKSUYpASpEvLuUWnHGKzb4=\ngithub.com/gobuffalo/genny v0.0.0-20190219203444-c95082806342/go.mod h1:3BLT+Vs94EEz3fKR8WWOkYpL6c1tdJcZUNCe3LZAnvQ=\ngithub.com/gobuffalo/genny v0.0.0-20190315121735-8b38fb089e88/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk=\ngithub.com/gobuffalo/genny v0.0.0-20190315124720-e16e52a93c79/go.mod h1:nKeefjbhYowo36ys9nG9VUvD9FRIS0p3BC2JFfcOucM=\ngithub.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk=\ngithub.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28=\ngithub.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo=\ngithub.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk=\ngithub.com/gobuffalo/genny v0.2.0/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk=\ngithub.com/gobuffalo/gitgen v0.0.0-20190219185555-91c2c5f0aad5/go.mod h1:ZzGIrxBvCJEluaU4i3CN0GFlu1Qmb3yK8ziV02evJ1E=\ngithub.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw=\ngithub.com/gobuffalo/github_flavored_markdown v1.0.4/go.mod h1:uRowCdK+q8d/RF0Kt3/DSalaIXbb0De/dmTqMQdkQ4I=\ngithub.com/gobuffalo/github_flavored_markdown v1.0.5/go.mod h1:U0643QShPF+OF2tJvYNiYDLDGDuQmJZXsf/bHOJPsMY=\ngithub.com/gobuffalo/github_flavored_markdown v1.0.7/go.mod h1:w93Pd9Lz6LvyQXEG6DktTPHkOtCbr+arAD5mkwMzXLI=\ngithub.com/gobuffalo/gogen v0.0.0-20190219194924-d32a17ad9761/go.mod h1:v47C8sid+ZM2qK+YpQ2MGJKssKAqyTsH1wl/pTCPdz8=\ngithub.com/gobuffalo/gogen v0.0.0-20190224213239-1c6076128bbc/go.mod h1:tQqPADZKflmJCR4FHRHYNPP79cXPICyxUiUHyhuXtqg=\ngithub.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360=\ngithub.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg=\ngithub.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE=\ngithub.com/gobuffalo/gogen v0.2.0/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360=\ngithub.com/gobuffalo/helpers v0.0.0-20190422082217-384f90c6579f/go.mod h1:g0I3qKQEyJxwnHtEmLugD75eoOiWxEtibcV62tYah9w=\ngithub.com/gobuffalo/helpers v0.0.0-20190506214229-8e6f634af7c3/go.mod h1:HlNpmw2+Rjx882VUf6hJfNJs5wpNRzX02KcqCXDlLGc=\ngithub.com/gobuffalo/helpers v0.2.1/go.mod h1:5UhA1EfGvyPZfzo9PqhKkSgmLolaTpnWYDbqCJcmiAE=\ngithub.com/gobuffalo/helpers v0.2.2/go.mod h1:xYbzUdCUpVzLwLnqV8HIjT6hmG0Cs7YIBCJkNM597jw=\ngithub.com/gobuffalo/httptest v1.0.2/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.3/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.4/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.5/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.6/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.1.0/go.mod h1:BIfCgiqCOotRc5xYwCcZN7IFYag4277Ynqjar/Ra3iI=\ngithub.com/gobuffalo/httptest v1.2.0/go.mod h1:0KfourZCsapuvkljDMSr7YM+66kCt/rXv54YcWRWwhc=\ngithub.com/gobuffalo/httptest v1.3.0/go.mod h1:Y4qebOsMH91XdB0cZuS8OUdAKHGV7hVDcjgzGupoYlk=\ngithub.com/gobuffalo/licenser v0.0.0-20180924033006-eae28e638a42/go.mod h1:Ubo90Np8gpsSZqNScZZkVXXAo5DGhTb+WYFIjlnog8w=\ngithub.com/gobuffalo/licenser v0.0.0-20181025145548-437d89de4f75/go.mod h1:x3lEpYxkRG/XtGCUNkio+6RZ/dlOvLzTI9M1auIwFcw=\ngithub.com/gobuffalo/licenser v0.0.0-20181027200154-58051a75da95/go.mod h1:BzhaaxGd1tq1+OLKObzgdCV9kqVhbTulxOpYbvMQWS0=\ngithub.com/gobuffalo/licenser v0.0.0-20181109171355-91a2a7aac9a7/go.mod h1:m+Ygox92pi9bdg+gVaycvqE8RVSjZp7mWw75+K5NPHk=\ngithub.com/gobuffalo/licenser v0.0.0-20181116224424-1b7fd3f9cbb4/go.mod h1:icHYfF2FVDi6CpI8BK9Sy1ChkSijz/0GNN7Qzzdk6JE=\ngithub.com/gobuffalo/licenser v0.0.0-20181128165715-cc7305f8abed/go.mod h1:oU9F9UCE+AzI/MueCKZamsezGOOHfSirltllOVeRTAE=\ngithub.com/gobuffalo/licenser v0.0.0-20181128170751-82cc989582b9/go.mod h1:oU9F9UCE+AzI/MueCKZamsezGOOHfSirltllOVeRTAE=\ngithub.com/gobuffalo/licenser v0.0.0-20181203160806-fe900bbede07/go.mod h1:ph6VDNvOzt1CdfaWC+9XwcBnlSTBz2j49PBwum6RFaU=\ngithub.com/gobuffalo/licenser v0.0.0-20181211173111-f8a311c51159/go.mod h1:ve/Ue99DRuvnTaLq2zKa6F4KtHiYf7W046tDjuGYPfM=\ngithub.com/gobuffalo/licenser v0.0.0-20190224205124-37799bc2ebf6/go.mod h1:ve/Ue99DRuvnTaLq2zKa6F4KtHiYf7W046tDjuGYPfM=\ngithub.com/gobuffalo/licenser v0.0.0-20190329153211-c35c0a2813b2/go.mod h1:ZVWE6uKUE3rGf7sedUHWVjNWrEgxaUQLVFL+pQiWpfY=\ngithub.com/gobuffalo/licenser v1.1.0/go.mod h1:ZVWE6uKUE3rGf7sedUHWVjNWrEgxaUQLVFL+pQiWpfY=\ngithub.com/gobuffalo/logger v0.0.0-20181022175615-46cfb361fc27/go.mod h1:8sQkgyhWipz1mIctHF4jTxmJh1Vxhp7mP8IqbljgJZo=\ngithub.com/gobuffalo/logger v0.0.0-20181027144941-73d08d2bb969/go.mod h1:7uGg2duHKpWnN4+YmyKBdLXfhopkAdVM6H3nKbyFbz8=\ngithub.com/gobuffalo/logger v0.0.0-20181027193913-9cf4dd0efe46/go.mod h1:7uGg2duHKpWnN4+YmyKBdLXfhopkAdVM6H3nKbyFbz8=\ngithub.com/gobuffalo/logger v0.0.0-20181109185836-3feeab578c17/go.mod h1:oNErH0xLe+utO+OW8ptXMSA5DkiSEDW1u3zGIt8F9Ew=\ngithub.com/gobuffalo/logger v0.0.0-20181117211126-8e9b89b7c264/go.mod h1:5etB91IE0uBlw9k756fVKZJdS+7M7ejVhmpXXiSFj0I=\ngithub.com/gobuffalo/logger v0.0.0-20181127160119-5b956e21995c/go.mod h1:+HxKANrR9VGw9yN3aOAppJKvhO05ctDi63w4mDnKv2U=\ngithub.com/gobuffalo/logger v0.0.0-20190224201004-be78ebfea0fa/go.mod h1:+HxKANrR9VGw9yN3aOAppJKvhO05ctDi63w4mDnKv2U=\ngithub.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8=\ngithub.com/gobuffalo/makr v1.1.5/go.mod h1:Y+o0btAH1kYAMDJW/TX3+oAXEu0bmSLLoC9mIFxtzOw=\ngithub.com/gobuffalo/mapi v1.0.0/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc=\ngithub.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc=\ngithub.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc=\ngithub.com/gobuffalo/mapi v1.1.0/go.mod h1:pqQ1XAqvpy/JYtRwoieNps2yU8MFiMxBUpAm2FBtQ50=\ngithub.com/gobuffalo/meta v0.0.0-20181018155829-df62557efcd3/go.mod h1:XTTOhwMNryif3x9LkTTBO/Llrveezd71u3quLd0u7CM=\ngithub.com/gobuffalo/meta v0.0.0-20181018192820-8c6cef77dab3/go.mod h1:E94EPzx9NERGCY69UWlcj6Hipf2uK/vnfrF4QD0plVE=\ngithub.com/gobuffalo/meta v0.0.0-20181025145500-3a985a084b0a/go.mod h1:YDAKBud2FP7NZdruCSlmTmDOZbVSa6bpK7LJ/A/nlKg=\ngithub.com/gobuffalo/meta v0.0.0-20181109154556-f76929ccd5fa/go.mod h1:1rYI5QsanV6cLpT1BlTAkrFi9rtCZrGkvSK8PglwfS8=\ngithub.com/gobuffalo/meta v0.0.0-20181114191255-b130ebedd2f7/go.mod h1:K6cRZ29ozr4Btvsqkjvg5nDFTLOgTqf03KA70Ks0ypE=\ngithub.com/gobuffalo/meta v0.0.0-20181116202903-8850e47774f5/go.mod h1:K6cRZ29ozr4Btvsqkjvg5nDFTLOgTqf03KA70Ks0ypE=\ngithub.com/gobuffalo/meta v0.0.0-20181127070345-0d7e59dd540b/go.mod h1:RLO7tMvE0IAKAM8wny1aN12pvEKn7EtkBLkUZR00Qf8=\ngithub.com/gobuffalo/meta v0.0.0-20190120163247-50bbb1fa260d/go.mod h1:KKsH44nIK2gA8p0PJmRT9GvWJUdphkDUA8AJEvFWiqM=\ngithub.com/gobuffalo/meta v0.0.0-20190121163014-ecaa953cbfb3/go.mod h1:KLfkGnS+Tucc+iTkUcAUBtxpwOJGfhw2pHRLddPxMQY=\ngithub.com/gobuffalo/meta v0.0.0-20190126124307-c8fb6f4eb5a9/go.mod h1:zoh6GLgkk9+iI/62dST4amAuVAczZrBXoAk/t64n7Ew=\ngithub.com/gobuffalo/meta v0.0.0-20190207205153-50a99e08b8cf/go.mod h1:+VGfK9Jm9I7oJyFeJzIT6omCPvrDktzAtpHJKaieugY=\ngithub.com/gobuffalo/meta v0.0.0-20190320152240-a5320142224a/go.mod h1:+VGfK9Jm9I7oJyFeJzIT6omCPvrDktzAtpHJKaieugY=\ngithub.com/gobuffalo/meta v0.0.0-20190329152330-e161e8a93e3b/go.mod h1:mCRSy5F47tjK8yaIDcJad4oe9fXxY5gLrx3Xx2spK+0=\ngithub.com/gobuffalo/mw-basicauth v1.0.3/go.mod h1:dg7+ilMZOKnQFHDefUzUHufNyTswVUviCBgF244C1+0=\ngithub.com/gobuffalo/mw-basicauth v1.0.6/go.mod h1:RFyeGeDLZlVgp/eBflqu2eavFqyv0j0fVVP87WPYFwY=\ngithub.com/gobuffalo/mw-basicauth v1.0.7/go.mod h1:xJ9/OSiOWl+kZkjaSun62srODr3Cx8OB4AKr+G4FlS4=\ngithub.com/gobuffalo/mw-contenttype v0.0.0-20180802152300-74f5a47f4d56/go.mod h1:7EvcmzBbeCvFtQm5GqF9ys6QnCxz2UM1x0moiWLq1No=\ngithub.com/gobuffalo/mw-contenttype v0.0.0-20190129203934-2554e742333b/go.mod h1:7x87+mDrr9Peh7AqhOtESyJLanMd2zQNz2Hts+vtBoE=\ngithub.com/gobuffalo/mw-csrf v0.0.0-20180802151833-446ff26e108b/go.mod h1:sbGtb8DmDZuDUQoxjr8hG1ZbLtZboD9xsn6p77ppcHo=\ngithub.com/gobuffalo/mw-csrf v0.0.0-20190129204204-25460a055517/go.mod h1:o5u+nnN0Oa7LBeDYH9QP36qeMPnXV9qbVnbZ4D+Kb0Q=\ngithub.com/gobuffalo/mw-forcessl v0.0.0-20180802152810-73921ae7a130/go.mod h1:JvNHRj7bYNAMUr/5XMkZaDcw3jZhUZpsmzhd//FFWmQ=\ngithub.com/gobuffalo/mw-i18n v0.0.0-20180802152014-e3060b7e13d6/go.mod h1:91AQfukc52A6hdfIfkxzyr+kpVYDodgAeT5cjX1UIj4=\ngithub.com/gobuffalo/mw-i18n v0.0.0-20181027200759-09e0c99be4d3/go.mod h1:1PpGPgqP8VsfUppgBA9FrTOXjI6X9gjqhh/8dmg48lg=\ngithub.com/gobuffalo/mw-i18n v0.0.0-20190129204410-552713a3ebb4/go.mod h1:rBg2eHxsyxVjtYra6fGy4GSF5C8NysOvz+Znnzk42EM=\ngithub.com/gobuffalo/mw-paramlogger v0.0.0-20181005191442-d6ee392ec72e/go.mod h1:6OJr6VwSzgJMqWMj7TYmRUqzNe2LXu/W1rRW4MAz/ME=\ngithub.com/gobuffalo/mw-paramlogger v0.0.0-20190129202837-395da1998525/go.mod h1:gEo/ABCsKqvpp/KCxN2AIzDEe0OJUXbJ9293FYrXw+w=\ngithub.com/gobuffalo/mw-tokenauth v0.0.0-20181001105134-8545f626c189/go.mod h1:UqBF00IfKvd39ni5+yI5MLMjAf4gX7cDKN/26zDOD6c=\ngithub.com/gobuffalo/mw-tokenauth v0.0.0-20190129201951-95847f29c5c8/go.mod h1:n2oa93LHGD94hGI+PoJO+6cf60DNrXrAIv9L/Ke3GXc=\ngithub.com/gobuffalo/nulls v0.0.0-20190305142546-85f3c9250d87/go.mod h1:KhaLCW+kFA/G97tZkmVkIxhRw3gvZszJn7JjPLI3gtI=\ngithub.com/gobuffalo/packd v0.0.0-20181027182251-01ad393492c8/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc=\ngithub.com/gobuffalo/packd v0.0.0-20181027190505-aafc0d02c411/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc=\ngithub.com/gobuffalo/packd v0.0.0-20181027194105-7ae579e6d213/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc=\ngithub.com/gobuffalo/packd v0.0.0-20181028162033-6d52e0eabf41/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181029140631-cf76bd87a5a6/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181031195726-c82734870264/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181103221656-16c4ed88b296/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181104210303-d376b15f8e96/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181111195323-b2e760a5f0ff/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181114190715-f25c5d2471d7/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181124090624-311c6248e5fb/go.mod h1:Foenia9ZvITEvG05ab6XpiD5EfBHPL8A6hush8SJ0o8=\ngithub.com/gobuffalo/packd v0.0.0-20181207120301-c49825f8f6f4/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA=\ngithub.com/gobuffalo/packd v0.0.0-20181212173646-eca3b8fd6687/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA=\ngithub.com/gobuffalo/packd v0.0.0-20190224160250-d04dd98aca5b/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA=\ngithub.com/gobuffalo/packd v0.0.0-20190315122247-83d601d65093/go.mod h1:LpEu7OkoplvlhztyAEePkS6JwcGgANdgGL5pB4Knxaw=\ngithub.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4=\ngithub.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4=\ngithub.com/gobuffalo/packd v0.2.0/go.mod h1:k2CkHP3bjbqL2GwxwhxUy1DgnlbW644hkLC9iIUvZwY=\ngithub.com/gobuffalo/packr v1.13.7/go.mod h1:KkinLIn/n6+3tVXMwg6KkNvWwVsrRAz4ph+jgpk3Z24=\ngithub.com/gobuffalo/packr v1.15.0/go.mod h1:t5gXzEhIviQwVlNx/+3SfS07GS+cZ2hn76WLzPp6MGI=\ngithub.com/gobuffalo/packr v1.15.1/go.mod h1:IeqicJ7jm8182yrVmNbM6PR4g79SjN9tZLH8KduZZwE=\ngithub.com/gobuffalo/packr v1.16.0/go.mod h1:Yx/lcR/7mDLXhuJSzsz2MauD/HUwSc+EK6oigMRGGsM=\ngithub.com/gobuffalo/packr v1.19.0/go.mod h1:MstrNkfCQhd5o+Ct4IJ0skWlxN8emOq8DsoT1G98VIU=\ngithub.com/gobuffalo/packr v1.20.0/go.mod h1:JDytk1t2gP+my1ig7iI4NcVaXr886+N0ecUga6884zw=\ngithub.com/gobuffalo/packr v1.21.0/go.mod h1:H00jGfj1qFKxscFJSw8wcL4hpQtPe1PfU2wa6sg/SR0=\ngithub.com/gobuffalo/packr v1.21.5/go.mod h1:zCvDxrZzFmq5Xd7Jw4vaGe/OYwzuXnma31D2EbTHMWk=\ngithub.com/gobuffalo/packr v1.21.7/go.mod h1:73tmYjwi4Cvb1eNiAwpmrzZ0gxVA4KBqVSZ2FNeJodM=\ngithub.com/gobuffalo/packr v1.21.9/go.mod h1:GC76q6nMzRtR+AEN/VV4w0z2/4q7SOaEmXh3Ooa8sOE=\ngithub.com/gobuffalo/packr v1.22.0/go.mod h1:Qr3Wtxr3+HuQEwWqlLnNW4t1oTvK+7Gc/Rnoi/lDFvA=\ngithub.com/gobuffalo/packr v1.24.0/go.mod h1:p9Sgang00I1hlr1ub+tgI9AQdFd4f+WH1h62jYpzetM=\ngithub.com/gobuffalo/packr v1.24.1/go.mod h1:absPnW/XUUa4DmIh5ga7AipGXXg0DOcd5YWKk5RZs8Y=\ngithub.com/gobuffalo/packr v1.25.0/go.mod h1:NqsGg8CSB2ZD+6RBIRs18G7aZqdYDlYNNvsSqP6T4/U=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.5/go.mod h1:e6gmOfhf3KmT4zl2X/NDRSfBXk2oV4TXZ+NNOM0xwt8=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.7/go.mod h1:BzhceHWfF3DMAkbPUONHYWs63uacCZxygFY1b4H9N2A=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.8/go.mod h1:y60QCdzwuMwO2R49fdQhsjCPv7tLQFR0ayzxxla9zes=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.9/go.mod h1:fQqADRfZpEsgkc7c/K7aMew3n4aF1Kji7+lIZeR98Fc=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.10/go.mod h1:4CWWn4I5T3v4c1OsJ55HbHlUEKNWMITG5iIkdr4Px4w=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.11/go.mod h1:JoieH/3h3U4UmatmV93QmqyPUdf4wVM9HELaHEu+3fk=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.12/go.mod h1:FV1zZTsVFi1DSCboO36Xgs4pzCZBjB/tDV9Cz/lSaR8=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.13/go.mod h1:2Mp7GhBFMdJlOK8vGfl7SYtfMP3+5roE39ejlfjw0rA=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.14/go.mod h1:06otbrNvDKO1eNQ3b8hst+1010UooI2MFg+B2Ze4MV8=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.15/go.mod h1:IMe7H2nJvcKXSF90y4X1rjYIRlNMJYCxEhssBXNZwWs=\ngithub.com/gobuffalo/packr/v2 v2.0.0/go.mod h1:7McfLpSxaPUoSQm7gYpTZRQSK63mX8EKzzYSEFKvfkM=\ngithub.com/gobuffalo/packr/v2 v2.0.1/go.mod h1:tp5/5A2e67F1lUGTiNadtA2ToP045+mvkWzaqMCsZr4=\ngithub.com/gobuffalo/packr/v2 v2.0.2/go.mod h1:6Y+2NY9cHDlrz96xkJG8bfPwLlCdJVS/irhNJmwD7kM=\ngithub.com/gobuffalo/packr/v2 v2.0.6/go.mod h1:/TYKOjadT7P9jRWZtj4BRTgeXy2tIYntifGkD+aM2KY=\ngithub.com/gobuffalo/packr/v2 v2.0.7/go.mod h1:1SBFAIr3YnxYdJRyrceR7zhOrhV/YhHzOjDwA9LLZ5Y=\ngithub.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ=\ngithub.com/gobuffalo/packr/v2 v2.0.10/go.mod h1:n90ZuXIc2KN2vFAOQascnPItp9A2g9QYSvYvS3AjQEM=\ngithub.com/gobuffalo/packr/v2 v2.1.0/go.mod h1:n90ZuXIc2KN2vFAOQascnPItp9A2g9QYSvYvS3AjQEM=\ngithub.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0=\ngithub.com/gobuffalo/packr/v2 v2.3.2/go.mod h1:93elRVdDhpUgox9GnXswWK5dzpVBQsnlQjnnncSLoiU=\ngithub.com/gobuffalo/packr/v2 v2.4.0/go.mod h1:ra341gygw9/61nSjAbfwcwh8IrYL4WmR4IsPkPBhQiY=\ngithub.com/gobuffalo/plush v3.7.16+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.20+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.21+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.22+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.23+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.30+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.31+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.32+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.33+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.34+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.8.0+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.8.2+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plushgen v0.0.0-20181128164830-d29dcb966cb2/go.mod h1:r9QwptTFnuvSaSRjpSp4S2/4e2D3tJhARYbvEBcKSb4=\ngithub.com/gobuffalo/plushgen v0.0.0-20181203163832-9fc4964505c2/go.mod h1:opEdT33AA2HdrIwK1aibqnTJDVVKXC02Bar/GT1YRVs=\ngithub.com/gobuffalo/plushgen v0.0.0-20181207152837-eedb135bd51b/go.mod h1:Lcw7HQbEVm09sAQrCLzIxuhFbB3nAgp4c55E+UlynR0=\ngithub.com/gobuffalo/plushgen v0.0.0-20190104222512-177cd2b872b3/go.mod h1:tYxCozi8X62bpZyKXYHw1ncx2ZtT2nFvG42kuLwYjoc=\ngithub.com/gobuffalo/plushgen v0.0.0-20190224160205-347ea233336e/go.mod h1:tYxCozi8X62bpZyKXYHw1ncx2ZtT2nFvG42kuLwYjoc=\ngithub.com/gobuffalo/plushgen v0.0.0-20190329152458-0555238fe0d9/go.mod h1:3U71v6HWZpVER1nInTXeAwdoRNsRd4W8aeIa1Lyp+Bk=\ngithub.com/gobuffalo/plushgen v0.1.0/go.mod h1:NK33QLkRK/xKexiPFSxlWRT286F4yStZUa/Fbx0guvo=\ngithub.com/gobuffalo/plushgen v0.1.2/go.mod h1:3U71v6HWZpVER1nInTXeAwdoRNsRd4W8aeIa1Lyp+Bk=\ngithub.com/gobuffalo/pop v4.8.2+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.3+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.4+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.5+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.7+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.8+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.1+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.2+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.3+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.5+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.6+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.8+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.9+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.10.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.11.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.11.1+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/release v1.0.35/go.mod h1:VtHFAKs61vO3wboCec5xr9JPTjYyWYcvaM3lclkc4x4=\ngithub.com/gobuffalo/release v1.0.38/go.mod h1:VtHFAKs61vO3wboCec5xr9JPTjYyWYcvaM3lclkc4x4=\ngithub.com/gobuffalo/release v1.0.42/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug=\ngithub.com/gobuffalo/release v1.0.51/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug=\ngithub.com/gobuffalo/release v1.0.52/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug=\ngithub.com/gobuffalo/release v1.0.53/go.mod h1:FdF257nd8rqhNaqtDWFGhxdJ/Ig4J7VcS3KL7n/a+aA=\ngithub.com/gobuffalo/release v1.0.54/go.mod h1:Pe5/RxRa/BE8whDpGfRqSI7D1a0evGK1T4JDm339tJc=\ngithub.com/gobuffalo/release v1.0.61/go.mod h1:mfIO38ujUNVDlBziIYqXquYfBF+8FDHUjKZgYC1Hj24=\ngithub.com/gobuffalo/release v1.0.63/go.mod h1:/7hQAikt0l8Iu/tAX7slC1qiOhD6Nb+3KMmn/htiUfc=\ngithub.com/gobuffalo/release v1.0.72/go.mod h1:NP5NXgg/IX3M5XmHmWR99D687/3Dt9qZtTK/Lbwc1hU=\ngithub.com/gobuffalo/release v1.0.74/go.mod h1:NP5NXgg/IX3M5XmHmWR99D687/3Dt9qZtTK/Lbwc1hU=\ngithub.com/gobuffalo/release v1.1.1/go.mod h1:Sluak1Xd6kcp6snkluR1jeXAogdJZpFFRzTYRs/2uwg=\ngithub.com/gobuffalo/release v1.1.3/go.mod h1:CuXc5/m+4zuq8idoDt1l4va0AXAn/OSs08uHOfMVr8E=\ngithub.com/gobuffalo/release v1.1.6/go.mod h1:18naWa3kBsqO0cItXZNJuefCKOENpbbUIqRL1g+p6z0=\ngithub.com/gobuffalo/release v1.2.2/go.mod h1:tkFFZua2N5WRxyGDk2cSwQjzkZ/apKKXl5T8P+kEO+E=\ngithub.com/gobuffalo/release v1.2.5/go.mod h1:tkFFZua2N5WRxyGDk2cSwQjzkZ/apKKXl5T8P+kEO+E=\ngithub.com/gobuffalo/release v1.4.0/go.mod h1:f4uUPnD9dxrWxVy9yy0k/mvDf3EzhFtf7/byl0tTdY4=\ngithub.com/gobuffalo/release v1.7.0/go.mod h1:xH2NjAueVSY89XgC4qx24ojEQ4zQ9XCGVs5eXwJTkEs=\ngithub.com/gobuffalo/shoulders v1.0.1/go.mod h1:V33CcVmaQ4gRUmHKwq1fiTXuf8Gp/qjQBUL5tHPmvbA=\ngithub.com/gobuffalo/shoulders v1.0.3/go.mod h1:LqMcHhKRuBPMAYElqOe3POHiZ1x7Ry0BE8ZZ84Bx+k4=\ngithub.com/gobuffalo/shoulders v1.0.4/go.mod h1:LqMcHhKRuBPMAYElqOe3POHiZ1x7Ry0BE8ZZ84Bx+k4=\ngithub.com/gobuffalo/shoulders v1.1.0/go.mod h1:kcIJs3p7VqoBJ36Mzs+x767NyzTx0pxBvzZdWTWZYF8=\ngithub.com/gobuffalo/syncx v0.0.0-20181120191700-98333ab04150/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=\ngithub.com/gobuffalo/syncx v0.0.0-20181120194010-558ac7de985f/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=\ngithub.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=\ngithub.com/gobuffalo/tags v2.0.11+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.0.14+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.0.15+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.0.16+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.1.0+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/uuid v2.0.3+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE=\ngithub.com/gobuffalo/uuid v2.0.4+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE=\ngithub.com/gobuffalo/uuid v2.0.5+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE=\ngithub.com/gobuffalo/validate v2.0.3+incompatible/go.mod h1:N+EtDe0J8252BgfzQUChBgfd6L93m9weay53EWFVsMM=\ngithub.com/gobuffalo/x v0.0.0-20181003152136-452098b06085/go.mod h1:WevpGD+5YOreDJznWevcn8NTmQEW5STSBgIkpkjzqXc=\ngithub.com/gobuffalo/x v0.0.0-20181007152206-913e47c59ca7/go.mod h1:9rDPXaB3kXdKWzMc4odGQQdG2e2DIEmANy5aSJ9yesY=\ngithub.com/gobuffalo/x v0.0.0-20181025165825-f204f550da9d/go.mod h1:Qh2Pb/Ak1Ko2mzHlGPigrnxkhO4WTTCI1jJM58sbgtE=\ngithub.com/gobuffalo/x v0.0.0-20181025192250-1ef645d63fe8/go.mod h1:AIlnMGlYXOCsoCntLPFLYtrJNS/pc2HD4IdSXH62TpU=\ngithub.com/gobuffalo/x v0.0.0-20181109195216-5b3131238124/go.mod h1:GpdLUY6/Ztf/3FfxfwsLkDqAGZ0brhlh7LzIibHyZp0=\ngithub.com/gobuffalo/x v0.0.0-20181110221217-14085ca3e1a9/go.mod h1:ig5vdn4+5IPtxgESlZWo1SSDyHKKef8EjVVKhY9kkIQ=\ngithub.com/gobuffalo/x v0.0.0-20190224155809-6bb134105960/go.mod h1:ig5vdn4+5IPtxgESlZWo1SSDyHKKef8EjVVKhY9kkIQ=\ngithub.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=\ngithub.com/godbus/dbus v4.1.0+incompatible/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=\ngithub.com/gofrs/uuid v3.1.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=\ngithub.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=\ngithub.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=\ngithub.com/gogo/googleapis v1.3.0/go.mod h1:d+q1s/xVJxZGKWwC/6UfPIF33J+G1Tq4GYv9Y+Tg/EU=\ngithub.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=\ngithub.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=\ngithub.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=\ngithub.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=\ngithub.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=\ngithub.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=\ngithub.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=\ngithub.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=\ngithub.com/goji/param v0.0.0-20160927210335-d7f49fd7d1ed/go.mod h1:GZJblUu7ACjguvQUK2un6nQBlnZk7H1MzXZdfrFUd8Q=\ngithub.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=\ngithub.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=\ngithub.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=\ngithub.com/golang/lint v0.0.0-20181217174547-8f45f776aaf1/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=\ngithub.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=\ngithub.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=\ngithub.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=\ngithub.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=\ngithub.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=\ngithub.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=\ngithub.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc=\ngithub.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg=\ngithub.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks=\ngithub.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A=\ngithub.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw=\ngithub.com/google/btree v0.0.0-20160524151835-7d79101e329e/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=\ngithub.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=\ngithub.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=\ngithub.com/google/flatbuffers v1.10.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=\ngithub.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=\ngithub.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=\ngithub.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=\ngithub.com/google/go-querystring v0.0.0-20170111101155-53e6ce116135/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=\ngithub.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=\ngithub.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=\ngithub.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=\ngithub.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=\ngithub.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=\ngithub.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=\ngithub.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=\ngithub.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=\ngithub.com/google/uuid v0.0.0-20170306145142-6a5e28554805/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=\ngithub.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=\ngithub.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg=\ngithub.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=\ngithub.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=\ngithub.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=\ngithub.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=\ngithub.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU=\ngithub.com/gophercloud/gophercloud v0.0.0-20180828235145-f29afc2cceca/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4=\ngithub.com/gophercloud/gophercloud v0.0.0-20190126172459-c818fa66e4c8/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4=\ngithub.com/gophercloud/gophercloud v0.0.0-20190307220656-fe1ba5ce12dd/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=\ngithub.com/gophercloud/gophercloud v0.6.0/go.mod h1:GICNByuaEBibcjmjvI7QvYJSZEbGkcYwAR7EZK2WMqM=\ngithub.com/gopherjs/gopherjs v0.0.0-20180825215210-0210a2f0f73c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=\ngithub.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=\ngithub.com/goreleaser/goreleaser v0.94.0/go.mod h1:OjbYR2NhOI6AEUWCowMSBzo9nP1aRif3sYtx+rhp+Zo=\ngithub.com/goreleaser/nfpm v0.9.7/go.mod h1:F2yzin6cBAL9gb+mSiReuXdsfTrOQwDMsuSpULof+y4=\ngithub.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=\ngithub.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/mux v1.7.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1/go.mod h1:YeAe0gNeiNT5hoiZRI4yiOky6jVdNvfO2N6Kav/HmxY=\ngithub.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=\ngithub.com/gorilla/sessions v1.1.2/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w=\ngithub.com/gorilla/sessions v1.1.3/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w=\ngithub.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=\ngithub.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=\ngithub.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=\ngithub.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=\ngithub.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=\ngithub.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=\ngithub.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=\ngithub.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=\ngithub.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw=\ngithub.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=\ngithub.com/grpc-ecosystem/grpc-gateway v1.9.2/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=\ngithub.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=\ngithub.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=\ngithub.com/hashicorp/consul v1.6.2/go.mod h1:kZmEKWDGa47nEdLEbvJyh14uTBpG37Wo6N39Vfpo7uE=\ngithub.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=\ngithub.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=\ngithub.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=\ngithub.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=\ngithub.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=\ngithub.com/hashicorp/go-bexpr v0.1.2/go.mod h1:ANbpTX1oAql27TZkKVeW8p1w8NTdnyzPe/0qqPCKohU=\ngithub.com/hashicorp/go-checkpoint v0.0.0-20171009173528-1545e56e46de/go.mod h1:xIwEieBHERyEvaeKF/TcHh1Hu+lxPM+n2vT1+g9I4m4=\ngithub.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg=\ngithub.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=\ngithub.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=\ngithub.com/hashicorp/go-discover v0.0.0-20190403160810-22221edb15cd/go.mod h1:ueUgD9BeIocT7QNuvxSyJyPAM9dfifBcaWmeybb67OY=\ngithub.com/hashicorp/go-discover v0.0.0-20190905142513-34a650575f6c/go.mod h1:FTV98wIi2RF5iDl1iLR/cB+no+B//ODP6133EcC9djw=\ngithub.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI=\ngithub.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=\ngithub.com/hashicorp/go-hclog v0.9.1/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=\ngithub.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=\ngithub.com/hashicorp/go-hclog v0.10.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=\ngithub.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=\ngithub.com/hashicorp/go-immutable-radix v1.1.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=\ngithub.com/hashicorp/go-memdb v0.0.0-20180223233045-1289e7fffe71/go.mod h1:kbfItVoBJwCfKXDXN4YoAXjxcFVZ7MRrJzyTX6H4giE=\ngithub.com/hashicorp/go-memdb v1.0.4/go.mod h1:LWQ8R70vPrS4OEY9k28D2z8/Zzyu34NVzeRibGAzHO0=\ngithub.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=\ngithub.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=\ngithub.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=\ngithub.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY=\ngithub.com/hashicorp/go-raftchunking v0.6.1/go.mod h1:cGlg3JtDy7qy6c/3Bu660Mic1JF+7lWqIwCFSb08fX0=\ngithub.com/hashicorp/go-raftchunking v0.6.2/go.mod h1:cGlg3JtDy7qy6c/3Bu660Mic1JF+7lWqIwCFSb08fX0=\ngithub.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=\ngithub.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=\ngithub.com/hashicorp/go-retryablehttp v0.6.3/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=\ngithub.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=\ngithub.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=\ngithub.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=\ngithub.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A=\ngithub.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=\ngithub.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=\ngithub.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=\ngithub.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=\ngithub.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=\ngithub.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=\ngithub.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=\ngithub.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=\ngithub.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=\ngithub.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=\ngithub.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=\ngithub.com/hashicorp/hil v0.0.0-20160711231837-1e86c6b523c5/go.mod h1:KHvg/R2/dPtaePb16oW4qIyzkMxXOL38xjRN64adsts=\ngithub.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE=\ngithub.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=\ngithub.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=\ngithub.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY=\ngithub.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=\ngithub.com/hashicorp/memberlist v0.1.5/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=\ngithub.com/hashicorp/net-rpc-msgpackrpc v0.0.0-20151116020338-a14192a58a69/go.mod h1:/z+jUGRBlwVpUZfjute9jWaF6/HuhjuFQuL1YXzVD1Q=\ngithub.com/hashicorp/raft v1.1.0/go.mod h1:4Ak7FSPnuvmb0GV6vgIAJ4vYT4bek9bb6Q+7HVbyzqM=\ngithub.com/hashicorp/raft v1.1.1/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8=\ngithub.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea/go.mod h1:pNv7Wc3ycL6F5oOWn+tPGo2gWD4a5X+yp/ntwdKLjRk=\ngithub.com/hashicorp/raft-boltdb v0.0.0-20191021154308-4207f1bf0617/go.mod h1:aUF6HQr8+t3FC/ZHAC+pZreUBhTaxumuu3L+d37uRxk=\ngithub.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=\ngithub.com/hashicorp/serf v0.8.5/go.mod h1:UpNcs7fFbpKIyZaUuSW6EPiH+eZC7OuyFD+wc1oal+k=\ngithub.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q=\ngithub.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M=\ngithub.com/hashicorp/vic v1.5.1-0.20190403131502-bbfe86ec9443/go.mod h1:bEpDU35nTu0ey1EXjwNwPjI9xErAsoOCmcMb9GKvyxo=\ngithub.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=\ngithub.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=\ngithub.com/hashicorp/yamux v0.0.0-20190923154419-df201c70410d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=\ngithub.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=\ngithub.com/hudl/fargo v1.2.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=\ngithub.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=\ngithub.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/inconshreveable/log15 v0.0.0-20180818164646-67afb5ed74ec/go.mod h1:cOaXtrgN4ScfRrD9Bre7U1thNq5RtJ8ZoP4iXVGRj6o=\ngithub.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=\ngithub.com/influxdata/flux v0.34.1/go.mod h1:GvaTIeU904jG5Q7kwsfPFyXD61I7eSSGO30p+y0XOmk=\ngithub.com/influxdata/influxdb v1.7.6/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY=\ngithub.com/influxdata/influxql v1.0.0/go.mod h1:KpVI7okXjK6PRi3Z5B+mtKZli+R1DnZgb3N+tzevNgo=\ngithub.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE=\ngithub.com/influxdata/roaring v0.4.12/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE=\ngithub.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0=\ngithub.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po=\ngithub.com/infobloxopen/go-trees v0.0.0-20190313150506-2af4e13f9062/go.mod h1:PcNJqIlcX/dj3DTG/+QQnRvSgTMG6CLpRMjWcv4+J6w=\ngithub.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ=\ngithub.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=\ngithub.com/jackc/pgx v3.3.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=\ngithub.com/jarcoal/httpmock v0.0.0-20180424175123-9c70cfe4a1da/go.mod h1:ks+b9deReOc7jgqp+e7LuFiCBH6Rm5hL32cLcEAArb4=\ngithub.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=\ngithub.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=\ngithub.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=\ngithub.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8=\ngithub.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=\ngithub.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=\ngithub.com/jmoiron/sqlx v0.0.0-20180614180643-0dae4fefe7c0/go.mod h1:IiEW3SEiiErVyFdH8NTuWjSifiEQKUoyK3LNqr2kCHU=\ngithub.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=\ngithub.com/joho/godotenv v1.2.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=\ngithub.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=\ngithub.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=\ngithub.com/joyent/triton-go v0.0.0-20180628001255-830d2b111e62/go.mod h1:U+RSyWxWd04xTqnuOQxnai7XGS2PrPY2cfGoDKtMHjA=\ngithub.com/joyent/triton-go v1.7.0/go.mod h1:zCt/it+QSYSRfzGPKw2zKK9pg3XqS3OoDoKjvOSOjJQ=\ngithub.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0=\ngithub.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=\ngithub.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=\ngithub.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=\ngithub.com/jsternberg/zap-logfmt v1.2.0/go.mod h1:kz+1CUmCutPWABnNkOu9hOHKdT2q3TDYCcsFy9hpqb0=\ngithub.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=\ngithub.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=\ngithub.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=\ngithub.com/jung-kurt/gofpdf v1.5.1/go.mod h1:oIiEpiXAwTUssrFUGgVj4SO17oiCYsfnTjeQZz/amnM=\ngithub.com/justinas/alice v0.0.0-20171023064455-03f45bd4b7da/go.mod h1:oLH0CmIaxCGXD67VKGR5AacGXZSMznlmeqM8RzPrcY8=\ngithub.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0=\ngithub.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=\ngithub.com/karrick/godirwalk v1.7.7/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=\ngithub.com/karrick/godirwalk v1.7.8/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=\ngithub.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=\ngithub.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=\ngithub.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=\ngithub.com/kevinburke/ssh_config v0.0.0-20180830205328-81db2a75821e/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=\ngithub.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=\ngithub.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=\ngithub.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=\ngithub.com/klauspost/compress v1.7.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=\ngithub.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=\ngithub.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=\ngithub.com/klauspost/pgzip v1.2.1/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=\ngithub.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=\ngithub.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=\ngithub.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=\ngithub.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=\ngithub.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=\ngithub.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=\ngithub.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=\ngithub.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=\ngithub.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=\ngithub.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=\ngithub.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=\ngithub.com/lightstep/lightstep-tracer-go v0.16.0/go.mod h1:6AMpwZpsyCFwSovxzM78e+AsYxE8sGwiM6C3TytaWeI=\ngithub.com/linode/linodego v0.7.1/go.mod h1:ga11n3ivecUrPCHN0rANxKmfWBJVkOXfLMZinAbj2sY=\ngithub.com/linode/linodego v0.12.0/go.mod h1:cQFzVqVu5KeFy2ZSTWTA/qVNYYa9ZY8uePJZsFG7EYs=\ngithub.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04=\ngithub.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk=\ngithub.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao=\ngithub.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58=\ngithub.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=\ngithub.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=\ngithub.com/markbates/deplist v1.0.4/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM=\ngithub.com/markbates/deplist v1.0.5/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM=\ngithub.com/markbates/deplist v1.1.3/go.mod h1:BF7ioVzAJYEtzQN/os4rt8H8Ti3h0T7EoN+7eyALktE=\ngithub.com/markbates/deplist v1.2.0/go.mod h1:dtsWLZ5bWoazbM0rCxZncQaAPifWbvHgBJk8UNI1Yfk=\ngithub.com/markbates/going v1.0.2/go.mod h1:UWCk3zm0UKefHZ7l8BNqi26UyiEMniznk8naLdTcy6c=\ngithub.com/markbates/going v1.0.3/go.mod h1:fQiT6v6yQar9UD6bd/D4Z5Afbk9J6BBVBtLiyY4gp2o=\ngithub.com/markbates/grift v1.0.4/go.mod h1:wbmtW74veyx+cgfwFhlnnMWqhoz55rnHR47oMXzsyVs=\ngithub.com/markbates/grift v1.0.5/go.mod h1:EHmVIjOQoj/OOBDzlZ8RW0ZkvOtQ4xRHjrPvmfoiFaU=\ngithub.com/markbates/grift v1.0.6/go.mod h1:2AUYA/+pODhwonRbYwsltPVPIztBzw5nIJEGiWgKMPM=\ngithub.com/markbates/hmax v1.0.0/go.mod h1:cOkR9dktiESxIMu+65oc/r/bdY4bE8zZw3OLhLx0X2c=\ngithub.com/markbates/hmax v1.1.0/go.mod h1:hhn8pJiRwNTEmNlxhfiTbL+CtEYiAX3wuhSf/kg/6wI=\ngithub.com/markbates/inflect v1.0.0/go.mod h1:oTeZL2KHA7CUX6X+fovmK9OvIOFuqu0TwdQrZjLTh88=\ngithub.com/markbates/inflect v1.0.1/go.mod h1:uv3UVNBe5qBIfCm8O8Q+DW+S1EopeyINj+Ikhc7rnCk=\ngithub.com/markbates/inflect v1.0.3/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs=\ngithub.com/markbates/inflect v1.0.4/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs=\ngithub.com/markbates/oncer v0.0.0-20180924031910-e862a676800b/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/oncer v0.0.0-20180924034138-723ad0170a46/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/oncer v0.0.0-20181014194634-05fccaae8fc4/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/refresh v1.4.10/go.mod h1:NDPHvotuZmTmesXxr95C9bjlw1/0frJwtME2dzcVKhc=\ngithub.com/markbates/refresh v1.4.11/go.mod h1:awpJuyo4zgexB/JaHfmBX0sRdvOjo2dXwIayWIz9i3g=\ngithub.com/markbates/refresh v1.5.0/go.mod h1:ZYMLkxV+x7wXQ2Xd7bXAPyF0EXiEWAMfiy/4URYb1+M=\ngithub.com/markbates/refresh v1.6.0/go.mod h1:p8jWGABFUaFf/cSw0pxbo0MQVujiz5NTQ0bmCHLC4ac=\ngithub.com/markbates/refresh v1.7.1/go.mod h1:hcGVJc3m5EeskliwSVJxcTHzUtMz2h8gBtCS0V94CgE=\ngithub.com/markbates/safe v1.0.0/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=\ngithub.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=\ngithub.com/markbates/sigtx v1.0.0/go.mod h1:QF1Hv6Ic6Ca6W+T+DL0Y/ypborFKyvUY9HmuCD4VeTc=\ngithub.com/markbates/willie v1.0.9/go.mod h1:fsrFVWl91+gXpx/6dv715j7i11fYPfZ9ZGfH0DQzY7w=\ngithub.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk=\ngithub.com/martini-contrib/render v0.0.0-20150707142108-ec18f8345a11/go.mod h1:Ah2dBMoxZEqk118as2T4u4fjfXarE0pPnMJaArZQZsI=\ngithub.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=\ngithub.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=\ngithub.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=\ngithub.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=\ngithub.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=\ngithub.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=\ngithub.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=\ngithub.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=\ngithub.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=\ngithub.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=\ngithub.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=\ngithub.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=\ngithub.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE=\ngithub.com/mattn/go-zglob v0.0.0-20171230104132-4959821b4817/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo=\ngithub.com/mattn/go-zglob v0.0.0-20180803001819-2ea3427bfa53/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo=\ngithub.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=\ngithub.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY=\ngithub.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=\ngithub.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc=\ngithub.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=\ngithub.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=\ngithub.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=\ngithub.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=\ngithub.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=\ngithub.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=\ngithub.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=\ngithub.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=\ngithub.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=\ngithub.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=\ngithub.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=\ngithub.com/mitchellh/hashstructure v0.0.0-20170609045927-2bca23e0e452/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ=\ngithub.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ=\ngithub.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=\ngithub.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=\ngithub.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=\ngithub.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=\ngithub.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=\ngithub.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=\ngithub.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGEJq24YyJ2ban8EO0RUVSJlF1pGsEvoLEACr/Q=\ngithub.com/monoculum/formam v0.0.0-20190307031628-bc555adff0cd/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc=\ngithub.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=\ngithub.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=\ngithub.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=\ngithub.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0=\ngithub.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E=\ngithub.com/nats-io/go-nats v1.7.2/go.mod h1:+t7RHT5ApZebkrQdnn6AhQJmhJJiKAvJUio1PiiCtj0=\ngithub.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4=\ngithub.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=\ngithub.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU=\ngithub.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo=\ngithub.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM=\ngithub.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q=\ngithub.com/nicolai86/scaleway-sdk v1.10.2-0.20180628010248-798f60e20bb2/go.mod h1:TLb2Sg7HQcgGdloNxkrmtgDNR9uVYF3lfdFIN4Ro6Sk=\ngithub.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=\ngithub.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=\ngithub.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=\ngithub.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=\ngithub.com/olekukonko/tablewriter v0.0.0-20180130162743-b8a9be070da4/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=\ngithub.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=\ngithub.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=\ngithub.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=\ngithub.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis=\ngithub.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=\ngithub.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=\ngithub.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=\ngithub.com/openzipkin-contrib/zipkin-go-opentracing v0.3.5/go.mod h1:uVHyebswE1cCXr2A73cRM2frx5ld1RJUCJkFNZ90ZiI=\ngithub.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8=\ngithub.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=\ngithub.com/orcaman/concurrent-map v0.0.0-20190107190726-7ed82d9cb717/go.mod h1:Lu3tH6HLW3feq74c2GC+jIMS/K2CFcDWnWD9XkenwhI=\ngithub.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0=\ngithub.com/packethost/packngo v0.1.1-0.20180711074735-b9cb5096f54c/go.mod h1:otzZQXgoO96RTzDB/Hycg0qZcXZsWJGJRSXbmEIJ+4M=\ngithub.com/packethost/packngo v0.2.0/go.mod h1:RQHg5xR1F614BwJyepfMqrKN+32IH0i7yX+ey43rEeQ=\ngithub.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=\ngithub.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=\ngithub.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE=\ngithub.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=\ngithub.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo=\ngithub.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=\ngithub.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=\ngithub.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=\ngithub.com/peterh/liner v1.1.0/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0=\ngithub.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=\ngithub.com/phpdave11/gofpdi v1.0.3/go.mod h1:B7ryN7q4MLItB8BDM5PJAplblJegAAcaI98viOZUihg=\ngithub.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=\ngithub.com/pierrec/lz4 v2.3.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=\ngithub.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=\ngithub.com/pkg/sftp v1.10.0/go.mod h1:NxmoDg/QLVWluQDUYG7XBZTLUpKeFa8e3aMf1BfjyHk=\ngithub.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ=\ngithub.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=\ngithub.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=\ngithub.com/pressly/chi v4.0.2+incompatible/go.mod h1:s/kslmeFE633XtTPvfX2olbs4ymzIHxGGXmEJ/AvPT8=\ngithub.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=\ngithub.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=\ngithub.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM=\ngithub.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=\ngithub.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=\ngithub.com/prometheus/client_golang v1.2.1/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U=\ngithub.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=\ngithub.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=\ngithub.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=\ngithub.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=\ngithub.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=\ngithub.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=\ngithub.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=\ngithub.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=\ngithub.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=\ngithub.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=\ngithub.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=\ngithub.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=\ngithub.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=\ngithub.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=\ngithub.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=\ngithub.com/prometheus/procfs v0.0.7/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=\ngithub.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=\ngithub.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=\ngithub.com/remyoudompheng/bigfft v0.0.0-20190512091148-babf20351dd7/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=\ngithub.com/renier/xmlrpc v0.0.0-20170708154548-ce4a1a486c03/go.mod h1:gRAiPF5C5Nd0eyyRdqIu9qTiFSoZzpTq727b5B8fkkU=\ngithub.com/renier/xmlrpc v0.0.0-20191022213033-ce560eccbd00/go.mod h1:gRAiPF5C5Nd0eyyRdqIu9qTiFSoZzpTq727b5B8fkkU=\ngithub.com/retailnext/hllpp v1.0.0/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc=\ngithub.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=\ngithub.com/rogpeppe/go-internal v1.0.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=\ngithub.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=\ngithub.com/rs/zerolog v1.4.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=\ngithub.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=\ngithub.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=\ngithub.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w=\ngithub.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk=\ngithub.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=\ngithub.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=\ngithub.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=\ngithub.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=\ngithub.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=\ngithub.com/sean-/conswriter v0.0.0-20180208195008-f5ae3917a627/go.mod h1:7zjs06qF79/FKAJpBvFx3P8Ww4UTIMAe+lpNXDHziac=\ngithub.com/sean-/pager v0.0.0-20180208200047-666be9bf53b5/go.mod h1:BeybITEsBEg6qbIiqJ6/Bqeq25bCLbL7YFmpaFfJDuM=\ngithub.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=\ngithub.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo=\ngithub.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs=\ngithub.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=\ngithub.com/serialx/hashring v0.0.0-20180504054112-49a4782e9908/go.mod h1:/yeG0My1xr/u+HZrFQ1tOQQQQrOawfyMUH13ai5brBc=\ngithub.com/shirou/gopsutil v0.0.0-20181107111621-48177ef5f880/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=\ngithub.com/shirou/gopsutil v2.19.10+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=\ngithub.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=\ngithub.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=\ngithub.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY=\ngithub.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM=\ngithub.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0=\ngithub.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=\ngithub.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=\ngithub.com/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw=\ngithub.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c/go.mod h1:8d3azKNyqcHP1GaQE/c6dDgjkgSx2BZ4IoEi4F1reUI=\ngithub.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU=\ngithub.com/shurcooL/highlight_go v0.0.0-20170515013102-78fb10f4a5f8/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag=\ngithub.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag=\ngithub.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9/go.mod h1:+rgNQw2P9ARFAs37qieuu7ohDNQ3gds9msbT2yn85sg=\ngithub.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50/go.mod h1:zPn1wHpTIePGnXSHpsVPWEktKXHr6+SS6x/IKRb7cpw=\ngithub.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc/go.mod h1:aYMfkZ6DWSJPJ6c4Wwz3QtW22G7mf/PEgaB9k/ik5+Y=\ngithub.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=\ngithub.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9/go.mod h1:919LwcH0M7/W4fcZ0/jy0qGght1GIhqyS/EgWGH2j5Q=\ngithub.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191/go.mod h1:e2qWDig5bLteJ4fwvDAc2NHzqFEthkqn7aOZAOpj+PQ=\ngithub.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241/go.mod h1:NPpHK2TI7iSaM0buivtFUc9offApnI0Alt/K8hcHy0I=\ngithub.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122/go.mod h1:b5uSkrEVM1jQUspwbixRBhaIjIzL2xazXp6kntxYle0=\ngithub.com/shurcooL/octicon v0.0.0-20180602230221-c42b0e3b24d9/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ=\ngithub.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ=\ngithub.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82/go.mod h1:TCR1lToEk4d2s07G3XGfz2QrgHXg4RJBvjrOozvoWfk=\ngithub.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=\ngithub.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4=\ngithub.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw=\ngithub.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=\ngithub.com/sirupsen/logrus v1.1.0/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A=\ngithub.com/sirupsen/logrus v1.1.1/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A=\ngithub.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=\ngithub.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=\ngithub.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=\ngithub.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=\ngithub.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=\ngithub.com/smartystreets/assertions v0.0.0-20180820201707-7c9eb446e3cf/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=\ngithub.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM=\ngithub.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=\ngithub.com/softlayer/softlayer-go v0.0.0-20180806151055-260589d94c7d/go.mod h1:Cw4GTlQccdRGSEf6KiMju767x0NEHE0YIVPJSaXjlsw=\ngithub.com/softlayer/softlayer-go v1.0.0/go.mod h1:Cw4GTlQccdRGSEf6KiMju767x0NEHE0YIVPJSaXjlsw=\ngithub.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=\ngithub.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=\ngithub.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE=\ngithub.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA=\ngithub.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=\ngithub.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=\ngithub.com/spf13/afero v1.2.0/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=\ngithub.com/spf13/afero v1.2.1/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=\ngithub.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=\ngithub.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg=\ngithub.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=\ngithub.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=\ngithub.com/spf13/cobra v0.0.4/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=\ngithub.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=\ngithub.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=\ngithub.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/spf13/viper v1.2.1/go.mod h1:P4AexN0a+C9tGAnUFNwDMYYZv3pjFuvmeiMyKRaNVlI=\ngithub.com/spf13/viper v1.3.0/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=\ngithub.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=\ngithub.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=\ngithub.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=\ngithub.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI=\ngithub.com/stathat/go v1.0.0/go.mod h1:+9Eg2szqkcOGWv6gfheJmBBsmq9Qf5KDbzy8/aYYR0c=\ngithub.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=\ngithub.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=\ngithub.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=\ngithub.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=\ngithub.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=\ngithub.com/tent/http-link-go v0.0.0-20130702225549-ac974c61c2f9/go.mod h1:RHkNRtSLfOK7qBTHaeSX1D6BNpI3qw7NTxsmNr4RvN8=\ngithub.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=\ngithub.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2/go.mod h1:WjeM0Oo1eNAjXGDx2yma7uG2XoyRZTq1uv3M/o7imD0=\ngithub.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPfx6jb1bBgRFjl5lytqVqZXEaeqWP8lTEao=\ngithub.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4=\ngithub.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=\ngithub.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=\ngithub.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31/go.mod h1:onvgF043R+lC5RZ8IT9rBXDaEDnpnw/Cl+HFiw+v/7Q=\ngithub.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=\ngithub.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=\ngithub.com/uber/jaeger-lib v1.5.0/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=\ngithub.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=\ngithub.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=\ngithub.com/unrolled/secure v0.0.0-20180918153822-f340ee86eb8b/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/unrolled/secure v0.0.0-20181005190816-ff9db2ff917f/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/unrolled/secure v0.0.0-20181022170031-4b6b7cf51606/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/unrolled/secure v0.0.0-20190103195806-76e6d4e9b90c/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=\ngithub.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=\ngithub.com/vmware/govmomi v0.18.0/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU=\ngithub.com/vmware/govmomi v0.21.0/go.mod h1:zbnFoBQ9GIjs2RVETy8CNEpb+L+Lwkjs3XZUL0B3/m0=\ngithub.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728/go.mod h1:x9oS4Wk2s2u4tS29nEaDLdzvuHdB19CvSGJjPgkZJNk=\ngithub.com/xanzy/ssh-agent v0.2.0/go.mod h1:0NyE30eGUDliuLEHJgYte/zncp2zdTStcOnWhgSqHD8=\ngithub.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=\ngithub.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=\ngithub.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=\ngithub.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=\ngo.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=\ngo.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=\ngo.etcd.io/etcd v0.5.0-alpha.5.0.20190917205325-a14579fbfb1a/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=\ngo.etcd.io/etcd v3.3.13+incompatible/go.mod h1:yaeTdrJi5lOmYerz05bd8+V7KubZs8YSFZfzsF9A6aI=\ngo.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA=\ngo.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=\ngo.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=\ngo.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=\ngo.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=\ngo.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=\ngo.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=\ngo.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=\ngo.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=\ngo4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE=\ngolang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw=\ngolang.org/x/build v0.0.0-20190626175840-54405f243e45/go.mod h1:fYw7AShPAhGMdXqA9gRadk/CcMsvLlClpE5oBwnS3dM=\ngolang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20180910181607-0e37d006457b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181015023909-0c41d7ab0a0e/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181024171144-74cb1d3d52f4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181025113841-85e1b3f9139a/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181025213731-e84da0312774/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181106171534-e4dc69e5b2fd/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190122013713-64072686203f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190130090550-b01c7a725664/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190403202508-8e1b8d32e692/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190424203555-c05e17bb3b2d/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=\ngolang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20191117063200-497ca9f6d64f/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=\ngolang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20181112044915-a3060d491354/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=\ngolang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=\ngolang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=\ngolang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=\ngolang.org/x/image v0.0.0-20190507092727-e4e5bf290fec/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=\ngolang.org/x/image v0.0.0-20190622003408-7e034cad6442/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=\ngolang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=\ngolang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=\ngolang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=\ngolang.org/x/mobile v0.0.0-20190607214518-6fa95d984e88/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=\ngolang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=\ngolang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=\ngolang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=\ngolang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180611182652-db08ff08e862/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180816102801-aaf60122140d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180921000356-2f5d2388922f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180926154720-4dfa2610cdf3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181017193950-04a2e542c03f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181029044818-c44066c5c816/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181108082009-03003ca0c849/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181207154023-610586996380/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181213202711-891ebc4b82d6/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190119204137-ed066c81e75e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190206173232-65e2d4e15006/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190502183928-7f726cade0ab/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190514140710-3ec191127204/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=\ngolang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=\ngolang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20191003171128-d98b1b443823/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20191116160921-f9c825593386/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/oauth2 v0.0.0-20170807180024-9a379c6b3e95/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=\ngolang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=\ngolang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=\ngolang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=\ngolang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180903190138-2b024373dcd9/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180906133057-8cf3aee42992/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180921163948-d47a0f339242/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180927150500-dad3d9fb7b6e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181005133103-4497e2df6f9e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181011152604-fa43e7bc11ba/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181019084534-8f1d3d21f81b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181022134430-8a28ead16f52/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181024145615-5cd93ef61a7c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181025063200-d989b31c8746/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181026064943-731415f00dce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181030150119-7e31e0c00fa0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181106135930-3a76605856fd/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181206074257-70b957f3b65e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181213150753-586ba8c9bb14/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181213200352-4d1cda033e06/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190116161447-11f53e031339/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190122071731-054c452bb702/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190220154126-629670e5acc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190508220229-2d0786266e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190523142557-0e01d883c5c5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191118013547-6254a7c3cac6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=\ngolang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=\ngolang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181003024731-2f84ea8ef872/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181006002542-f60d9635b16a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181008205924-a2b3f7f249e9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181013182035-5e66757b835f/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181017214349-06f26fdaaa28/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181019005945-6adeb8aab2de/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181024171208-a2dc47679d30/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181026183834-f60e5f99f081/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181030151751-bb28844c46df/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181102223251-96e9e165b75e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181105230042-78dc5bac0cac/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181107215632-34b416bd17b3/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181109152631-138c20b93253/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181109202920-92d8274bd7b8/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181111003725-6d71ab8aade0/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181114190951-94339b83286c/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181119130350-139d099f6620/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181120060634-fc4f04983f62/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181122213734-04b5d21e00f1/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181127195227-b4e97c0ed882/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181127232545-e782529d0ddd/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181201035826-d0ca3933b724/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181203210056-e5f3ab76ea4b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181205224935-3576414c54a4/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181206194817-bcd4e47d0288/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181207183836-8bc39b988060/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181212172921-837e80568c09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181213190329-bbccd8cae4a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181221154417-3ad2d988d5e2/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190102213336-ca9055ed7d04/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190104182027-498d95493402/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190111214448-fc1d57b08d7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190118193359-16909d206f00/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190122202912-9c309ee22fab/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190124004107-78ee07aa9465/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190131142011-8dbcc66f33bb/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190206221403-44bcb96178d3/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190214204934-8dcb7bc8c7fe/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44=\ngolang.org/x/tools v0.0.0-20190219135230-f000d56b39dc/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44=\ngolang.org/x/tools v0.0.0-20190219185102-9394956cfdc5/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44=\ngolang.org/x/tools v0.0.0-20190221204921-83362c3779f5/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=\ngolang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=\ngolang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190315044204-8b67d361bba2/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190318200714-bb1270c20edf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190404132500-923d25813098/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190407030857-0fdf0c73855b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20190603152906-08e0b306e832/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190603231351-8aaa1484dc10/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190613204242-ed0dc450797f/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190624190245-7f2218787638/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190626204024-7ef8a99cf38d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=\ngonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=\ngoogle.golang.org/api v0.0.0-20180829000535-087779f1d2c9/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=\ngoogle.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=\ngoogle.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=\ngoogle.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y=\ngoogle.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=\ngoogle.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=\ngoogle.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=\ngoogle.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=\ngoogle.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=\ngoogle.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=\ngoogle.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=\ngoogle.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=\ngoogle.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=\ngoogle.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg=\ngoogle.golang.org/genproto v0.0.0-20190201180003-4b09977fb922/go.mod h1:L3J43x8/uS+qIUoksaLKe6OS3nUKxOKuIFz1sl2/jx4=\ngoogle.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=\ngoogle.golang.org/genproto v0.0.0-20190626174449-989357319d63/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=\ngoogle.golang.org/genproto v0.0.0-20190701230453-710ae3a149df/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=\ngoogle.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=\ngoogle.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=\ngoogle.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=\ngoogle.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=\ngoogle.golang.org/genproto v0.0.0-20191115221424-83cc0476cb11/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=\ngoogle.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=\ngoogle.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio=\ngoogle.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=\ngoogle.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=\ngoogle.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=\ngoogle.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=\ngoogle.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=\ngoogle.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=\ngoogle.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=\ngoogle.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=\ngopkg.in/DataDog/dd-trace-go.v1 v1.19.0/go.mod h1:DVp8HmDh8PuTu2Z0fVVlBsyWaC++fzwVCaGWylTe3tg=\ngopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=\ngopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=\ngopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=\ngopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=\ngopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=\ngopkg.in/couchbase/gocbcore.v7 v7.1.11/go.mod h1:48d2Be0MxRtsyuvn+mWzqmoGUG9uA00ghopzOs148/E=\ngopkg.in/couchbaselabs/gocbconnstr.v1 v1.0.2/go.mod h1:ZjII0iKx4Veo6N6da+pEZu/ptNyKLg9QTVt7fFmR6sw=\ngopkg.in/couchbaselabs/jsonx.v1 v1.0.0/go.mod h1:oR201IRovxvLW/eISevH12/+MiKHtNQAKfcX8iWZvJY=\ngopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=\ngopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=\ngopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=\ngopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo=\ngopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=\ngopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=\ngopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw=\ngopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s=\ngopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=\ngopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=\ngopkg.in/mail.v2 v2.0.0-20180731213649-a0242b2233b4/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw=\ngopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U=\ngopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=\ngopkg.in/resty.v1 v1.9.1/go.mod h1:vo52Hzryw9PnPHcJfPsBiFW62XhNx5OczbV9y+IMpgc=\ngopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=\ngopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=\ngopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=\ngopkg.in/square/go-jose.v2 v2.4.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=\ngopkg.in/src-d/go-billy.v4 v4.2.1/go.mod h1:tm33zBoOwxjYHZIE+OV8bxTWFMJLrconzFMd38aARFk=\ngopkg.in/src-d/go-git-fixtures.v3 v3.1.1/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g=\ngopkg.in/src-d/go-git.v4 v4.8.1/go.mod h1:Vtut8izDyrM8BUVQnzJ+YvmNcem2J89EmfZYCkLokZk=\ngopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=\ngopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0=\ngopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=\ngopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg=\ngopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=\ngopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngrpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o=\nhonnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20181108184350-ae8f1f9103cc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=\nistio.io/gogo-genproto v0.0.0-20190124151557-6d926a6e6feb/go.mod h1:eIDJ6jNk/IeJz6ODSksHl5Aiczy5JUq6vFhJWI5OtiI=\nk8s.io/api v0.0.0-20180806132203-61b11ee65332/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA=\nk8s.io/api v0.0.0-20190325185214-7544f9db76f6/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA=\nk8s.io/api v0.0.0-20190620084959-7cf5895f2711/go.mod h1:TBhBqb1AWbBQbW3XRusr7n7E4v2+5ZY8r8sAMnyFC5A=\nk8s.io/api v0.0.0-20191115135540-bbc9463b57e5/go.mod h1:iA/8arsvelvo4IDqIhX4IbjTEKBGgvsf2OraTuRtLFU=\nk8s.io/apimachinery v0.0.0-20180821005732-488889b0007f/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0=\nk8s.io/apimachinery v0.0.0-20190223001710-c182ff3b9841/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0=\nk8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719/go.mod h1:I4A+glKBHiTgiEjQiCCQfCAIcIMFGt291SmsvcrFzJA=\nk8s.io/apimachinery v0.0.0-20191115015347-3c7067801da2/go.mod h1:dXFS2zaQR8fyzuvRdJDHw2Aerij/yVGJSre0bZQSVJA=\nk8s.io/apimachinery v0.0.0-20191116203941-08e4eafd6d11/go.mod h1:dXFS2zaQR8fyzuvRdJDHw2Aerij/yVGJSre0bZQSVJA=\nk8s.io/client-go v0.0.0-20190620085101-78d2af792bab/go.mod h1:E95RaSlHr79aHaX0aGSwcPNfygDiPKOVXdmivCIZT0k=\nk8s.io/client-go v8.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=\nk8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=\nk8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=\nk8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=\nk8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=\nk8s.io/klog v0.3.1/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=\nk8s.io/klog v0.4.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=\nk8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=\nk8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc=\nk8s.io/kube-openapi v0.0.0-20190306001800-15615b16d372/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc=\nk8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=\nk8s.io/utils v0.0.0-20190221042446-c2654d5206da/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0=\nk8s.io/utils v0.0.0-20190529001817-6999998975a7/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=\nk8s.io/utils v0.0.0-20191114200735-6ca3b61696b6/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=\nrsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=\nsigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=\nsigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=\nsourcegraph.com/sourcegraph/appdash v0.0.0-20190107175209-d9ea5c54f7dc/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=\nsourcegraph.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67/go.mod h1:L5q+DGLGOQFpo1snNEkLOJT2d1YTW66rWNzatr3He1k=\nsourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck=\nsourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0=\n"
  },
  {
    "path": "server/src/comm/math.go",
    "content": "package comm\n\nimport \"math\"\n\nfunc InvSqrt(x float32) float32 {\n\tvar xhalf float32 = 0.5 * x // get bits for floating VALUE\n\ti := math.Float32bits(x)    // gives initial guess y0\n\ti = 0x5f375a86 - (i >> 1)   // convert bits BACK to float\n\tx = math.Float32frombits(i) // Newton step, repeating increases accuracy\n\tx = x * (1.5 - xhalf*x*x)\n\tx = x * (1.5 - xhalf*x*x)\n\tx = x * (1.5 - xhalf*x*x)\n\treturn 1 / x\n}\n"
  },
  {
    "path": "server/src/comm/proxyMgr.go",
    "content": "package comm\n\nimport (\n\t\"reflect\"\n)\n\n//事件系统\ntype proxyFunc func([]interface{})\ntype ProxyManager struct {\n\t__proxyListenerDict map[string][]proxyFunc\n}\n\nfunc NewProxyManager() *ProxyManager {\n\tvar p = new(ProxyManager)\n\tp.__proxyListenerDict = make(map[string][]proxyFunc)\n\treturn p\n}\n\nfunc (px *ProxyManager) AddListener(eventId string, function proxyFunc) {\n\t//log.Info(\"AddListener %v %v\", eventId, reflect.ValueOf(function))\n\tif evs, o := px.__proxyListenerDict[eventId]; o {\n\t\tpx.__proxyListenerDict[eventId] = append(evs, function)\n\t} else {\n\t\tpx.__proxyListenerDict[eventId] = []proxyFunc{function}\n\t}\n}\n\nfunc (px *ProxyManager) RemoveListener(eventId string, function proxyFunc) bool {\n\tif evs, b := px.__proxyListenerDict[eventId]; b {\n\t\tfor i := 0; i < len(evs); i++ {\n\t\t\to := evs[i]\n\t\t\tif reflect.ValueOf(o) == reflect.ValueOf(function) {\n\t\t\t\tpx.__proxyListenerDict[eventId] = append(evs[:i], evs[i+1:]...)\n\t\t\t\t//fmt.Println(\"len=\", len(px.__proxyListenerDict[eventId]))\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\nfunc (px *ProxyManager) Notify(eventId string, args ...interface{}) {\n\tif evs, b := px.__proxyListenerDict[eventId]; b {\n\t\tfor _, f := range evs {\n\t\t\tf(args)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "server/src/comm/proxy_test.go",
    "content": "package comm\n\nimport (\n\t\"fmt\"\n\n\t\"testing\"\n)\n\nfunc f1(args []interface{}) {\n\tfmt.Println(\"f1 :\", args)\n}\nfunc f2(args []interface{}) {\n\tfmt.Println(\"f2 :\", args)\n}\nfunc fx(args []interface{}) {\n\tfmt.Println(\"fx :\", args)\n}\n\nfunc TestProxy(t *testing.T) {\n\tpr := NewProxyManager()\n\tpr.AddListener(\"test1\", f1)\n\tpr.AddListener(\"test2\", f2)\n\tpr.AddListener(\"test1\", fx)\n\tpr.Notify(\"test1\", \"a\", nil)\n\tpr.Notify(\"test2\", \"c\", \"d\")\n\n\tfmt.Println(pr.RemoveListener(\"test1\", f1))\n\tpr.Notify(\"test1\", \"t1\")\n\tfmt.Println(pr.RemoveListener(\"test1\", fx))\n\tpr.Notify(\"test1\", \"t2\")\n\tfmt.Println(pr.RemoveListener(\"test1\", fx))\n\tpr.Notify(\"testxxxx\", \"t2\")\n\n}\n"
  },
  {
    "path": "server/src/comm/shape.go",
    "content": "package comm\n\n//======================Shape===============================\ntype Shape interface {\n\tPointInRange(d Vector2D) bool\n\tSetPos(d Vector2D)\n}\n\n//======================Rect===============================\ntype Rect struct {\n\tbasePos Vector2D //左下角原点\n\tw       float32\n\th       float32\n}\n\nfunc NewRect(point Vector2D, w, h float32) *Rect {\n\tr := &Rect{point, w, h}\n\treturn r\n}\n\n//点是否在范围内\nfunc (re *Rect) PointInRange(d Vector2D) bool {\n\tif d.X < re.basePos.X || d.Y < re.basePos.Y {\n\t\treturn false\n\t}\n\n\tif d.X > re.basePos.X+re.w || d.Y > re.basePos.Y+re.h {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc (re *Rect) SetPos(d Vector2D) {\n\tre.basePos = d\n}\n\nfunc (re *Rect) GetRect() (Vector2D, float32, float32) {\n\treturn re.basePos, re.w, re.h\n}\n\n//==========================Circle================================\ntype Circle struct {\n\tbasePos Vector2D //圆心\n\tr       float32  //半径\n}\n\nfunc NewCircle(point Vector2D, r float32) *Circle {\n\tc := &Circle{point, r}\n\treturn c\n}\n\nfunc (c *Circle) PointInRange(d Vector2D) bool {\n\tsd := c.basePos.SqrDistance(d)\n\tif sd > c.r*c.r {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc (c *Circle) SetPos(d Vector2D) {\n\tc.basePos = d\n}\n"
  },
  {
    "path": "server/src/comm/tools.go",
    "content": "package comm\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"time\"\n)\n\ntype TimeTaskFunc func()\n\nfunc StartLoopTask(t time.Duration, fun TimeTaskFunc) chan byte {\n\tvar closeSign chan byte\n\tcloseSign = make(chan byte, 1)\n\ttimeTicker := time.NewTicker(t)\n\tgo func() {\n\t\tvar closed bool\n\t\tfor !closed {\n\t\t\tselect {\n\t\t\tcase <-closeSign:\n\t\t\t\ttimeTicker.Stop()\n\t\t\t\tclosed = true\n\t\t\t\tfmt.Println(\"timer stop\")\n\t\t\tcase <-timeTicker.C:\n\t\t\t\tfun()\n\t\t\t}\n\t\t}\n\t\tfmt.Println(\"timer func end\")\n\t}()\n\n\treturn closeSign\n}\n\nfunc CrashNow() {\n\ta := 0\n\tb := 1 / a\n\t_ = b\n}\n\nvar testLastTime time.Time\n\nfunc BeginTimeTest() {\n\ttestLastTime = time.Now()\n}\n\nfunc EndTimeTest() time.Duration {\n\treturn time.Now().Sub(testLastTime)\n}\n\nfunc CheckInSliceI(v int, slice []int) bool {\n\tfor _, vitem := range slice {\n\t\tif v == vitem {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc CheckInSliceI32(v int32, slice []int32) bool {\n\tfor _, vitem := range slice {\n\t\tif v == vitem {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n//\"A\",1,\"B\",2 =>\n//{\"A\":1,\"B\":3}\nfunc MakeDictJson(a ...interface{}) string {\n\tvar m = make(map[string]interface{})\n\tfor i := 0; i < len(a)/2; i++ {\n\t\tm[a[i*2].(string)] = a[i*2+1]\n\t}\n\tvar s, _ = json.Marshal(m)\n\treturn string(s)\n}\n"
  },
  {
    "path": "server/src/comm/vector.go",
    "content": "package comm\n\nimport (\n\t\"fmt\"\n\t\"gameproto\"\n\t\"math\"\n)\n\ntype Vector2D struct {\n\tX float32\n\tY float32\n}\n\nfunc NewVector2D(x, y float32) Vector2D {\n\treturn Vector2D{x, y}\n}\n\nfunc FromScalar(v float32) Vector2D {\n\treturn Vector2D{v, v}\n}\n\nfunc FromRadians(r float32) Vector2D {\n\treturn Vector2D{float32(math.Cos(float64(r))), float32(math.Sin(float64(r)))}\n}\n\nfunc Vector2DZero() Vector2D {\n\treturn Vector2D{0, 0}\n}\n\nfunc Vector2DUnit() Vector2D {\n\treturn Vector2D{1, 1}\n}\n\nfunc (v Vector2D) ToFVector() *gameproto.FVector {\n\treturn &gameproto.FVector{v.X, v.Y}\n}\n\nfunc (v Vector2D) Copy() Vector2D {\n\treturn Vector2D{v.X, v.Y}\n}\n\n//模\nfunc (v Vector2D) Magnitude() float32 {\n\tf64 := float64(v.SqrMagnitude())\n\tr := math.Sqrt(f64)\n\treturn float32(r)\n}\n\n//模平方\nfunc (v Vector2D) SqrMagnitude() float32 {\n\treturn v.X*v.X + v.Y*v.Y\n}\n\nfunc (v Vector2D) Add(v2 Vector2D) Vector2D {\n\treturn Vector2D{v.X + v2.X, v.Y + v2.Y}\n}\n\nfunc (v Vector2D) Sub(v2 Vector2D) Vector2D {\n\treturn Vector2D{v.X - v2.X, v.Y - v2.Y}\n}\n\nfunc (v Vector2D) MultiplyVector(v2 Vector2D) Vector2D {\n\treturn Vector2D{v.X * v2.X, v.Y * v2.Y}\n}\n\nfunc (v Vector2D) DivideVector(v2 Vector2D) Vector2D {\n\treturn Vector2D{v.X / v2.X, v.Y / v2.Y}\n}\n\nfunc (v Vector2D) Multiply(s float32) Vector2D {\n\treturn Vector2D{v.X * s, v.Y * s}\n}\n\nfunc (v Vector2D) Divide(s float32) Vector2D {\n\treturn Vector2D{v.X / s, v.Y / s}\n}\n\n//距离\nfunc (v Vector2D) Distance(v2 Vector2D) float32 {\n\tx := v.X - v2.X\n\ty := v.Y - v2.Y\n\tr := x*x + y*y\n\treturn float32(math.Sqrt(float64(r)))\n}\n\n//距离的平方\nfunc (v Vector2D) SqrDistance(v2 Vector2D) float32 {\n\tx := v.X - v2.X\n\ty := v.Y - v2.Y\n\tr := x*x + y*y\n\treturn r\n}\n\n//是否在规定距离以内\nfunc (v Vector2D) WithInDistance(v2 Vector2D, dis float32) bool {\n\treturn v.SqrDistance(v2) < dis*dis\n}\n\nfunc (v Vector2D) Dot(v2 Vector2D) float32 {\n\treturn v.X*v2.X + v.Y*v2.Y\n}\n\nfunc (v Vector2D) Reflect(normal Vector2D) Vector2D {\n\tdotProduct := v.Dot(normal)\n\treturn Vector2D{v.X - (2 * dotProduct * normal.X), v.Y - (2 * dotProduct * normal.Y)}\n}\n\nfunc (v Vector2D) Normalize() Vector2D {\n\tmag := v.Magnitude()\n\tif mag == 0 || mag == 1 {\n\t\treturn v.Copy()\n\t}\n\treturn v.Divide(mag)\n}\n\nfunc (v Vector2D) Limit(max float32) Vector2D {\n\tmagSq := v.Magnitude()\n\tif magSq <= max*max {\n\t\treturn v.Copy()\n\t}\n\treturn v.Normalize().Multiply(max)\n}\n\nfunc (v Vector2D) Angle() float32 {\n\tf := -1 * math.Atan2(float64(v.Y*-1), float64(v.X))\n\treturn float32(f)\n}\n\n//UP为0顺时针(angle=[0,2*PI)\nfunc (v Vector2D) AngleY() float32 {\n\tf := math.Pi/2 + math.Atan2(float64(v.Y*-1), float64(v.X))\n\tif f < 0 {\n\t\tf += math.Pi * 2\n\t}\n\treturn float32(f)\n}\nfunc (v Vector2D) Rotate(angle float32) Vector2D {\n\treturn Vector2D{\n\t\tv.X*float32(math.Cos(float64(angle))) - v.Y*float32(math.Sin(float64(angle))),\n\t\tv.X*float32(math.Sin(float64(angle))) - v.Y*float32(math.Cos(float64(angle))),\n\t}\n}\n\nfunc (v Vector2D) LinearInterpolateToVector(v2 Vector2D, amount float32) Vector2D {\n\treturn Vector2D{\n\t\tlinearInterpolate(v.X, v2.X, amount),\n\t\tlinearInterpolate(v.Y, v2.Y, amount),\n\t}\n}\n\nfunc (v Vector2D) MapToScalars(oldMin, oldMax, newMin, newMax float32) Vector2D {\n\treturn Vector2D{\n\t\tmapFloat(v.X, oldMin, oldMax, newMin, newMax),\n\t\tmapFloat(v.Y, oldMin, oldMax, newMin, newMax),\n\t}\n}\n\nfunc (v Vector2D) MapToVectors(oldMinV, oldMaxV, newMinV, newMaxV Vector2D) Vector2D {\n\treturn Vector2D{\n\t\tmapFloat(v.X, oldMinV.X, oldMaxV.X, newMinV.X, newMaxV.X),\n\t\tmapFloat(v.Y, oldMinV.Y, oldMaxV.Y, newMinV.Y, newMaxV.Y),\n\t}\n}\n\nfunc (v Vector2D) AngleBetween(v2 Vector2D) float32 {\n\t//angle := v.Dot(v2) / v.Magnitude() * v2.Magnitude()\n\t// switch {\n\t// case angle <= -1:\n\t// \treturn math.Pi\n\t// case angle >= 0:\n\t// \treturn 0\n\t// }\n\ta1 := math.Atan2(float64(v.Y), float64(v.X))\n\ta2 := math.Atan2(float64(v2.Y), float64(v2.X))\n\treturn float32(a1 - a2)\n}\n\nfunc (v Vector2D) ClampToScalars(min, max float32) Vector2D {\n\treturn Vector2D{\n\t\tclampFloat(v.X, min, max),\n\t\tclampFloat(v.Y, min, max),\n\t}\n}\n\nfunc (v Vector2D) ClampToVectors(minV, maxV Vector2D) Vector2D {\n\treturn Vector2D{\n\t\tclampFloat(v.X, minV.X, maxV.X),\n\t\tclampFloat(v.Y, minV.Y, maxV.Y),\n\t}\n}\n\nfunc (v Vector2D) Floor() Vector2D {\n\treturn Vector2D{\n\t\tfloat32(math.Floor(float64(v.X))),\n\t\tfloat32(math.Floor(float64(v.Y))),\n\t}\n}\n\nfunc (v Vector2D) Negate() Vector2D {\n\treturn v.Multiply(-1)\n}\n\nfunc (v Vector2D) String() string {\n\treturn fmt.Sprintf(\"{x=%v,y=%v}\", v.X, v.Y)\n}\n\nfunc linearInterpolate(start, end, amount float32) float32 {\n\treturn start + (end-start)*amount\n}\n\nfunc mapFloat(value, oldMin, oldMax, newMin, newMax float32) float32 {\n\treturn newMin + (newMax-newMin)*((value-oldMin)/(oldMax-oldMin))\n}\n\nfunc clampFloat(value, min, max float32) float32 {\n\tswitch {\n\tcase value <= min:\n\t\treturn min\n\tcase value >= max:\n\t\treturn max\n\t}\n\treturn value\n}\n"
  },
  {
    "path": "server/src/gameproto/gamecode.pb.go",
    "content": "// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: gamecode.proto\n\npackage gameproto\n\nimport (\n\tfmt \"fmt\"\n\tproto \"github.com/gogo/protobuf/proto\"\n\tmath \"math\"\n\tstrconv \"strconv\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package\n\ntype C2GS_CMD int32\n\nconst (\n\tC2GS_NONE      C2GS_CMD = 0\n\tC2S_LOGIN      C2GS_CMD = 1\n\tC2S_Test       C2GS_CMD = 10\n\tC2S_HEART_INFO C2GS_CMD = 254\n\tC2S_ACK        C2GS_CMD = 255\n)\n\nvar C2GS_CMD_name = map[int32]string{\n\t0:   \"C2GS_NONE\",\n\t1:   \"C2S_LOGIN\",\n\t10:  \"C2S_Test\",\n\t254: \"C2S_HEART_INFO\",\n\t255: \"C2S_ACK\",\n}\n\nvar C2GS_CMD_value = map[string]int32{\n\t\"C2GS_NONE\":      0,\n\t\"C2S_LOGIN\":      1,\n\t\"C2S_Test\":       10,\n\t\"C2S_HEART_INFO\": 254,\n\t\"C2S_ACK\":        255,\n}\n\nfunc (C2GS_CMD) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_d88e444a8e2e7656, []int{0}\n}\n\ntype GS2C_CMD int32\n\nconst (\n\tGS2C_NONE           GS2C_CMD = 0\n\tS2C_CONFIRM         GS2C_CMD = 1\n\tS2C_LOGIN_END       GS2C_CMD = 2\n\tS2C_LOGIN_CHAR_INFO GS2C_CMD = 3\n\tS2C_Test            GS2C_CMD = 10\n)\n\nvar GS2C_CMD_name = map[int32]string{\n\t0:  \"GS2C_NONE\",\n\t1:  \"S2C_CONFIRM\",\n\t2:  \"S2C_LOGIN_END\",\n\t3:  \"S2C_LOGIN_CHAR_INFO\",\n\t10: \"S2C_Test\",\n}\n\nvar GS2C_CMD_value = map[string]int32{\n\t\"GS2C_NONE\":           0,\n\t\"S2C_CONFIRM\":         1,\n\t\"S2C_LOGIN_END\":       2,\n\t\"S2C_LOGIN_CHAR_INFO\": 3,\n\t\"S2C_Test\":            10,\n}\n\nfunc (GS2C_CMD) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_d88e444a8e2e7656, []int{1}\n}\n\nfunc init() {\n\tproto.RegisterEnum(\"gameproto.C2GS_CMD\", C2GS_CMD_name, C2GS_CMD_value)\n\tproto.RegisterEnum(\"gameproto.GS2C_CMD\", GS2C_CMD_name, GS2C_CMD_value)\n}\n\nfunc init() { proto.RegisterFile(\"gamecode.proto\", fileDescriptor_d88e444a8e2e7656) }\n\nvar fileDescriptor_d88e444a8e2e7656 = []byte{\n\t// 244 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4b, 0x4f, 0xcc, 0x4d,\n\t0x4d, 0xce, 0x4f, 0x49, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x04, 0xf1, 0xc1, 0x4c,\n\t0xad, 0x48, 0x2e, 0x0e, 0x67, 0x23, 0xf7, 0xe0, 0x78, 0x67, 0x5f, 0x17, 0x21, 0x5e, 0x2e, 0x4e,\n\t0x30, 0xdb, 0xcf, 0xdf, 0xcf, 0x55, 0x80, 0x01, 0xc2, 0x0d, 0x8e, 0xf7, 0xf1, 0x77, 0xf7, 0xf4,\n\t0x13, 0x60, 0x14, 0xe2, 0x01, 0xa9, 0x0c, 0x8e, 0x0f, 0x49, 0x2d, 0x2e, 0x11, 0xe0, 0x12, 0x12,\n\t0xe6, 0xe2, 0x03, 0xf1, 0x3c, 0x5c, 0x1d, 0x83, 0x42, 0xe2, 0x3d, 0xfd, 0xdc, 0xfc, 0x05, 0xfe,\n\t0x81, 0x94, 0xb0, 0x83, 0x04, 0x1d, 0x9d, 0xbd, 0x05, 0xfe, 0x33, 0x6a, 0xa5, 0x70, 0x71, 0xb8,\n\t0x07, 0x1b, 0x39, 0xc3, 0x8c, 0x06, 0xb3, 0xa1, 0x46, 0xf3, 0x73, 0x71, 0x83, 0x65, 0xfc, 0xfd,\n\t0xdc, 0x3c, 0x83, 0x7c, 0x05, 0x18, 0x85, 0x04, 0xb9, 0x78, 0x41, 0x02, 0x60, 0xbb, 0xe2, 0x5d,\n\t0xfd, 0x5c, 0x04, 0x98, 0x84, 0xc4, 0xb9, 0x84, 0x11, 0x42, 0xce, 0x1e, 0x8e, 0x41, 0x10, 0x6b,\n\t0x98, 0x41, 0x0e, 0x01, 0x49, 0x40, 0x1c, 0xe2, 0x64, 0x72, 0xe1, 0xa1, 0x1c, 0xc3, 0x8d, 0x87,\n\t0x72, 0x0c, 0x1f, 0x1e, 0xca, 0x31, 0x36, 0x3c, 0x92, 0x63, 0x5c, 0xf1, 0x48, 0x8e, 0xf1, 0xc4,\n\t0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c, 0x92, 0x63, 0x7c, 0xf1, 0x48, 0x8e, 0xe1,\n\t0xc3, 0x23, 0x39, 0xc6, 0x09, 0x8f, 0xe5, 0x18, 0x2e, 0x3c, 0x96, 0x63, 0xb8, 0xf1, 0x58, 0x8e,\n\t0x21, 0x89, 0x0d, 0xec, 0x7b, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x33, 0x9d, 0x6b, 0xfa,\n\t0x1a, 0x01, 0x00, 0x00,\n}\n\nfunc (x C2GS_CMD) String() string {\n\ts, ok := C2GS_CMD_name[int32(x)]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(x))\n}\nfunc (x GS2C_CMD) String() string {\n\ts, ok := GS2C_CMD_name[int32(x)]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(x))\n}\n"
  },
  {
    "path": "server/src/gameproto/gamemsg.pb.go",
    "content": "// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: gamemsg.proto\n\npackage gameproto\n\nimport (\n\tencoding_binary \"encoding/binary\"\n\tfmt \"fmt\"\n\tproto \"github.com/gogo/protobuf/proto\"\n\tio \"io\"\n\tmath \"math\"\n\treflect \"reflect\"\n\tstrconv \"strconv\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package\n\n// =========chat=============\ntype ChatMsgType int32\n\nconst (\n\tC2S_PrivateChat      ChatMsgType = 0\n\tS2C_PrivateChat      ChatMsgType = 1\n\tS2C_PrivateOtherChat ChatMsgType = 2\n\tC2S_WorldChat        ChatMsgType = 3\n\tS2C_WorldChat        ChatMsgType = 4\n)\n\nvar ChatMsgType_name = map[int32]string{\n\t0: \"C2S_PrivateChat\",\n\t1: \"S2C_PrivateChat\",\n\t2: \"S2C_PrivateOtherChat\",\n\t3: \"C2S_WorldChat\",\n\t4: \"S2C_WorldChat\",\n}\n\nvar ChatMsgType_value = map[string]int32{\n\t\"C2S_PrivateChat\":      0,\n\t\"S2C_PrivateChat\":      1,\n\t\"S2C_PrivateOtherChat\": 2,\n\t\"C2S_WorldChat\":        3,\n\t\"S2C_WorldChat\":        4,\n}\n\nfunc (ChatMsgType) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{0}\n}\n\ntype C2S_PrivateChatMsg struct {\n\tTargetName string `protobuf:\"bytes,1,opt,name=targetName,proto3\" json:\"targetName,omitempty\"`\n\tMsg        string `protobuf:\"bytes,2,opt,name=msg,proto3\" json:\"msg,omitempty\"`\n}\n\nfunc (m *C2S_PrivateChatMsg) Reset()      { *m = C2S_PrivateChatMsg{} }\nfunc (*C2S_PrivateChatMsg) ProtoMessage() {}\nfunc (*C2S_PrivateChatMsg) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{0}\n}\nfunc (m *C2S_PrivateChatMsg) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *C2S_PrivateChatMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_C2S_PrivateChatMsg.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *C2S_PrivateChatMsg) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_C2S_PrivateChatMsg.Merge(m, src)\n}\nfunc (m *C2S_PrivateChatMsg) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *C2S_PrivateChatMsg) XXX_DiscardUnknown() {\n\txxx_messageInfo_C2S_PrivateChatMsg.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_C2S_PrivateChatMsg proto.InternalMessageInfo\n\nfunc (m *C2S_PrivateChatMsg) GetTargetName() string {\n\tif m != nil {\n\t\treturn m.TargetName\n\t}\n\treturn \"\"\n}\n\nfunc (m *C2S_PrivateChatMsg) GetMsg() string {\n\tif m != nil {\n\t\treturn m.Msg\n\t}\n\treturn \"\"\n}\n\ntype S2C_PrivateChatMsg struct {\n\tTargetName string `protobuf:\"bytes,1,opt,name=targetName,proto3\" json:\"targetName,omitempty\"`\n\tMsg        string `protobuf:\"bytes,2,opt,name=msg,proto3\" json:\"msg,omitempty\"`\n\tResult     int32  `protobuf:\"varint,3,opt,name=result,proto3\" json:\"result,omitempty\"`\n}\n\nfunc (m *S2C_PrivateChatMsg) Reset()      { *m = S2C_PrivateChatMsg{} }\nfunc (*S2C_PrivateChatMsg) ProtoMessage() {}\nfunc (*S2C_PrivateChatMsg) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{1}\n}\nfunc (m *S2C_PrivateChatMsg) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *S2C_PrivateChatMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_S2C_PrivateChatMsg.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *S2C_PrivateChatMsg) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_S2C_PrivateChatMsg.Merge(m, src)\n}\nfunc (m *S2C_PrivateChatMsg) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *S2C_PrivateChatMsg) XXX_DiscardUnknown() {\n\txxx_messageInfo_S2C_PrivateChatMsg.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_S2C_PrivateChatMsg proto.InternalMessageInfo\n\nfunc (m *S2C_PrivateChatMsg) GetTargetName() string {\n\tif m != nil {\n\t\treturn m.TargetName\n\t}\n\treturn \"\"\n}\n\nfunc (m *S2C_PrivateChatMsg) GetMsg() string {\n\tif m != nil {\n\t\treturn m.Msg\n\t}\n\treturn \"\"\n}\n\nfunc (m *S2C_PrivateChatMsg) GetResult() int32 {\n\tif m != nil {\n\t\treturn m.Result\n\t}\n\treturn 0\n}\n\ntype S2C_PrivateOtherChatMsg struct {\n\tSendName string `protobuf:\"bytes,1,opt,name=sendName,proto3\" json:\"sendName,omitempty\"`\n\tMsg      string `protobuf:\"bytes,2,opt,name=msg,proto3\" json:\"msg,omitempty\"`\n}\n\nfunc (m *S2C_PrivateOtherChatMsg) Reset()      { *m = S2C_PrivateOtherChatMsg{} }\nfunc (*S2C_PrivateOtherChatMsg) ProtoMessage() {}\nfunc (*S2C_PrivateOtherChatMsg) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{2}\n}\nfunc (m *S2C_PrivateOtherChatMsg) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *S2C_PrivateOtherChatMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_S2C_PrivateOtherChatMsg.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *S2C_PrivateOtherChatMsg) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_S2C_PrivateOtherChatMsg.Merge(m, src)\n}\nfunc (m *S2C_PrivateOtherChatMsg) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *S2C_PrivateOtherChatMsg) XXX_DiscardUnknown() {\n\txxx_messageInfo_S2C_PrivateOtherChatMsg.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_S2C_PrivateOtherChatMsg proto.InternalMessageInfo\n\nfunc (m *S2C_PrivateOtherChatMsg) GetSendName() string {\n\tif m != nil {\n\t\treturn m.SendName\n\t}\n\treturn \"\"\n}\n\nfunc (m *S2C_PrivateOtherChatMsg) GetMsg() string {\n\tif m != nil {\n\t\treturn m.Msg\n\t}\n\treturn \"\"\n}\n\ntype C2S_WorldChatMsg struct {\n\tData string `protobuf:\"bytes,1,opt,name=data,proto3\" json:\"data,omitempty\"`\n}\n\nfunc (m *C2S_WorldChatMsg) Reset()      { *m = C2S_WorldChatMsg{} }\nfunc (*C2S_WorldChatMsg) ProtoMessage() {}\nfunc (*C2S_WorldChatMsg) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{3}\n}\nfunc (m *C2S_WorldChatMsg) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *C2S_WorldChatMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_C2S_WorldChatMsg.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *C2S_WorldChatMsg) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_C2S_WorldChatMsg.Merge(m, src)\n}\nfunc (m *C2S_WorldChatMsg) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *C2S_WorldChatMsg) XXX_DiscardUnknown() {\n\txxx_messageInfo_C2S_WorldChatMsg.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_C2S_WorldChatMsg proto.InternalMessageInfo\n\nfunc (m *C2S_WorldChatMsg) GetData() string {\n\tif m != nil {\n\t\treturn m.Data\n\t}\n\treturn \"\"\n}\n\ntype S2C_WorldChatMsg struct {\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tData string `protobuf:\"bytes,2,opt,name=data,proto3\" json:\"data,omitempty\"`\n}\n\nfunc (m *S2C_WorldChatMsg) Reset()      { *m = S2C_WorldChatMsg{} }\nfunc (*S2C_WorldChatMsg) ProtoMessage() {}\nfunc (*S2C_WorldChatMsg) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{4}\n}\nfunc (m *S2C_WorldChatMsg) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *S2C_WorldChatMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_S2C_WorldChatMsg.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *S2C_WorldChatMsg) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_S2C_WorldChatMsg.Merge(m, src)\n}\nfunc (m *S2C_WorldChatMsg) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *S2C_WorldChatMsg) XXX_DiscardUnknown() {\n\txxx_messageInfo_S2C_WorldChatMsg.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_S2C_WorldChatMsg proto.InternalMessageInfo\n\nfunc (m *S2C_WorldChatMsg) GetName() string {\n\tif m != nil {\n\t\treturn m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *S2C_WorldChatMsg) GetData() string {\n\tif m != nil {\n\t\treturn m.Data\n\t}\n\treturn \"\"\n}\n\ntype S_ReviseUserInfo struct {\n\tNickname string `protobuf:\"bytes,1,opt,name=nickname,proto3\" json:\"nickname,omitempty\"`\n\tHeadId   int32  `protobuf:\"varint,2,opt,name=headId,proto3\" json:\"headId,omitempty\"`\n}\n\nfunc (m *S_ReviseUserInfo) Reset()      { *m = S_ReviseUserInfo{} }\nfunc (*S_ReviseUserInfo) ProtoMessage() {}\nfunc (*S_ReviseUserInfo) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{5}\n}\nfunc (m *S_ReviseUserInfo) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *S_ReviseUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_S_ReviseUserInfo.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *S_ReviseUserInfo) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_S_ReviseUserInfo.Merge(m, src)\n}\nfunc (m *S_ReviseUserInfo) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *S_ReviseUserInfo) XXX_DiscardUnknown() {\n\txxx_messageInfo_S_ReviseUserInfo.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_S_ReviseUserInfo proto.InternalMessageInfo\n\nfunc (m *S_ReviseUserInfo) GetNickname() string {\n\tif m != nil {\n\t\treturn m.Nickname\n\t}\n\treturn \"\"\n}\n\nfunc (m *S_ReviseUserInfo) GetHeadId() int32 {\n\tif m != nil {\n\t\treturn m.HeadId\n\t}\n\treturn 0\n}\n\ntype C_Response struct {\n\tErrCode int32  `protobuf:\"varint,1,opt,name=errCode,proto3\" json:\"errCode,omitempty\"`\n\tMsg     string `protobuf:\"bytes,2,opt,name=msg,proto3\" json:\"msg,omitempty\"`\n}\n\nfunc (m *C_Response) Reset()      { *m = C_Response{} }\nfunc (*C_Response) ProtoMessage() {}\nfunc (*C_Response) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{6}\n}\nfunc (m *C_Response) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *C_Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_C_Response.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *C_Response) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_C_Response.Merge(m, src)\n}\nfunc (m *C_Response) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *C_Response) XXX_DiscardUnknown() {\n\txxx_messageInfo_C_Response.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_C_Response proto.InternalMessageInfo\n\nfunc (m *C_Response) GetErrCode() int32 {\n\tif m != nil {\n\t\treturn m.ErrCode\n\t}\n\treturn 0\n}\n\nfunc (m *C_Response) GetMsg() string {\n\tif m != nil {\n\t\treturn m.Msg\n\t}\n\treturn \"\"\n}\n\ntype C_UpateAttr struct {\n\tKey string `protobuf:\"bytes,1,opt,name=key,proto3\" json:\"key,omitempty\"`\n\tVal int64  `protobuf:\"varint,2,opt,name=val,proto3\" json:\"val,omitempty\"`\n}\n\nfunc (m *C_UpateAttr) Reset()      { *m = C_UpateAttr{} }\nfunc (*C_UpateAttr) ProtoMessage() {}\nfunc (*C_UpateAttr) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{7}\n}\nfunc (m *C_UpateAttr) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *C_UpateAttr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_C_UpateAttr.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *C_UpateAttr) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_C_UpateAttr.Merge(m, src)\n}\nfunc (m *C_UpateAttr) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *C_UpateAttr) XXX_DiscardUnknown() {\n\txxx_messageInfo_C_UpateAttr.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_C_UpateAttr proto.InternalMessageInfo\n\nfunc (m *C_UpateAttr) GetKey() string {\n\tif m != nil {\n\t\treturn m.Key\n\t}\n\treturn \"\"\n}\n\nfunc (m *C_UpateAttr) GetVal() int64 {\n\tif m != nil {\n\t\treturn m.Val\n\t}\n\treturn 0\n}\n\n// 请求战斗\ntype S_RequestBattle struct {\n\tStageId    int32 `protobuf:\"varint,1,opt,name=stageId,proto3\" json:\"stageId,omitempty\"`\n\tBattleType int32 `protobuf:\"varint,2,opt,name=battleType,proto3\" json:\"battleType,omitempty\"`\n}\n\nfunc (m *S_RequestBattle) Reset()      { *m = S_RequestBattle{} }\nfunc (*S_RequestBattle) ProtoMessage() {}\nfunc (*S_RequestBattle) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{8}\n}\nfunc (m *S_RequestBattle) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *S_RequestBattle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_S_RequestBattle.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *S_RequestBattle) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_S_RequestBattle.Merge(m, src)\n}\nfunc (m *S_RequestBattle) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *S_RequestBattle) XXX_DiscardUnknown() {\n\txxx_messageInfo_S_RequestBattle.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_S_RequestBattle proto.InternalMessageInfo\n\nfunc (m *S_RequestBattle) GetStageId() int32 {\n\tif m != nil {\n\t\treturn m.StageId\n\t}\n\treturn 0\n}\n\nfunc (m *S_RequestBattle) GetBattleType() int32 {\n\tif m != nil {\n\t\treturn m.BattleType\n\t}\n\treturn 0\n}\n\ntype C_RequestBattle struct {\n\tStageId    int32 `protobuf:\"varint,1,opt,name=stageId,proto3\" json:\"stageId,omitempty\"`\n\tBattleType int32 `protobuf:\"varint,2,opt,name=battleType,proto3\" json:\"battleType,omitempty\"`\n\tErrCode    int32 `protobuf:\"varint,3,opt,name=errCode,proto3\" json:\"errCode,omitempty\"`\n}\n\nfunc (m *C_RequestBattle) Reset()      { *m = C_RequestBattle{} }\nfunc (*C_RequestBattle) ProtoMessage() {}\nfunc (*C_RequestBattle) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{9}\n}\nfunc (m *C_RequestBattle) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *C_RequestBattle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_C_RequestBattle.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *C_RequestBattle) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_C_RequestBattle.Merge(m, src)\n}\nfunc (m *C_RequestBattle) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *C_RequestBattle) XXX_DiscardUnknown() {\n\txxx_messageInfo_C_RequestBattle.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_C_RequestBattle proto.InternalMessageInfo\n\nfunc (m *C_RequestBattle) GetStageId() int32 {\n\tif m != nil {\n\t\treturn m.StageId\n\t}\n\treturn 0\n}\n\nfunc (m *C_RequestBattle) GetBattleType() int32 {\n\tif m != nil {\n\t\treturn m.BattleType\n\t}\n\treturn 0\n}\n\nfunc (m *C_RequestBattle) GetErrCode() int32 {\n\tif m != nil {\n\t\treturn m.ErrCode\n\t}\n\treturn 0\n}\n\n// 战斗开始\ntype C_StartBattle struct {\n\tStageId    int32  `protobuf:\"varint,1,opt,name=stageId,proto3\" json:\"stageId,omitempty\"`\n\tBattleType int32  `protobuf:\"varint,2,opt,name=battleType,proto3\" json:\"battleType,omitempty\"`\n\tRoomId     string `protobuf:\"bytes,3,opt,name=roomId,proto3\" json:\"roomId,omitempty\"`\n}\n\nfunc (m *C_StartBattle) Reset()      { *m = C_StartBattle{} }\nfunc (*C_StartBattle) ProtoMessage() {}\nfunc (*C_StartBattle) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{10}\n}\nfunc (m *C_StartBattle) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *C_StartBattle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_C_StartBattle.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *C_StartBattle) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_C_StartBattle.Merge(m, src)\n}\nfunc (m *C_StartBattle) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *C_StartBattle) XXX_DiscardUnknown() {\n\txxx_messageInfo_C_StartBattle.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_C_StartBattle proto.InternalMessageInfo\n\nfunc (m *C_StartBattle) GetStageId() int32 {\n\tif m != nil {\n\t\treturn m.StageId\n\t}\n\treturn 0\n}\n\nfunc (m *C_StartBattle) GetBattleType() int32 {\n\tif m != nil {\n\t\treturn m.BattleType\n\t}\n\treturn 0\n}\n\nfunc (m *C_StartBattle) GetRoomId() string {\n\tif m != nil {\n\t\treturn m.RoomId\n\t}\n\treturn \"\"\n}\n\n// 结算\ntype C_Balance struct {\n\tStageId    int32    `protobuf:\"varint,1,opt,name=stageId,proto3\" json:\"stageId,omitempty\"`\n\tBattleType int32    `protobuf:\"varint,2,opt,name=battleType,proto3\" json:\"battleType,omitempty\"`\n\tAwards     []*Award `protobuf:\"bytes,3,rep,name=awards,proto3\" json:\"awards,omitempty\"`\n}\n\nfunc (m *C_Balance) Reset()      { *m = C_Balance{} }\nfunc (*C_Balance) ProtoMessage() {}\nfunc (*C_Balance) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{11}\n}\nfunc (m *C_Balance) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *C_Balance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_C_Balance.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *C_Balance) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_C_Balance.Merge(m, src)\n}\nfunc (m *C_Balance) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *C_Balance) XXX_DiscardUnknown() {\n\txxx_messageInfo_C_Balance.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_C_Balance proto.InternalMessageInfo\n\nfunc (m *C_Balance) GetStageId() int32 {\n\tif m != nil {\n\t\treturn m.StageId\n\t}\n\treturn 0\n}\n\nfunc (m *C_Balance) GetBattleType() int32 {\n\tif m != nil {\n\t\treturn m.BattleType\n\t}\n\treturn 0\n}\n\nfunc (m *C_Balance) GetAwards() []*Award {\n\tif m != nil {\n\t\treturn m.Awards\n\t}\n\treturn nil\n}\n\ntype Award struct {\n\tAType int32 `protobuf:\"varint,1,opt,name=aType,proto3\" json:\"aType,omitempty\"`\n\tAVal  int32 `protobuf:\"varint,2,opt,name=aVal,proto3\" json:\"aVal,omitempty\"`\n}\n\nfunc (m *Award) Reset()      { *m = Award{} }\nfunc (*Award) ProtoMessage() {}\nfunc (*Award) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{12}\n}\nfunc (m *Award) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Award) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Award.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Award) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Award.Merge(m, src)\n}\nfunc (m *Award) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Award) XXX_DiscardUnknown() {\n\txxx_messageInfo_Award.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Award proto.InternalMessageInfo\n\nfunc (m *Award) GetAType() int32 {\n\tif m != nil {\n\t\treturn m.AType\n\t}\n\treturn 0\n}\n\nfunc (m *Award) GetAVal() int32 {\n\tif m != nil {\n\t\treturn m.AVal\n\t}\n\treturn 0\n}\n\n// fight\ntype FVector struct {\n\tX float32 `protobuf:\"fixed32,1,opt,name=x,proto3\" json:\"x,omitempty\"`\n\tY float32 `protobuf:\"fixed32,2,opt,name=y,proto3\" json:\"y,omitempty\"`\n}\n\nfunc (m *FVector) Reset()      { *m = FVector{} }\nfunc (*FVector) ProtoMessage() {}\nfunc (*FVector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{13}\n}\nfunc (m *FVector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FVector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_FVector.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *FVector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FVector.Merge(m, src)\n}\nfunc (m *FVector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FVector) XXX_DiscardUnknown() {\n\txxx_messageInfo_FVector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FVector proto.InternalMessageInfo\n\nfunc (m *FVector) GetX() float32 {\n\tif m != nil {\n\t\treturn m.X\n\t}\n\treturn 0\n}\n\nfunc (m *FVector) GetY() float32 {\n\tif m != nil {\n\t\treturn m.Y\n\t}\n\treturn 0\n}\n\ntype Move struct {\n\tAngle float32 `protobuf:\"fixed32,1,opt,name=angle,proto3\" json:\"angle,omitempty\"`\n}\n\nfunc (m *Move) Reset()      { *m = Move{} }\nfunc (*Move) ProtoMessage() {}\nfunc (*Move) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{14}\n}\nfunc (m *Move) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Move) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Move.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Move) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Move.Merge(m, src)\n}\nfunc (m *Move) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Move) XXX_DiscardUnknown() {\n\txxx_messageInfo_Move.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Move proto.InternalMessageInfo\n\nfunc (m *Move) GetAngle() float32 {\n\tif m != nil {\n\t\treturn m.Angle\n\t}\n\treturn 0\n}\n\ntype Shot struct {\n\tId       int32    `protobuf:\"varint,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\tBulletId int32    `protobuf:\"varint,2,opt,name=bulletId,proto3\" json:\"bulletId,omitempty\"`\n\tPos      *FVector `protobuf:\"bytes,3,opt,name=pos,proto3\" json:\"pos,omitempty\"`\n\tAngel    float32  `protobuf:\"fixed32,4,opt,name=angel,proto3\" json:\"angel,omitempty\"`\n}\n\nfunc (m *Shot) Reset()      { *m = Shot{} }\nfunc (*Shot) ProtoMessage() {}\nfunc (*Shot) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{15}\n}\nfunc (m *Shot) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Shot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Shot.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Shot) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Shot.Merge(m, src)\n}\nfunc (m *Shot) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Shot) XXX_DiscardUnknown() {\n\txxx_messageInfo_Shot.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Shot proto.InternalMessageInfo\n\nfunc (m *Shot) GetId() int32 {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn 0\n}\n\nfunc (m *Shot) GetBulletId() int32 {\n\tif m != nil {\n\t\treturn m.BulletId\n\t}\n\treturn 0\n}\n\nfunc (m *Shot) GetPos() *FVector {\n\tif m != nil {\n\t\treturn m.Pos\n\t}\n\treturn nil\n}\n\nfunc (m *Shot) GetAngel() float32 {\n\tif m != nil {\n\t\treturn m.Angel\n\t}\n\treturn 0\n}\n\ntype UseItem struct {\n\tItemId int32 `protobuf:\"varint,1,opt,name=itemId,proto3\" json:\"itemId,omitempty\"`\n}\n\nfunc (m *UseItem) Reset()      { *m = UseItem{} }\nfunc (*UseItem) ProtoMessage() {}\nfunc (*UseItem) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{16}\n}\nfunc (m *UseItem) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UseItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_UseItem.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *UseItem) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UseItem.Merge(m, src)\n}\nfunc (m *UseItem) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UseItem) XXX_DiscardUnknown() {\n\txxx_messageInfo_UseItem.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UseItem proto.InternalMessageInfo\n\nfunc (m *UseItem) GetItemId() int32 {\n\tif m != nil {\n\t\treturn m.ItemId\n\t}\n\treturn 0\n}\n\ntype FighterSnapInfo struct {\n\tId  int32    `protobuf:\"varint,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\tPos *FVector `protobuf:\"bytes,2,opt,name=pos,proto3\" json:\"pos,omitempty\"`\n\tVel *FVector `protobuf:\"bytes,3,opt,name=vel,proto3\" json:\"vel,omitempty\"`\n}\n\nfunc (m *FighterSnapInfo) Reset()      { *m = FighterSnapInfo{} }\nfunc (*FighterSnapInfo) ProtoMessage() {}\nfunc (*FighterSnapInfo) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{17}\n}\nfunc (m *FighterSnapInfo) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FighterSnapInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_FighterSnapInfo.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *FighterSnapInfo) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FighterSnapInfo.Merge(m, src)\n}\nfunc (m *FighterSnapInfo) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FighterSnapInfo) XXX_DiscardUnknown() {\n\txxx_messageInfo_FighterSnapInfo.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FighterSnapInfo proto.InternalMessageInfo\n\nfunc (m *FighterSnapInfo) GetId() int32 {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn 0\n}\n\nfunc (m *FighterSnapInfo) GetPos() *FVector {\n\tif m != nil {\n\t\treturn m.Pos\n\t}\n\treturn nil\n}\n\nfunc (m *FighterSnapInfo) GetVel() *FVector {\n\tif m != nil {\n\t\treturn m.Vel\n\t}\n\treturn nil\n}\n\ntype Snap struct {\n\tInfos []*FighterSnapInfo `protobuf:\"bytes,1,rep,name=infos,proto3\" json:\"infos,omitempty\"`\n}\n\nfunc (m *Snap) Reset()      { *m = Snap{} }\nfunc (*Snap) ProtoMessage() {}\nfunc (*Snap) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{18}\n}\nfunc (m *Snap) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Snap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Snap.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Snap) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Snap.Merge(m, src)\n}\nfunc (m *Snap) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Snap) XXX_DiscardUnknown() {\n\txxx_messageInfo_Snap.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Snap proto.InternalMessageInfo\n\nfunc (m *Snap) GetInfos() []*FighterSnapInfo {\n\tif m != nil {\n\t\treturn m.Infos\n\t}\n\treturn nil\n}\n\ntype FighterInfo struct {\n\tId   int32    `protobuf:\"varint,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\tPos  *FVector `protobuf:\"bytes,2,opt,name=pos,proto3\" json:\"pos,omitempty\"`\n\tVel  *FVector `protobuf:\"bytes,3,opt,name=vel,proto3\" json:\"vel,omitempty\"`\n\tName string   `protobuf:\"bytes,4,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tHp   int32    `protobuf:\"varint,5,opt,name=hp,proto3\" json:\"hp,omitempty\"`\n}\n\nfunc (m *FighterInfo) Reset()      { *m = FighterInfo{} }\nfunc (*FighterInfo) ProtoMessage() {}\nfunc (*FighterInfo) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{19}\n}\nfunc (m *FighterInfo) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FighterInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_FighterInfo.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *FighterInfo) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FighterInfo.Merge(m, src)\n}\nfunc (m *FighterInfo) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FighterInfo) XXX_DiscardUnknown() {\n\txxx_messageInfo_FighterInfo.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FighterInfo proto.InternalMessageInfo\n\nfunc (m *FighterInfo) GetId() int32 {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn 0\n}\n\nfunc (m *FighterInfo) GetPos() *FVector {\n\tif m != nil {\n\t\treturn m.Pos\n\t}\n\treturn nil\n}\n\nfunc (m *FighterInfo) GetVel() *FVector {\n\tif m != nil {\n\t\treturn m.Vel\n\t}\n\treturn nil\n}\n\nfunc (m *FighterInfo) GetName() string {\n\tif m != nil {\n\t\treturn m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *FighterInfo) GetHp() int32 {\n\tif m != nil {\n\t\treturn m.Hp\n\t}\n\treturn 0\n}\n\ntype BattleStart struct {\n\tSelf     *FighterInfo   `protobuf:\"bytes,1,opt,name=self,proto3\" json:\"self,omitempty\"`\n\tFighters []*FighterInfo `protobuf:\"bytes,2,rep,name=fighters,proto3\" json:\"fighters,omitempty\"`\n}\n\nfunc (m *BattleStart) Reset()      { *m = BattleStart{} }\nfunc (*BattleStart) ProtoMessage() {}\nfunc (*BattleStart) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{20}\n}\nfunc (m *BattleStart) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *BattleStart) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_BattleStart.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *BattleStart) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_BattleStart.Merge(m, src)\n}\nfunc (m *BattleStart) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *BattleStart) XXX_DiscardUnknown() {\n\txxx_messageInfo_BattleStart.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_BattleStart proto.InternalMessageInfo\n\nfunc (m *BattleStart) GetSelf() *FighterInfo {\n\tif m != nil {\n\t\treturn m.Self\n\t}\n\treturn nil\n}\n\nfunc (m *BattleStart) GetFighters() []*FighterInfo {\n\tif m != nil {\n\t\treturn m.Fighters\n\t}\n\treturn nil\n}\n\ntype NewStage struct {\n\tStage    int32          `protobuf:\"varint,1,opt,name=stage,proto3\" json:\"stage,omitempty\"`\n\tFighters []*FighterInfo `protobuf:\"bytes,2,rep,name=fighters,proto3\" json:\"fighters,omitempty\"`\n}\n\nfunc (m *NewStage) Reset()      { *m = NewStage{} }\nfunc (*NewStage) ProtoMessage() {}\nfunc (*NewStage) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{21}\n}\nfunc (m *NewStage) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NewStage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_NewStage.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *NewStage) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NewStage.Merge(m, src)\n}\nfunc (m *NewStage) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NewStage) XXX_DiscardUnknown() {\n\txxx_messageInfo_NewStage.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NewStage proto.InternalMessageInfo\n\nfunc (m *NewStage) GetStage() int32 {\n\tif m != nil {\n\t\treturn m.Stage\n\t}\n\treturn 0\n}\n\nfunc (m *NewStage) GetFighters() []*FighterInfo {\n\tif m != nil {\n\t\treturn m.Fighters\n\t}\n\treturn nil\n}\n\ntype GameOver struct {\n\tWinner int32 `protobuf:\"varint,1,opt,name=winner,proto3\" json:\"winner,omitempty\"`\n\tTime   int32 `protobuf:\"varint,2,opt,name=time,proto3\" json:\"time,omitempty\"`\n\tStage  int32 `protobuf:\"varint,3,opt,name=stage,proto3\" json:\"stage,omitempty\"`\n\tKill   int32 `protobuf:\"varint,4,opt,name=kill,proto3\" json:\"kill,omitempty\"`\n}\n\nfunc (m *GameOver) Reset()      { *m = GameOver{} }\nfunc (*GameOver) ProtoMessage() {}\nfunc (*GameOver) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{22}\n}\nfunc (m *GameOver) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GameOver) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_GameOver.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *GameOver) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GameOver.Merge(m, src)\n}\nfunc (m *GameOver) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GameOver) XXX_DiscardUnknown() {\n\txxx_messageInfo_GameOver.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GameOver proto.InternalMessageInfo\n\nfunc (m *GameOver) GetWinner() int32 {\n\tif m != nil {\n\t\treturn m.Winner\n\t}\n\treturn 0\n}\n\nfunc (m *GameOver) GetTime() int32 {\n\tif m != nil {\n\t\treturn m.Time\n\t}\n\treturn 0\n}\n\nfunc (m *GameOver) GetStage() int32 {\n\tif m != nil {\n\t\treturn m.Stage\n\t}\n\treturn 0\n}\n\nfunc (m *GameOver) GetKill() int32 {\n\tif m != nil {\n\t\treturn m.Kill\n\t}\n\treturn 0\n}\n\ntype Hit struct {\n\tBulletId int32 `protobuf:\"varint,1,opt,name=bulletId,proto3\" json:\"bulletId,omitempty\"`\n\tTargetId int32 `protobuf:\"varint,2,opt,name=targetId,proto3\" json:\"targetId,omitempty\"`\n\tLoseHP   int32 `protobuf:\"varint,3,opt,name=loseHP,proto3\" json:\"loseHP,omitempty\"`\n}\n\nfunc (m *Hit) Reset()      { *m = Hit{} }\nfunc (*Hit) ProtoMessage() {}\nfunc (*Hit) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{23}\n}\nfunc (m *Hit) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Hit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Hit.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Hit) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Hit.Merge(m, src)\n}\nfunc (m *Hit) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Hit) XXX_DiscardUnknown() {\n\txxx_messageInfo_Hit.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Hit proto.InternalMessageInfo\n\nfunc (m *Hit) GetBulletId() int32 {\n\tif m != nil {\n\t\treturn m.BulletId\n\t}\n\treturn 0\n}\n\nfunc (m *Hit) GetTargetId() int32 {\n\tif m != nil {\n\t\treturn m.TargetId\n\t}\n\treturn 0\n}\n\nfunc (m *Hit) GetLoseHP() int32 {\n\tif m != nil {\n\t\treturn m.LoseHP\n\t}\n\treturn 0\n}\n\ntype AddHP struct {\n\tAdd int32 `protobuf:\"varint,1,opt,name=add,proto3\" json:\"add,omitempty\"`\n\tId  int32 `protobuf:\"varint,2,opt,name=id,proto3\" json:\"id,omitempty\"`\n}\n\nfunc (m *AddHP) Reset()      { *m = AddHP{} }\nfunc (*AddHP) ProtoMessage() {}\nfunc (*AddHP) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{24}\n}\nfunc (m *AddHP) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AddHP) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_AddHP.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *AddHP) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AddHP.Merge(m, src)\n}\nfunc (m *AddHP) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AddHP) XXX_DiscardUnknown() {\n\txxx_messageInfo_AddHP.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AddHP proto.InternalMessageInfo\n\nfunc (m *AddHP) GetAdd() int32 {\n\tif m != nil {\n\t\treturn m.Add\n\t}\n\treturn 0\n}\n\nfunc (m *AddHP) GetId() int32 {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn 0\n}\n\ntype Dead struct {\n\tId      int32 `protobuf:\"varint,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\tEnemyId int32 `protobuf:\"varint,2,opt,name=enemyId,proto3\" json:\"enemyId,omitempty\"`\n}\n\nfunc (m *Dead) Reset()      { *m = Dead{} }\nfunc (*Dead) ProtoMessage() {}\nfunc (*Dead) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{25}\n}\nfunc (m *Dead) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Dead) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_Dead.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *Dead) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Dead.Merge(m, src)\n}\nfunc (m *Dead) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Dead) XXX_DiscardUnknown() {\n\txxx_messageInfo_Dead.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Dead proto.InternalMessageInfo\n\nfunc (m *Dead) GetId() int32 {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn 0\n}\n\nfunc (m *Dead) GetEnemyId() int32 {\n\tif m != nil {\n\t\treturn m.EnemyId\n\t}\n\treturn 0\n}\n\ntype AddEntity struct {\n\tId    int32    `protobuf:\"varint,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\tPos   *FVector `protobuf:\"bytes,2,opt,name=pos,proto3\" json:\"pos,omitempty\"`\n\tVel   *FVector `protobuf:\"bytes,3,opt,name=vel,proto3\" json:\"vel,omitempty\"`\n\tEtype int32    `protobuf:\"varint,4,opt,name=etype,proto3\" json:\"etype,omitempty\"`\n}\n\nfunc (m *AddEntity) Reset()      { *m = AddEntity{} }\nfunc (*AddEntity) ProtoMessage() {}\nfunc (*AddEntity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{26}\n}\nfunc (m *AddEntity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AddEntity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_AddEntity.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *AddEntity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AddEntity.Merge(m, src)\n}\nfunc (m *AddEntity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AddEntity) XXX_DiscardUnknown() {\n\txxx_messageInfo_AddEntity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AddEntity proto.InternalMessageInfo\n\nfunc (m *AddEntity) GetId() int32 {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn 0\n}\n\nfunc (m *AddEntity) GetPos() *FVector {\n\tif m != nil {\n\t\treturn m.Pos\n\t}\n\treturn nil\n}\n\nfunc (m *AddEntity) GetVel() *FVector {\n\tif m != nil {\n\t\treturn m.Vel\n\t}\n\treturn nil\n}\n\nfunc (m *AddEntity) GetEtype() int32 {\n\tif m != nil {\n\t\treturn m.Etype\n\t}\n\treturn 0\n}\n\ntype RemoveEntity struct {\n\tId    int32 `protobuf:\"varint,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n\tEtype int32 `protobuf:\"varint,2,opt,name=etype,proto3\" json:\"etype,omitempty\"`\n}\n\nfunc (m *RemoveEntity) Reset()      { *m = RemoveEntity{} }\nfunc (*RemoveEntity) ProtoMessage() {}\nfunc (*RemoveEntity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0ecd7041722872b9, []int{27}\n}\nfunc (m *RemoveEntity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RemoveEntity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_RemoveEntity.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *RemoveEntity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RemoveEntity.Merge(m, src)\n}\nfunc (m *RemoveEntity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RemoveEntity) XXX_DiscardUnknown() {\n\txxx_messageInfo_RemoveEntity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RemoveEntity proto.InternalMessageInfo\n\nfunc (m *RemoveEntity) GetId() int32 {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn 0\n}\n\nfunc (m *RemoveEntity) GetEtype() int32 {\n\tif m != nil {\n\t\treturn m.Etype\n\t}\n\treturn 0\n}\n\nfunc init() {\n\tproto.RegisterEnum(\"gameproto.ChatMsgType\", ChatMsgType_name, ChatMsgType_value)\n\tproto.RegisterType((*C2S_PrivateChatMsg)(nil), \"gameproto.C2S_PrivateChatMsg\")\n\tproto.RegisterType((*S2C_PrivateChatMsg)(nil), \"gameproto.S2C_PrivateChatMsg\")\n\tproto.RegisterType((*S2C_PrivateOtherChatMsg)(nil), \"gameproto.S2C_PrivateOtherChatMsg\")\n\tproto.RegisterType((*C2S_WorldChatMsg)(nil), \"gameproto.C2S_WorldChatMsg\")\n\tproto.RegisterType((*S2C_WorldChatMsg)(nil), \"gameproto.S2C_WorldChatMsg\")\n\tproto.RegisterType((*S_ReviseUserInfo)(nil), \"gameproto.S_ReviseUserInfo\")\n\tproto.RegisterType((*C_Response)(nil), \"gameproto.C_Response\")\n\tproto.RegisterType((*C_UpateAttr)(nil), \"gameproto.C_UpateAttr\")\n\tproto.RegisterType((*S_RequestBattle)(nil), \"gameproto.S_RequestBattle\")\n\tproto.RegisterType((*C_RequestBattle)(nil), \"gameproto.C_RequestBattle\")\n\tproto.RegisterType((*C_StartBattle)(nil), \"gameproto.C_StartBattle\")\n\tproto.RegisterType((*C_Balance)(nil), \"gameproto.C_Balance\")\n\tproto.RegisterType((*Award)(nil), \"gameproto.Award\")\n\tproto.RegisterType((*FVector)(nil), \"gameproto.FVector\")\n\tproto.RegisterType((*Move)(nil), \"gameproto.Move\")\n\tproto.RegisterType((*Shot)(nil), \"gameproto.Shot\")\n\tproto.RegisterType((*UseItem)(nil), \"gameproto.UseItem\")\n\tproto.RegisterType((*FighterSnapInfo)(nil), \"gameproto.FighterSnapInfo\")\n\tproto.RegisterType((*Snap)(nil), \"gameproto.Snap\")\n\tproto.RegisterType((*FighterInfo)(nil), \"gameproto.FighterInfo\")\n\tproto.RegisterType((*BattleStart)(nil), \"gameproto.BattleStart\")\n\tproto.RegisterType((*NewStage)(nil), \"gameproto.NewStage\")\n\tproto.RegisterType((*GameOver)(nil), \"gameproto.GameOver\")\n\tproto.RegisterType((*Hit)(nil), \"gameproto.Hit\")\n\tproto.RegisterType((*AddHP)(nil), \"gameproto.AddHP\")\n\tproto.RegisterType((*Dead)(nil), \"gameproto.Dead\")\n\tproto.RegisterType((*AddEntity)(nil), \"gameproto.AddEntity\")\n\tproto.RegisterType((*RemoveEntity)(nil), \"gameproto.RemoveEntity\")\n}\n\nfunc init() { proto.RegisterFile(\"gamemsg.proto\", fileDescriptor_0ecd7041722872b9) }\n\nvar fileDescriptor_0ecd7041722872b9 = []byte{\n\t// 931 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xcd, 0x6e, 0xdb, 0x46,\n\t0x10, 0x16, 0xff, 0x6c, 0x69, 0x14, 0xc7, 0xec, 0xd6, 0x48, 0x05, 0xa3, 0x20, 0xdc, 0x45, 0x5a,\n\t0xb8, 0x39, 0x18, 0x89, 0x9a, 0x43, 0xd0, 0x9b, 0xcd, 0xd6, 0xb1, 0x50, 0x24, 0x31, 0xa8, 0x38,\n\t0xbd, 0x55, 0x5d, 0x9b, 0x63, 0x89, 0x30, 0x7f, 0x54, 0xee, 0x5a, 0x8e, 0x0e, 0x05, 0xfa, 0x02,\n\t0x05, 0xfa, 0x18, 0x7d, 0x94, 0x1e, 0x7d, 0xcc, 0xb1, 0x96, 0x2f, 0x3d, 0xe6, 0x11, 0x8a, 0x5d,\n\t0x2e, 0x69, 0x4a, 0x71, 0x7d, 0xa8, 0xe3, 0xdb, 0x7c, 0xbb, 0xb3, 0xf3, 0x7d, 0xb3, 0xfc, 0x76,\n\t0x97, 0xb0, 0x32, 0x64, 0x09, 0x26, 0x7c, 0xb8, 0x35, 0xce, 0x33, 0x91, 0x91, 0x96, 0x84, 0x2a,\n\t0xa4, 0xbb, 0x40, 0xfc, 0x6e, 0x7f, 0xb0, 0x9f, 0x47, 0x13, 0x26, 0xd0, 0x1f, 0x31, 0xf1, 0x82,\n\t0x0f, 0x89, 0x07, 0x20, 0x58, 0x3e, 0x44, 0xf1, 0x92, 0x25, 0xd8, 0x31, 0x36, 0x8c, 0xcd, 0x56,\n\t0x50, 0x1b, 0x21, 0x2e, 0x58, 0x09, 0x1f, 0x76, 0x4c, 0x35, 0x21, 0x43, 0xfa, 0x13, 0x90, 0x7e,\n\t0xd7, 0xbf, 0x75, 0x1d, 0xf2, 0x00, 0x96, 0x72, 0xe4, 0xa7, 0xb1, 0xe8, 0x58, 0x1b, 0xc6, 0xa6,\n\t0x13, 0x68, 0x44, 0x9f, 0xc3, 0x67, 0xb5, 0xfa, 0xaf, 0xc4, 0x08, 0xf3, 0x92, 0x64, 0x1d, 0x9a,\n\t0x1c, 0xd3, 0xb0, 0x46, 0x51, 0xe1, 0x6b, 0x84, 0x7e, 0x05, 0xae, 0x6c, 0xf8, 0xc7, 0x2c, 0x8f,\n\t0xc3, 0xb2, 0x02, 0x01, 0x3b, 0x64, 0x82, 0xe9, 0xd5, 0x2a, 0xa6, 0xdf, 0x82, 0x2b, 0x09, 0x17,\n\t0xf3, 0xd2, 0x2b, 0x16, 0x15, 0x57, 0x6b, 0xcd, 0xda, 0xda, 0x5d, 0x70, 0xfb, 0x83, 0x00, 0x27,\n\t0x11, 0xc7, 0x03, 0x8e, 0x79, 0x2f, 0x3d, 0xce, 0xa4, 0xca, 0x34, 0x3a, 0x3a, 0xa9, 0xad, 0xaf,\n\t0xb0, 0x6c, 0x7a, 0x84, 0x2c, 0xec, 0x85, 0xaa, 0x8a, 0x13, 0x68, 0x44, 0x9f, 0x01, 0xf8, 0x83,\n\t0x00, 0xf9, 0x38, 0x4b, 0x39, 0x92, 0x0e, 0x2c, 0x63, 0x9e, 0xfb, 0x59, 0x58, 0x14, 0x70, 0x82,\n\t0x12, 0x5e, 0xd3, 0xe5, 0x13, 0x68, 0xfb, 0x83, 0x83, 0x31, 0x13, 0xb8, 0x2d, 0x44, 0x2e, 0x13,\n\t0x4e, 0x70, 0xaa, 0x79, 0x65, 0x28, 0x47, 0x26, 0x2c, 0x56, 0x4b, 0xac, 0x40, 0x86, 0xf4, 0x07,\n\t0x58, 0x95, 0xa2, 0x7f, 0x39, 0x45, 0x2e, 0x76, 0x98, 0x10, 0xb1, 0x62, 0xe4, 0x82, 0x0d, 0xb1,\n\t0x17, 0x96, 0x8c, 0x1a, 0xca, 0x0f, 0x7b, 0xa8, 0x72, 0x5e, 0x4f, 0xc7, 0xa8, 0x55, 0xd7, 0x46,\n\t0x28, 0xc2, 0xaa, 0xff, 0xb1, 0x8a, 0xd5, 0x1b, 0xb7, 0xe6, 0x1a, 0xa7, 0x0c, 0x56, 0xfc, 0x41,\n\t0x5f, 0xb0, 0xfc, 0xf6, 0x24, 0xd2, 0x78, 0x59, 0x96, 0xf4, 0x42, 0xc5, 0xd1, 0x0a, 0x34, 0xa2,\n\t0x19, 0xb4, 0xfc, 0xc1, 0x0e, 0x8b, 0x59, 0x7a, 0x74, 0x9b, 0xf2, 0x9b, 0xb0, 0xc4, 0xce, 0x58,\n\t0x1e, 0xf2, 0x8e, 0xb5, 0x61, 0x6d, 0xb6, 0xbb, 0xee, 0x56, 0x75, 0x06, 0xb7, 0xb6, 0xe5, 0x44,\n\t0xa0, 0xe7, 0xe9, 0x13, 0x70, 0xd4, 0x00, 0x59, 0x03, 0x87, 0xa9, 0x6a, 0x05, 0x55, 0x01, 0xa4,\n\t0xdf, 0xd8, 0x1b, 0xfd, 0xe5, 0x9c, 0x40, 0xc5, 0xf4, 0x4b, 0x58, 0xde, 0x7d, 0x83, 0x47, 0x22,\n\t0xcb, 0xc9, 0x3d, 0x30, 0xde, 0xaa, 0x05, 0x66, 0x60, 0xbc, 0x95, 0x68, 0xaa, 0x32, 0xcd, 0xc0,\n\t0x98, 0xd2, 0xcf, 0xc1, 0x7e, 0x91, 0x4d, 0x50, 0x15, 0x4e, 0x87, 0x31, 0xea, 0xbc, 0x02, 0xd0,\n\t0x14, 0xec, 0xfe, 0x28, 0x13, 0xe4, 0x3e, 0x98, 0x51, 0xd9, 0x9e, 0x19, 0x85, 0xd2, 0xb8, 0x87,\n\t0xa7, 0x71, 0x8c, 0xa2, 0xb2, 0x67, 0x85, 0xc9, 0x43, 0xb0, 0xc6, 0x19, 0x57, 0x3b, 0xd6, 0xee,\n\t0x92, 0x5a, 0x4b, 0x5a, 0x4e, 0x20, 0xa7, 0x35, 0x1f, 0xc6, 0x1d, 0xbb, 0xe2, 0xc3, 0x98, 0x7e,\n\t0x01, 0xcb, 0x07, 0x1c, 0x7b, 0x02, 0x13, 0xb9, 0xf7, 0x91, 0xc0, 0xa4, 0xda, 0x55, 0x8d, 0x68,\n\t0x02, 0xab, 0xbb, 0xd1, 0x70, 0x24, 0x30, 0xef, 0xa7, 0x6c, 0xac, 0x8e, 0xd1, 0xa2, 0x3a, 0xad,\n\t0xc0, 0xbc, 0x59, 0xc1, 0x43, 0xb0, 0x26, 0x18, 0xdf, 0xa4, 0x73, 0x82, 0x31, 0x7d, 0x06, 0xb6,\n\t0xe4, 0x21, 0x8f, 0xc1, 0x89, 0xd2, 0xe3, 0x8c, 0x77, 0x0c, 0xf5, 0xa9, 0xd6, 0xeb, 0xf9, 0xf3,\n\t0x72, 0x82, 0x22, 0x91, 0xfe, 0x6e, 0x40, 0x5b, 0x4f, 0xdd, 0xb5, 0xca, 0xea, 0x12, 0xb2, 0x6b,\n\t0x97, 0xd0, 0x7d, 0x30, 0x47, 0xe3, 0x8e, 0x53, 0xf0, 0x8d, 0xc6, 0x34, 0x81, 0x76, 0x71, 0x20,\n\t0xd4, 0xd9, 0x20, 0x8f, 0xc0, 0xe6, 0x18, 0x1f, 0x2b, 0x41, 0xed, 0xee, 0x83, 0x0f, 0xfb, 0x51,\n\t0xbd, 0xa8, 0x1c, 0xd2, 0x85, 0xe6, 0x71, 0x31, 0x28, 0xf5, 0x5a, 0x37, 0xe4, 0x57, 0x79, 0xf4,\n\t0x35, 0x34, 0x5f, 0xe2, 0x59, 0x5f, 0x1e, 0x05, 0xf9, 0xb1, 0xd5, 0x99, 0x28, 0x5d, 0xab, 0xc0,\n\t0xff, 0xaa, 0xfa, 0x33, 0x34, 0x9f, 0xb3, 0x04, 0x5f, 0x4d, 0x30, 0x97, 0x0e, 0x39, 0x8b, 0xd2,\n\t0x14, 0xf3, 0xd2, 0x21, 0x05, 0x92, 0x9b, 0x21, 0xa2, 0xa4, 0x3c, 0x70, 0x2a, 0xbe, 0x52, 0x60,\n\t0xd5, 0x15, 0x10, 0xb0, 0x4f, 0xa2, 0xb8, 0xf0, 0xa0, 0x13, 0xa8, 0x98, 0x1e, 0x80, 0xb5, 0x17,\n\t0x89, 0x39, 0x87, 0x1b, 0x0b, 0x0e, 0x5f, 0x87, 0x66, 0xf1, 0x5e, 0x5d, 0xb9, 0xbf, 0xc4, 0x52,\n\t0x54, 0x9c, 0x71, 0xdc, 0xdb, 0x2f, 0xdf, 0xaa, 0x02, 0xd1, 0xaf, 0xc1, 0xd9, 0x0e, 0xc3, 0xbd,\n\t0x7d, 0x79, 0xc9, 0xb2, 0xb0, 0xac, 0x29, 0x43, 0x6d, 0x0c, 0xb3, 0x34, 0x06, 0x7d, 0x0c, 0xf6,\n\t0x77, 0xc8, 0xc2, 0x0f, 0x0c, 0x23, 0xaf, 0xbc, 0x14, 0x93, 0x69, 0xc5, 0x5a, 0x42, 0xfa, 0x2b,\n\t0xb4, 0xb6, 0xc3, 0xf0, 0xfb, 0x54, 0x44, 0x62, 0x7a, 0xa7, 0x3e, 0x5b, 0x03, 0x07, 0x85, 0xbc,\n\t0x7e, 0x8a, 0x1d, 0x2b, 0x00, 0x7d, 0x0a, 0xf7, 0x02, 0x4c, 0xb2, 0x09, 0xfe, 0x87, 0x82, 0x6a,\n\t0x95, 0x59, 0x5b, 0xf5, 0xe8, 0x0c, 0xda, 0xfa, 0x0d, 0x55, 0x77, 0xd8, 0xa7, 0xb0, 0xba, 0xf0,\n\t0xd3, 0xe1, 0x36, 0xe4, 0xe0, 0xc2, 0x1f, 0x84, 0x6b, 0x90, 0x0e, 0xac, 0x5d, 0xf7, 0xec, 0xbb,\n\t0x26, 0xf9, 0x04, 0x56, 0xe6, 0xde, 0x71, 0xd7, 0x92, 0x43, 0x73, 0x4f, 0xb6, 0x6b, 0xef, 0x3c,\n\t0x3d, 0xbf, 0xf0, 0x1a, 0xef, 0x2e, 0xbc, 0xc6, 0xfb, 0x0b, 0xcf, 0xf8, 0x6d, 0xe6, 0x19, 0x7f,\n\t0xce, 0x3c, 0xe3, 0xaf, 0x99, 0x67, 0x9c, 0xcf, 0x3c, 0xe3, 0xef, 0x99, 0x67, 0xfc, 0x33, 0xf3,\n\t0x1a, 0xef, 0x67, 0x9e, 0xf1, 0xc7, 0xa5, 0xd7, 0x38, 0xbf, 0xf4, 0x1a, 0xef, 0x2e, 0xbd, 0xc6,\n\t0xe1, 0x92, 0xda, 0x8e, 0x6f, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x8c, 0xe8, 0x5e, 0x98, 0x37,\n\t0x09, 0x00, 0x00,\n}\n\nfunc (x ChatMsgType) String() string {\n\ts, ok := ChatMsgType_name[int32(x)]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(x))\n}\nfunc (this *C2S_PrivateChatMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*C2S_PrivateChatMsg)\n\tif !ok {\n\t\tthat2, ok := that.(C2S_PrivateChatMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.TargetName != that1.TargetName {\n\t\treturn false\n\t}\n\tif this.Msg != that1.Msg {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *S2C_PrivateChatMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*S2C_PrivateChatMsg)\n\tif !ok {\n\t\tthat2, ok := that.(S2C_PrivateChatMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.TargetName != that1.TargetName {\n\t\treturn false\n\t}\n\tif this.Msg != that1.Msg {\n\t\treturn false\n\t}\n\tif this.Result != that1.Result {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *S2C_PrivateOtherChatMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*S2C_PrivateOtherChatMsg)\n\tif !ok {\n\t\tthat2, ok := that.(S2C_PrivateOtherChatMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.SendName != that1.SendName {\n\t\treturn false\n\t}\n\tif this.Msg != that1.Msg {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *C2S_WorldChatMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*C2S_WorldChatMsg)\n\tif !ok {\n\t\tthat2, ok := that.(C2S_WorldChatMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Data != that1.Data {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *S2C_WorldChatMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*S2C_WorldChatMsg)\n\tif !ok {\n\t\tthat2, ok := that.(S2C_WorldChatMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Name != that1.Name {\n\t\treturn false\n\t}\n\tif this.Data != that1.Data {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *S_ReviseUserInfo) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*S_ReviseUserInfo)\n\tif !ok {\n\t\tthat2, ok := that.(S_ReviseUserInfo)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Nickname != that1.Nickname {\n\t\treturn false\n\t}\n\tif this.HeadId != that1.HeadId {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *C_Response) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*C_Response)\n\tif !ok {\n\t\tthat2, ok := that.(C_Response)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.ErrCode != that1.ErrCode {\n\t\treturn false\n\t}\n\tif this.Msg != that1.Msg {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *C_UpateAttr) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*C_UpateAttr)\n\tif !ok {\n\t\tthat2, ok := that.(C_UpateAttr)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Key != that1.Key {\n\t\treturn false\n\t}\n\tif this.Val != that1.Val {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *S_RequestBattle) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*S_RequestBattle)\n\tif !ok {\n\t\tthat2, ok := that.(S_RequestBattle)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.StageId != that1.StageId {\n\t\treturn false\n\t}\n\tif this.BattleType != that1.BattleType {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *C_RequestBattle) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*C_RequestBattle)\n\tif !ok {\n\t\tthat2, ok := that.(C_RequestBattle)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.StageId != that1.StageId {\n\t\treturn false\n\t}\n\tif this.BattleType != that1.BattleType {\n\t\treturn false\n\t}\n\tif this.ErrCode != that1.ErrCode {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *C_StartBattle) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*C_StartBattle)\n\tif !ok {\n\t\tthat2, ok := that.(C_StartBattle)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.StageId != that1.StageId {\n\t\treturn false\n\t}\n\tif this.BattleType != that1.BattleType {\n\t\treturn false\n\t}\n\tif this.RoomId != that1.RoomId {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *C_Balance) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*C_Balance)\n\tif !ok {\n\t\tthat2, ok := that.(C_Balance)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.StageId != that1.StageId {\n\t\treturn false\n\t}\n\tif this.BattleType != that1.BattleType {\n\t\treturn false\n\t}\n\tif len(this.Awards) != len(that1.Awards) {\n\t\treturn false\n\t}\n\tfor i := range this.Awards {\n\t\tif !this.Awards[i].Equal(that1.Awards[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\nfunc (this *Award) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*Award)\n\tif !ok {\n\t\tthat2, ok := that.(Award)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.AType != that1.AType {\n\t\treturn false\n\t}\n\tif this.AVal != that1.AVal {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *FVector) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*FVector)\n\tif !ok {\n\t\tthat2, ok := that.(FVector)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.X != that1.X {\n\t\treturn false\n\t}\n\tif this.Y != that1.Y {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *Move) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*Move)\n\tif !ok {\n\t\tthat2, ok := that.(Move)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Angle != that1.Angle {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *Shot) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*Shot)\n\tif !ok {\n\t\tthat2, ok := that.(Shot)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Id != that1.Id {\n\t\treturn false\n\t}\n\tif this.BulletId != that1.BulletId {\n\t\treturn false\n\t}\n\tif !this.Pos.Equal(that1.Pos) {\n\t\treturn false\n\t}\n\tif this.Angel != that1.Angel {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *UseItem) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*UseItem)\n\tif !ok {\n\t\tthat2, ok := that.(UseItem)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.ItemId != that1.ItemId {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *FighterSnapInfo) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*FighterSnapInfo)\n\tif !ok {\n\t\tthat2, ok := that.(FighterSnapInfo)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Id != that1.Id {\n\t\treturn false\n\t}\n\tif !this.Pos.Equal(that1.Pos) {\n\t\treturn false\n\t}\n\tif !this.Vel.Equal(that1.Vel) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *Snap) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*Snap)\n\tif !ok {\n\t\tthat2, ok := that.(Snap)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif len(this.Infos) != len(that1.Infos) {\n\t\treturn false\n\t}\n\tfor i := range this.Infos {\n\t\tif !this.Infos[i].Equal(that1.Infos[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\nfunc (this *FighterInfo) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*FighterInfo)\n\tif !ok {\n\t\tthat2, ok := that.(FighterInfo)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Id != that1.Id {\n\t\treturn false\n\t}\n\tif !this.Pos.Equal(that1.Pos) {\n\t\treturn false\n\t}\n\tif !this.Vel.Equal(that1.Vel) {\n\t\treturn false\n\t}\n\tif this.Name != that1.Name {\n\t\treturn false\n\t}\n\tif this.Hp != that1.Hp {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *BattleStart) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*BattleStart)\n\tif !ok {\n\t\tthat2, ok := that.(BattleStart)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif !this.Self.Equal(that1.Self) {\n\t\treturn false\n\t}\n\tif len(this.Fighters) != len(that1.Fighters) {\n\t\treturn false\n\t}\n\tfor i := range this.Fighters {\n\t\tif !this.Fighters[i].Equal(that1.Fighters[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\nfunc (this *NewStage) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*NewStage)\n\tif !ok {\n\t\tthat2, ok := that.(NewStage)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Stage != that1.Stage {\n\t\treturn false\n\t}\n\tif len(this.Fighters) != len(that1.Fighters) {\n\t\treturn false\n\t}\n\tfor i := range this.Fighters {\n\t\tif !this.Fighters[i].Equal(that1.Fighters[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\nfunc (this *GameOver) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*GameOver)\n\tif !ok {\n\t\tthat2, ok := that.(GameOver)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Winner != that1.Winner {\n\t\treturn false\n\t}\n\tif this.Time != that1.Time {\n\t\treturn false\n\t}\n\tif this.Stage != that1.Stage {\n\t\treturn false\n\t}\n\tif this.Kill != that1.Kill {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *Hit) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*Hit)\n\tif !ok {\n\t\tthat2, ok := that.(Hit)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.BulletId != that1.BulletId {\n\t\treturn false\n\t}\n\tif this.TargetId != that1.TargetId {\n\t\treturn false\n\t}\n\tif this.LoseHP != that1.LoseHP {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *AddHP) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*AddHP)\n\tif !ok {\n\t\tthat2, ok := that.(AddHP)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Add != that1.Add {\n\t\treturn false\n\t}\n\tif this.Id != that1.Id {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *Dead) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*Dead)\n\tif !ok {\n\t\tthat2, ok := that.(Dead)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Id != that1.Id {\n\t\treturn false\n\t}\n\tif this.EnemyId != that1.EnemyId {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *AddEntity) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*AddEntity)\n\tif !ok {\n\t\tthat2, ok := that.(AddEntity)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Id != that1.Id {\n\t\treturn false\n\t}\n\tif !this.Pos.Equal(that1.Pos) {\n\t\treturn false\n\t}\n\tif !this.Vel.Equal(that1.Vel) {\n\t\treturn false\n\t}\n\tif this.Etype != that1.Etype {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *RemoveEntity) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*RemoveEntity)\n\tif !ok {\n\t\tthat2, ok := that.(RemoveEntity)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Id != that1.Id {\n\t\treturn false\n\t}\n\tif this.Etype != that1.Etype {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *C2S_PrivateChatMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.C2S_PrivateChatMsg{\")\n\ts = append(s, \"TargetName: \"+fmt.Sprintf(\"%#v\", this.TargetName)+\",\\n\")\n\ts = append(s, \"Msg: \"+fmt.Sprintf(\"%#v\", this.Msg)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *S2C_PrivateChatMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&gameproto.S2C_PrivateChatMsg{\")\n\ts = append(s, \"TargetName: \"+fmt.Sprintf(\"%#v\", this.TargetName)+\",\\n\")\n\ts = append(s, \"Msg: \"+fmt.Sprintf(\"%#v\", this.Msg)+\",\\n\")\n\ts = append(s, \"Result: \"+fmt.Sprintf(\"%#v\", this.Result)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *S2C_PrivateOtherChatMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.S2C_PrivateOtherChatMsg{\")\n\ts = append(s, \"SendName: \"+fmt.Sprintf(\"%#v\", this.SendName)+\",\\n\")\n\ts = append(s, \"Msg: \"+fmt.Sprintf(\"%#v\", this.Msg)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *C2S_WorldChatMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&gameproto.C2S_WorldChatMsg{\")\n\ts = append(s, \"Data: \"+fmt.Sprintf(\"%#v\", this.Data)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *S2C_WorldChatMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.S2C_WorldChatMsg{\")\n\ts = append(s, \"Name: \"+fmt.Sprintf(\"%#v\", this.Name)+\",\\n\")\n\ts = append(s, \"Data: \"+fmt.Sprintf(\"%#v\", this.Data)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *S_ReviseUserInfo) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.S_ReviseUserInfo{\")\n\ts = append(s, \"Nickname: \"+fmt.Sprintf(\"%#v\", this.Nickname)+\",\\n\")\n\ts = append(s, \"HeadId: \"+fmt.Sprintf(\"%#v\", this.HeadId)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *C_Response) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.C_Response{\")\n\ts = append(s, \"ErrCode: \"+fmt.Sprintf(\"%#v\", this.ErrCode)+\",\\n\")\n\ts = append(s, \"Msg: \"+fmt.Sprintf(\"%#v\", this.Msg)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *C_UpateAttr) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.C_UpateAttr{\")\n\ts = append(s, \"Key: \"+fmt.Sprintf(\"%#v\", this.Key)+\",\\n\")\n\ts = append(s, \"Val: \"+fmt.Sprintf(\"%#v\", this.Val)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *S_RequestBattle) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.S_RequestBattle{\")\n\ts = append(s, \"StageId: \"+fmt.Sprintf(\"%#v\", this.StageId)+\",\\n\")\n\ts = append(s, \"BattleType: \"+fmt.Sprintf(\"%#v\", this.BattleType)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *C_RequestBattle) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&gameproto.C_RequestBattle{\")\n\ts = append(s, \"StageId: \"+fmt.Sprintf(\"%#v\", this.StageId)+\",\\n\")\n\ts = append(s, \"BattleType: \"+fmt.Sprintf(\"%#v\", this.BattleType)+\",\\n\")\n\ts = append(s, \"ErrCode: \"+fmt.Sprintf(\"%#v\", this.ErrCode)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *C_StartBattle) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&gameproto.C_StartBattle{\")\n\ts = append(s, \"StageId: \"+fmt.Sprintf(\"%#v\", this.StageId)+\",\\n\")\n\ts = append(s, \"BattleType: \"+fmt.Sprintf(\"%#v\", this.BattleType)+\",\\n\")\n\ts = append(s, \"RoomId: \"+fmt.Sprintf(\"%#v\", this.RoomId)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *C_Balance) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&gameproto.C_Balance{\")\n\ts = append(s, \"StageId: \"+fmt.Sprintf(\"%#v\", this.StageId)+\",\\n\")\n\ts = append(s, \"BattleType: \"+fmt.Sprintf(\"%#v\", this.BattleType)+\",\\n\")\n\tif this.Awards != nil {\n\t\ts = append(s, \"Awards: \"+fmt.Sprintf(\"%#v\", this.Awards)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *Award) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.Award{\")\n\ts = append(s, \"AType: \"+fmt.Sprintf(\"%#v\", this.AType)+\",\\n\")\n\ts = append(s, \"AVal: \"+fmt.Sprintf(\"%#v\", this.AVal)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *FVector) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.FVector{\")\n\ts = append(s, \"X: \"+fmt.Sprintf(\"%#v\", this.X)+\",\\n\")\n\ts = append(s, \"Y: \"+fmt.Sprintf(\"%#v\", this.Y)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *Move) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&gameproto.Move{\")\n\ts = append(s, \"Angle: \"+fmt.Sprintf(\"%#v\", this.Angle)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *Shot) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 8)\n\ts = append(s, \"&gameproto.Shot{\")\n\ts = append(s, \"Id: \"+fmt.Sprintf(\"%#v\", this.Id)+\",\\n\")\n\ts = append(s, \"BulletId: \"+fmt.Sprintf(\"%#v\", this.BulletId)+\",\\n\")\n\tif this.Pos != nil {\n\t\ts = append(s, \"Pos: \"+fmt.Sprintf(\"%#v\", this.Pos)+\",\\n\")\n\t}\n\ts = append(s, \"Angel: \"+fmt.Sprintf(\"%#v\", this.Angel)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *UseItem) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&gameproto.UseItem{\")\n\ts = append(s, \"ItemId: \"+fmt.Sprintf(\"%#v\", this.ItemId)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *FighterSnapInfo) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&gameproto.FighterSnapInfo{\")\n\ts = append(s, \"Id: \"+fmt.Sprintf(\"%#v\", this.Id)+\",\\n\")\n\tif this.Pos != nil {\n\t\ts = append(s, \"Pos: \"+fmt.Sprintf(\"%#v\", this.Pos)+\",\\n\")\n\t}\n\tif this.Vel != nil {\n\t\ts = append(s, \"Vel: \"+fmt.Sprintf(\"%#v\", this.Vel)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *Snap) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&gameproto.Snap{\")\n\tif this.Infos != nil {\n\t\ts = append(s, \"Infos: \"+fmt.Sprintf(\"%#v\", this.Infos)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *FighterInfo) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 9)\n\ts = append(s, \"&gameproto.FighterInfo{\")\n\ts = append(s, \"Id: \"+fmt.Sprintf(\"%#v\", this.Id)+\",\\n\")\n\tif this.Pos != nil {\n\t\ts = append(s, \"Pos: \"+fmt.Sprintf(\"%#v\", this.Pos)+\",\\n\")\n\t}\n\tif this.Vel != nil {\n\t\ts = append(s, \"Vel: \"+fmt.Sprintf(\"%#v\", this.Vel)+\",\\n\")\n\t}\n\ts = append(s, \"Name: \"+fmt.Sprintf(\"%#v\", this.Name)+\",\\n\")\n\ts = append(s, \"Hp: \"+fmt.Sprintf(\"%#v\", this.Hp)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *BattleStart) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.BattleStart{\")\n\tif this.Self != nil {\n\t\ts = append(s, \"Self: \"+fmt.Sprintf(\"%#v\", this.Self)+\",\\n\")\n\t}\n\tif this.Fighters != nil {\n\t\ts = append(s, \"Fighters: \"+fmt.Sprintf(\"%#v\", this.Fighters)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *NewStage) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.NewStage{\")\n\ts = append(s, \"Stage: \"+fmt.Sprintf(\"%#v\", this.Stage)+\",\\n\")\n\tif this.Fighters != nil {\n\t\ts = append(s, \"Fighters: \"+fmt.Sprintf(\"%#v\", this.Fighters)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *GameOver) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 8)\n\ts = append(s, \"&gameproto.GameOver{\")\n\ts = append(s, \"Winner: \"+fmt.Sprintf(\"%#v\", this.Winner)+\",\\n\")\n\ts = append(s, \"Time: \"+fmt.Sprintf(\"%#v\", this.Time)+\",\\n\")\n\ts = append(s, \"Stage: \"+fmt.Sprintf(\"%#v\", this.Stage)+\",\\n\")\n\ts = append(s, \"Kill: \"+fmt.Sprintf(\"%#v\", this.Kill)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *Hit) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&gameproto.Hit{\")\n\ts = append(s, \"BulletId: \"+fmt.Sprintf(\"%#v\", this.BulletId)+\",\\n\")\n\ts = append(s, \"TargetId: \"+fmt.Sprintf(\"%#v\", this.TargetId)+\",\\n\")\n\ts = append(s, \"LoseHP: \"+fmt.Sprintf(\"%#v\", this.LoseHP)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *AddHP) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.AddHP{\")\n\ts = append(s, \"Add: \"+fmt.Sprintf(\"%#v\", this.Add)+\",\\n\")\n\ts = append(s, \"Id: \"+fmt.Sprintf(\"%#v\", this.Id)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *Dead) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.Dead{\")\n\ts = append(s, \"Id: \"+fmt.Sprintf(\"%#v\", this.Id)+\",\\n\")\n\ts = append(s, \"EnemyId: \"+fmt.Sprintf(\"%#v\", this.EnemyId)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *AddEntity) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 8)\n\ts = append(s, \"&gameproto.AddEntity{\")\n\ts = append(s, \"Id: \"+fmt.Sprintf(\"%#v\", this.Id)+\",\\n\")\n\tif this.Pos != nil {\n\t\ts = append(s, \"Pos: \"+fmt.Sprintf(\"%#v\", this.Pos)+\",\\n\")\n\t}\n\tif this.Vel != nil {\n\t\ts = append(s, \"Vel: \"+fmt.Sprintf(\"%#v\", this.Vel)+\",\\n\")\n\t}\n\ts = append(s, \"Etype: \"+fmt.Sprintf(\"%#v\", this.Etype)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *RemoveEntity) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.RemoveEntity{\")\n\ts = append(s, \"Id: \"+fmt.Sprintf(\"%#v\", this.Id)+\",\\n\")\n\ts = append(s, \"Etype: \"+fmt.Sprintf(\"%#v\", this.Etype)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc valueToGoStringGamemsg(v interface{}, typ string) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"func(v %v) *%v { return &v } ( %#v )\", typ, typ, pv)\n}\nfunc (m *C2S_PrivateChatMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *C2S_PrivateChatMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.TargetName) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(len(m.TargetName)))\n\t\ti += copy(dAtA[i:], m.TargetName)\n\t}\n\tif len(m.Msg) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(len(m.Msg)))\n\t\ti += copy(dAtA[i:], m.Msg)\n\t}\n\treturn i, nil\n}\n\nfunc (m *S2C_PrivateChatMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *S2C_PrivateChatMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.TargetName) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(len(m.TargetName)))\n\t\ti += copy(dAtA[i:], m.TargetName)\n\t}\n\tif len(m.Msg) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(len(m.Msg)))\n\t\ti += copy(dAtA[i:], m.Msg)\n\t}\n\tif m.Result != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Result))\n\t}\n\treturn i, nil\n}\n\nfunc (m *S2C_PrivateOtherChatMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *S2C_PrivateOtherChatMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.SendName) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(len(m.SendName)))\n\t\ti += copy(dAtA[i:], m.SendName)\n\t}\n\tif len(m.Msg) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(len(m.Msg)))\n\t\ti += copy(dAtA[i:], m.Msg)\n\t}\n\treturn i, nil\n}\n\nfunc (m *C2S_WorldChatMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *C2S_WorldChatMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Data) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(len(m.Data)))\n\t\ti += copy(dAtA[i:], m.Data)\n\t}\n\treturn i, nil\n}\n\nfunc (m *S2C_WorldChatMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *S2C_WorldChatMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Name) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(len(m.Name)))\n\t\ti += copy(dAtA[i:], m.Name)\n\t}\n\tif len(m.Data) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(len(m.Data)))\n\t\ti += copy(dAtA[i:], m.Data)\n\t}\n\treturn i, nil\n}\n\nfunc (m *S_ReviseUserInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *S_ReviseUserInfo) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Nickname) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(len(m.Nickname)))\n\t\ti += copy(dAtA[i:], m.Nickname)\n\t}\n\tif m.HeadId != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.HeadId))\n\t}\n\treturn i, nil\n}\n\nfunc (m *C_Response) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *C_Response) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ErrCode != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.ErrCode))\n\t}\n\tif len(m.Msg) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(len(m.Msg)))\n\t\ti += copy(dAtA[i:], m.Msg)\n\t}\n\treturn i, nil\n}\n\nfunc (m *C_UpateAttr) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *C_UpateAttr) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Key) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(len(m.Key)))\n\t\ti += copy(dAtA[i:], m.Key)\n\t}\n\tif m.Val != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Val))\n\t}\n\treturn i, nil\n}\n\nfunc (m *S_RequestBattle) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *S_RequestBattle) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.StageId != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.StageId))\n\t}\n\tif m.BattleType != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.BattleType))\n\t}\n\treturn i, nil\n}\n\nfunc (m *C_RequestBattle) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *C_RequestBattle) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.StageId != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.StageId))\n\t}\n\tif m.BattleType != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.BattleType))\n\t}\n\tif m.ErrCode != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.ErrCode))\n\t}\n\treturn i, nil\n}\n\nfunc (m *C_StartBattle) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *C_StartBattle) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.StageId != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.StageId))\n\t}\n\tif m.BattleType != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.BattleType))\n\t}\n\tif len(m.RoomId) > 0 {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(len(m.RoomId)))\n\t\ti += copy(dAtA[i:], m.RoomId)\n\t}\n\treturn i, nil\n}\n\nfunc (m *C_Balance) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *C_Balance) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.StageId != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.StageId))\n\t}\n\tif m.BattleType != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.BattleType))\n\t}\n\tif len(m.Awards) > 0 {\n\t\tfor _, msg := range m.Awards {\n\t\t\tdAtA[i] = 0x1a\n\t\t\ti++\n\t\t\ti = encodeVarintGamemsg(dAtA, i, uint64(msg.Size()))\n\t\t\tn, err := msg.MarshalTo(dAtA[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti += n\n\t\t}\n\t}\n\treturn i, nil\n}\n\nfunc (m *Award) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Award) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AType != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.AType))\n\t}\n\tif m.AVal != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.AVal))\n\t}\n\treturn i, nil\n}\n\nfunc (m *FVector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FVector) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.X != 0 {\n\t\tdAtA[i] = 0xd\n\t\ti++\n\t\tencoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.X))))\n\t\ti += 4\n\t}\n\tif m.Y != 0 {\n\t\tdAtA[i] = 0x15\n\t\ti++\n\t\tencoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Y))))\n\t\ti += 4\n\t}\n\treturn i, nil\n}\n\nfunc (m *Move) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Move) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Angle != 0 {\n\t\tdAtA[i] = 0xd\n\t\ti++\n\t\tencoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Angle))))\n\t\ti += 4\n\t}\n\treturn i, nil\n}\n\nfunc (m *Shot) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Shot) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Id))\n\t}\n\tif m.BulletId != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.BulletId))\n\t}\n\tif m.Pos != nil {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Pos.Size()))\n\t\tn1, err := m.Pos.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n1\n\t}\n\tif m.Angel != 0 {\n\t\tdAtA[i] = 0x25\n\t\ti++\n\t\tencoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Angel))))\n\t\ti += 4\n\t}\n\treturn i, nil\n}\n\nfunc (m *UseItem) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UseItem) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ItemId != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.ItemId))\n\t}\n\treturn i, nil\n}\n\nfunc (m *FighterSnapInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FighterSnapInfo) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Id))\n\t}\n\tif m.Pos != nil {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Pos.Size()))\n\t\tn2, err := m.Pos.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n2\n\t}\n\tif m.Vel != nil {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Vel.Size()))\n\t\tn3, err := m.Vel.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n3\n\t}\n\treturn i, nil\n}\n\nfunc (m *Snap) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Snap) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Infos) > 0 {\n\t\tfor _, msg := range m.Infos {\n\t\t\tdAtA[i] = 0xa\n\t\t\ti++\n\t\t\ti = encodeVarintGamemsg(dAtA, i, uint64(msg.Size()))\n\t\t\tn, err := msg.MarshalTo(dAtA[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti += n\n\t\t}\n\t}\n\treturn i, nil\n}\n\nfunc (m *FighterInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FighterInfo) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Id))\n\t}\n\tif m.Pos != nil {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Pos.Size()))\n\t\tn4, err := m.Pos.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n4\n\t}\n\tif m.Vel != nil {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Vel.Size()))\n\t\tn5, err := m.Vel.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n5\n\t}\n\tif len(m.Name) > 0 {\n\t\tdAtA[i] = 0x22\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(len(m.Name)))\n\t\ti += copy(dAtA[i:], m.Name)\n\t}\n\tif m.Hp != 0 {\n\t\tdAtA[i] = 0x28\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Hp))\n\t}\n\treturn i, nil\n}\n\nfunc (m *BattleStart) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *BattleStart) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Self != nil {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Self.Size()))\n\t\tn6, err := m.Self.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n6\n\t}\n\tif len(m.Fighters) > 0 {\n\t\tfor _, msg := range m.Fighters {\n\t\t\tdAtA[i] = 0x12\n\t\t\ti++\n\t\t\ti = encodeVarintGamemsg(dAtA, i, uint64(msg.Size()))\n\t\t\tn, err := msg.MarshalTo(dAtA[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti += n\n\t\t}\n\t}\n\treturn i, nil\n}\n\nfunc (m *NewStage) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NewStage) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Stage != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Stage))\n\t}\n\tif len(m.Fighters) > 0 {\n\t\tfor _, msg := range m.Fighters {\n\t\t\tdAtA[i] = 0x12\n\t\t\ti++\n\t\t\ti = encodeVarintGamemsg(dAtA, i, uint64(msg.Size()))\n\t\t\tn, err := msg.MarshalTo(dAtA[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti += n\n\t\t}\n\t}\n\treturn i, nil\n}\n\nfunc (m *GameOver) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GameOver) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Winner != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Winner))\n\t}\n\tif m.Time != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Time))\n\t}\n\tif m.Stage != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Stage))\n\t}\n\tif m.Kill != 0 {\n\t\tdAtA[i] = 0x20\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Kill))\n\t}\n\treturn i, nil\n}\n\nfunc (m *Hit) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Hit) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.BulletId != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.BulletId))\n\t}\n\tif m.TargetId != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.TargetId))\n\t}\n\tif m.LoseHP != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.LoseHP))\n\t}\n\treturn i, nil\n}\n\nfunc (m *AddHP) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AddHP) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Add != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Add))\n\t}\n\tif m.Id != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Id))\n\t}\n\treturn i, nil\n}\n\nfunc (m *Dead) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Dead) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Id))\n\t}\n\tif m.EnemyId != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.EnemyId))\n\t}\n\treturn i, nil\n}\n\nfunc (m *AddEntity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AddEntity) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Id))\n\t}\n\tif m.Pos != nil {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Pos.Size()))\n\t\tn7, err := m.Pos.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n7\n\t}\n\tif m.Vel != nil {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Vel.Size()))\n\t\tn8, err := m.Vel.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n8\n\t}\n\tif m.Etype != 0 {\n\t\tdAtA[i] = 0x20\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Etype))\n\t}\n\treturn i, nil\n}\n\nfunc (m *RemoveEntity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RemoveEntity) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Id))\n\t}\n\tif m.Etype != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintGamemsg(dAtA, i, uint64(m.Etype))\n\t}\n\treturn i, nil\n}\n\nfunc encodeVarintGamemsg(dAtA []byte, offset int, v uint64) int {\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn offset + 1\n}\nfunc (m *C2S_PrivateChatMsg) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.TargetName)\n\tif l > 0 {\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tl = len(m.Msg)\n\tif l > 0 {\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *S2C_PrivateChatMsg) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.TargetName)\n\tif l > 0 {\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tl = len(m.Msg)\n\tif l > 0 {\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tif m.Result != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Result))\n\t}\n\treturn n\n}\n\nfunc (m *S2C_PrivateOtherChatMsg) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.SendName)\n\tif l > 0 {\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tl = len(m.Msg)\n\tif l > 0 {\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *C2S_WorldChatMsg) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Data)\n\tif l > 0 {\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *S2C_WorldChatMsg) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tif l > 0 {\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tl = len(m.Data)\n\tif l > 0 {\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *S_ReviseUserInfo) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Nickname)\n\tif l > 0 {\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tif m.HeadId != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.HeadId))\n\t}\n\treturn n\n}\n\nfunc (m *C_Response) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ErrCode != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.ErrCode))\n\t}\n\tl = len(m.Msg)\n\tif l > 0 {\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *C_UpateAttr) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tif l > 0 {\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tif m.Val != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Val))\n\t}\n\treturn n\n}\n\nfunc (m *S_RequestBattle) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.StageId != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.StageId))\n\t}\n\tif m.BattleType != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.BattleType))\n\t}\n\treturn n\n}\n\nfunc (m *C_RequestBattle) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.StageId != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.StageId))\n\t}\n\tif m.BattleType != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.BattleType))\n\t}\n\tif m.ErrCode != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.ErrCode))\n\t}\n\treturn n\n}\n\nfunc (m *C_StartBattle) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.StageId != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.StageId))\n\t}\n\tif m.BattleType != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.BattleType))\n\t}\n\tl = len(m.RoomId)\n\tif l > 0 {\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *C_Balance) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.StageId != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.StageId))\n\t}\n\tif m.BattleType != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.BattleType))\n\t}\n\tif len(m.Awards) > 0 {\n\t\tfor _, e := range m.Awards {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Award) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.AType != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.AType))\n\t}\n\tif m.AVal != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.AVal))\n\t}\n\treturn n\n}\n\nfunc (m *FVector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.X != 0 {\n\t\tn += 5\n\t}\n\tif m.Y != 0 {\n\t\tn += 5\n\t}\n\treturn n\n}\n\nfunc (m *Move) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Angle != 0 {\n\t\tn += 5\n\t}\n\treturn n\n}\n\nfunc (m *Shot) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Id))\n\t}\n\tif m.BulletId != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.BulletId))\n\t}\n\tif m.Pos != nil {\n\t\tl = m.Pos.Size()\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tif m.Angel != 0 {\n\t\tn += 5\n\t}\n\treturn n\n}\n\nfunc (m *UseItem) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ItemId != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.ItemId))\n\t}\n\treturn n\n}\n\nfunc (m *FighterSnapInfo) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Id))\n\t}\n\tif m.Pos != nil {\n\t\tl = m.Pos.Size()\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tif m.Vel != nil {\n\t\tl = m.Vel.Size()\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Snap) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Infos) > 0 {\n\t\tfor _, e := range m.Infos {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FighterInfo) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Id))\n\t}\n\tif m.Pos != nil {\n\t\tl = m.Pos.Size()\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tif m.Vel != nil {\n\t\tl = m.Vel.Size()\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tl = len(m.Name)\n\tif l > 0 {\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tif m.Hp != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Hp))\n\t}\n\treturn n\n}\n\nfunc (m *BattleStart) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Self != nil {\n\t\tl = m.Self.Size()\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tif len(m.Fighters) > 0 {\n\t\tfor _, e := range m.Fighters {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NewStage) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Stage != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Stage))\n\t}\n\tif len(m.Fighters) > 0 {\n\t\tfor _, e := range m.Fighters {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *GameOver) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Winner != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Winner))\n\t}\n\tif m.Time != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Time))\n\t}\n\tif m.Stage != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Stage))\n\t}\n\tif m.Kill != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Kill))\n\t}\n\treturn n\n}\n\nfunc (m *Hit) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.BulletId != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.BulletId))\n\t}\n\tif m.TargetId != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.TargetId))\n\t}\n\tif m.LoseHP != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.LoseHP))\n\t}\n\treturn n\n}\n\nfunc (m *AddHP) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Add != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Add))\n\t}\n\tif m.Id != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Id))\n\t}\n\treturn n\n}\n\nfunc (m *Dead) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Id))\n\t}\n\tif m.EnemyId != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.EnemyId))\n\t}\n\treturn n\n}\n\nfunc (m *AddEntity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Id))\n\t}\n\tif m.Pos != nil {\n\t\tl = m.Pos.Size()\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tif m.Vel != nil {\n\t\tl = m.Vel.Size()\n\t\tn += 1 + l + sovGamemsg(uint64(l))\n\t}\n\tif m.Etype != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Etype))\n\t}\n\treturn n\n}\n\nfunc (m *RemoveEntity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Id))\n\t}\n\tif m.Etype != 0 {\n\t\tn += 1 + sovGamemsg(uint64(m.Etype))\n\t}\n\treturn n\n}\n\nfunc sovGamemsg(x uint64) (n int) {\n\tfor {\n\t\tn++\n\t\tx >>= 7\n\t\tif x == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn n\n}\nfunc sozGamemsg(x uint64) (n int) {\n\treturn sovGamemsg(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *C2S_PrivateChatMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&C2S_PrivateChatMsg{`,\n\t\t`TargetName:` + fmt.Sprintf(\"%v\", this.TargetName) + `,`,\n\t\t`Msg:` + fmt.Sprintf(\"%v\", this.Msg) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *S2C_PrivateChatMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&S2C_PrivateChatMsg{`,\n\t\t`TargetName:` + fmt.Sprintf(\"%v\", this.TargetName) + `,`,\n\t\t`Msg:` + fmt.Sprintf(\"%v\", this.Msg) + `,`,\n\t\t`Result:` + fmt.Sprintf(\"%v\", this.Result) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *S2C_PrivateOtherChatMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&S2C_PrivateOtherChatMsg{`,\n\t\t`SendName:` + fmt.Sprintf(\"%v\", this.SendName) + `,`,\n\t\t`Msg:` + fmt.Sprintf(\"%v\", this.Msg) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *C2S_WorldChatMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&C2S_WorldChatMsg{`,\n\t\t`Data:` + fmt.Sprintf(\"%v\", this.Data) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *S2C_WorldChatMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&S2C_WorldChatMsg{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Data:` + fmt.Sprintf(\"%v\", this.Data) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *S_ReviseUserInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&S_ReviseUserInfo{`,\n\t\t`Nickname:` + fmt.Sprintf(\"%v\", this.Nickname) + `,`,\n\t\t`HeadId:` + fmt.Sprintf(\"%v\", this.HeadId) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *C_Response) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&C_Response{`,\n\t\t`ErrCode:` + fmt.Sprintf(\"%v\", this.ErrCode) + `,`,\n\t\t`Msg:` + fmt.Sprintf(\"%v\", this.Msg) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *C_UpateAttr) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&C_UpateAttr{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Val:` + fmt.Sprintf(\"%v\", this.Val) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *S_RequestBattle) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&S_RequestBattle{`,\n\t\t`StageId:` + fmt.Sprintf(\"%v\", this.StageId) + `,`,\n\t\t`BattleType:` + fmt.Sprintf(\"%v\", this.BattleType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *C_RequestBattle) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&C_RequestBattle{`,\n\t\t`StageId:` + fmt.Sprintf(\"%v\", this.StageId) + `,`,\n\t\t`BattleType:` + fmt.Sprintf(\"%v\", this.BattleType) + `,`,\n\t\t`ErrCode:` + fmt.Sprintf(\"%v\", this.ErrCode) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *C_StartBattle) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&C_StartBattle{`,\n\t\t`StageId:` + fmt.Sprintf(\"%v\", this.StageId) + `,`,\n\t\t`BattleType:` + fmt.Sprintf(\"%v\", this.BattleType) + `,`,\n\t\t`RoomId:` + fmt.Sprintf(\"%v\", this.RoomId) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *C_Balance) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&C_Balance{`,\n\t\t`StageId:` + fmt.Sprintf(\"%v\", this.StageId) + `,`,\n\t\t`BattleType:` + fmt.Sprintf(\"%v\", this.BattleType) + `,`,\n\t\t`Awards:` + strings.Replace(fmt.Sprintf(\"%v\", this.Awards), \"Award\", \"Award\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Award) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Award{`,\n\t\t`AType:` + fmt.Sprintf(\"%v\", this.AType) + `,`,\n\t\t`AVal:` + fmt.Sprintf(\"%v\", this.AVal) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FVector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FVector{`,\n\t\t`X:` + fmt.Sprintf(\"%v\", this.X) + `,`,\n\t\t`Y:` + fmt.Sprintf(\"%v\", this.Y) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Move) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Move{`,\n\t\t`Angle:` + fmt.Sprintf(\"%v\", this.Angle) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Shot) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Shot{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`BulletId:` + fmt.Sprintf(\"%v\", this.BulletId) + `,`,\n\t\t`Pos:` + strings.Replace(fmt.Sprintf(\"%v\", this.Pos), \"FVector\", \"FVector\", 1) + `,`,\n\t\t`Angel:` + fmt.Sprintf(\"%v\", this.Angel) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UseItem) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UseItem{`,\n\t\t`ItemId:` + fmt.Sprintf(\"%v\", this.ItemId) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FighterSnapInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FighterSnapInfo{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`Pos:` + strings.Replace(fmt.Sprintf(\"%v\", this.Pos), \"FVector\", \"FVector\", 1) + `,`,\n\t\t`Vel:` + strings.Replace(fmt.Sprintf(\"%v\", this.Vel), \"FVector\", \"FVector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Snap) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Snap{`,\n\t\t`Infos:` + strings.Replace(fmt.Sprintf(\"%v\", this.Infos), \"FighterSnapInfo\", \"FighterSnapInfo\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FighterInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FighterInfo{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`Pos:` + strings.Replace(fmt.Sprintf(\"%v\", this.Pos), \"FVector\", \"FVector\", 1) + `,`,\n\t\t`Vel:` + strings.Replace(fmt.Sprintf(\"%v\", this.Vel), \"FVector\", \"FVector\", 1) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Hp:` + fmt.Sprintf(\"%v\", this.Hp) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *BattleStart) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&BattleStart{`,\n\t\t`Self:` + strings.Replace(fmt.Sprintf(\"%v\", this.Self), \"FighterInfo\", \"FighterInfo\", 1) + `,`,\n\t\t`Fighters:` + strings.Replace(fmt.Sprintf(\"%v\", this.Fighters), \"FighterInfo\", \"FighterInfo\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NewStage) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NewStage{`,\n\t\t`Stage:` + fmt.Sprintf(\"%v\", this.Stage) + `,`,\n\t\t`Fighters:` + strings.Replace(fmt.Sprintf(\"%v\", this.Fighters), \"FighterInfo\", \"FighterInfo\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GameOver) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GameOver{`,\n\t\t`Winner:` + fmt.Sprintf(\"%v\", this.Winner) + `,`,\n\t\t`Time:` + fmt.Sprintf(\"%v\", this.Time) + `,`,\n\t\t`Stage:` + fmt.Sprintf(\"%v\", this.Stage) + `,`,\n\t\t`Kill:` + fmt.Sprintf(\"%v\", this.Kill) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Hit) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Hit{`,\n\t\t`BulletId:` + fmt.Sprintf(\"%v\", this.BulletId) + `,`,\n\t\t`TargetId:` + fmt.Sprintf(\"%v\", this.TargetId) + `,`,\n\t\t`LoseHP:` + fmt.Sprintf(\"%v\", this.LoseHP) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AddHP) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AddHP{`,\n\t\t`Add:` + fmt.Sprintf(\"%v\", this.Add) + `,`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Dead) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Dead{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`EnemyId:` + fmt.Sprintf(\"%v\", this.EnemyId) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AddEntity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AddEntity{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`Pos:` + strings.Replace(fmt.Sprintf(\"%v\", this.Pos), \"FVector\", \"FVector\", 1) + `,`,\n\t\t`Vel:` + strings.Replace(fmt.Sprintf(\"%v\", this.Vel), \"FVector\", \"FVector\", 1) + `,`,\n\t\t`Etype:` + fmt.Sprintf(\"%v\", this.Etype) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RemoveEntity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RemoveEntity{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`Etype:` + fmt.Sprintf(\"%v\", this.Etype) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGamemsg(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *C2S_PrivateChatMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: C2S_PrivateChatMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: C2S_PrivateChatMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Msg\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Msg = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *S2C_PrivateChatMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: S2C_PrivateChatMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: S2C_PrivateChatMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Msg\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Msg = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Result\", wireType)\n\t\t\t}\n\t\t\tm.Result = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Result |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *S2C_PrivateOtherChatMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: S2C_PrivateOtherChatMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: S2C_PrivateOtherChatMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SendName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SendName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Msg\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Msg = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *C2S_WorldChatMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: C2S_WorldChatMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: C2S_WorldChatMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Data = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *S2C_WorldChatMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: S2C_WorldChatMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: S2C_WorldChatMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Data = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *S_ReviseUserInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: S_ReviseUserInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: S_ReviseUserInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Nickname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Nickname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HeadId\", wireType)\n\t\t\t}\n\t\t\tm.HeadId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HeadId |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *C_Response) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: C_Response: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: C_Response: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ErrCode\", wireType)\n\t\t\t}\n\t\t\tm.ErrCode = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ErrCode |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Msg\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Msg = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *C_UpateAttr) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: C_UpateAttr: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: C_UpateAttr: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Val\", wireType)\n\t\t\t}\n\t\t\tm.Val = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Val |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *S_RequestBattle) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: S_RequestBattle: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: S_RequestBattle: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StageId\", wireType)\n\t\t\t}\n\t\t\tm.StageId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.StageId |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BattleType\", wireType)\n\t\t\t}\n\t\t\tm.BattleType = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.BattleType |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *C_RequestBattle) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: C_RequestBattle: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: C_RequestBattle: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StageId\", wireType)\n\t\t\t}\n\t\t\tm.StageId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.StageId |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BattleType\", wireType)\n\t\t\t}\n\t\t\tm.BattleType = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.BattleType |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ErrCode\", wireType)\n\t\t\t}\n\t\t\tm.ErrCode = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ErrCode |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *C_StartBattle) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: C_StartBattle: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: C_StartBattle: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StageId\", wireType)\n\t\t\t}\n\t\t\tm.StageId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.StageId |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BattleType\", wireType)\n\t\t\t}\n\t\t\tm.BattleType = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.BattleType |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoomId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RoomId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *C_Balance) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: C_Balance: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: C_Balance: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StageId\", wireType)\n\t\t\t}\n\t\t\tm.StageId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.StageId |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BattleType\", wireType)\n\t\t\t}\n\t\t\tm.BattleType = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.BattleType |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Awards\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Awards = append(m.Awards, &Award{})\n\t\t\tif err := m.Awards[len(m.Awards)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Award) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Award: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Award: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AType\", wireType)\n\t\t\t}\n\t\t\tm.AType = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AType |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AVal\", wireType)\n\t\t\t}\n\t\t\tm.AVal = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AVal |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FVector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FVector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FVector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 5 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field X\", wireType)\n\t\t\t}\n\t\t\tvar v uint32\n\t\t\tif (iNdEx + 4) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))\n\t\t\tiNdEx += 4\n\t\t\tm.X = float32(math.Float32frombits(v))\n\t\tcase 2:\n\t\t\tif wireType != 5 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Y\", wireType)\n\t\t\t}\n\t\t\tvar v uint32\n\t\t\tif (iNdEx + 4) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))\n\t\t\tiNdEx += 4\n\t\t\tm.Y = float32(math.Float32frombits(v))\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Move) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Move: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Move: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 5 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Angle\", wireType)\n\t\t\t}\n\t\t\tvar v uint32\n\t\t\tif (iNdEx + 4) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))\n\t\t\tiNdEx += 4\n\t\t\tm.Angle = float32(math.Float32frombits(v))\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Shot) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Shot: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Shot: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tm.Id = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Id |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BulletId\", wireType)\n\t\t\t}\n\t\t\tm.BulletId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.BulletId |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pos\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pos == nil {\n\t\t\t\tm.Pos = &FVector{}\n\t\t\t}\n\t\t\tif err := m.Pos.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 5 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Angel\", wireType)\n\t\t\t}\n\t\t\tvar v uint32\n\t\t\tif (iNdEx + 4) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))\n\t\t\tiNdEx += 4\n\t\t\tm.Angel = float32(math.Float32frombits(v))\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UseItem) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UseItem: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UseItem: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ItemId\", wireType)\n\t\t\t}\n\t\t\tm.ItemId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ItemId |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FighterSnapInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FighterSnapInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FighterSnapInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tm.Id = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Id |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pos\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pos == nil {\n\t\t\t\tm.Pos = &FVector{}\n\t\t\t}\n\t\t\tif err := m.Pos.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Vel\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Vel == nil {\n\t\t\t\tm.Vel = &FVector{}\n\t\t\t}\n\t\t\tif err := m.Vel.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Snap) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Snap: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Snap: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Infos\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Infos = append(m.Infos, &FighterSnapInfo{})\n\t\t\tif err := m.Infos[len(m.Infos)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FighterInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FighterInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FighterInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tm.Id = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Id |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pos\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pos == nil {\n\t\t\t\tm.Pos = &FVector{}\n\t\t\t}\n\t\t\tif err := m.Pos.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Vel\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Vel == nil {\n\t\t\t\tm.Vel = &FVector{}\n\t\t\t}\n\t\t\tif err := m.Vel.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hp\", wireType)\n\t\t\t}\n\t\t\tm.Hp = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Hp |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *BattleStart) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: BattleStart: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: BattleStart: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Self\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Self == nil {\n\t\t\t\tm.Self = &FighterInfo{}\n\t\t\t}\n\t\t\tif err := m.Self.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Fighters\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Fighters = append(m.Fighters, &FighterInfo{})\n\t\t\tif err := m.Fighters[len(m.Fighters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NewStage) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NewStage: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NewStage: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stage\", wireType)\n\t\t\t}\n\t\t\tm.Stage = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Stage |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Fighters\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Fighters = append(m.Fighters, &FighterInfo{})\n\t\t\tif err := m.Fighters[len(m.Fighters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GameOver) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GameOver: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GameOver: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Winner\", wireType)\n\t\t\t}\n\t\t\tm.Winner = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Winner |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Time\", wireType)\n\t\t\t}\n\t\t\tm.Time = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Time |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stage\", wireType)\n\t\t\t}\n\t\t\tm.Stage = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Stage |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kill\", wireType)\n\t\t\t}\n\t\t\tm.Kill = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Kill |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Hit) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Hit: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Hit: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BulletId\", wireType)\n\t\t\t}\n\t\t\tm.BulletId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.BulletId |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetId\", wireType)\n\t\t\t}\n\t\t\tm.TargetId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.TargetId |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoseHP\", wireType)\n\t\t\t}\n\t\t\tm.LoseHP = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.LoseHP |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AddHP) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AddHP: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AddHP: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Add\", wireType)\n\t\t\t}\n\t\t\tm.Add = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Add |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tm.Id = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Id |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Dead) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Dead: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Dead: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tm.Id = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Id |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EnemyId\", wireType)\n\t\t\t}\n\t\t\tm.EnemyId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.EnemyId |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AddEntity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AddEntity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AddEntity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tm.Id = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Id |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pos\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pos == nil {\n\t\t\t\tm.Pos = &FVector{}\n\t\t\t}\n\t\t\tif err := m.Pos.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Vel\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Vel == nil {\n\t\t\t\tm.Vel = &FVector{}\n\t\t\t}\n\t\t\tif err := m.Vel.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Etype\", wireType)\n\t\t\t}\n\t\t\tm.Etype = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Etype |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RemoveEntity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RemoveEntity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RemoveEntity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tm.Id = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Id |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Etype\", wireType)\n\t\t\t}\n\t\t\tm.Etype = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Etype |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGamemsg(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGamemsg(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGamemsg\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\t\treturn iNdEx, nil\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGamemsg\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\tiNdEx += length\n\t\t\tif iNdEx < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGamemsg\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 3:\n\t\t\tfor {\n\t\t\t\tvar innerWire uint64\n\t\t\t\tvar start int = iNdEx\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn 0, ErrIntOverflowGamemsg\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tinnerWire |= (uint64(b) & 0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinnerWireType := int(innerWire & 0x7)\n\t\t\t\tif innerWireType == 4 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tnext, err := skipGamemsg(dAtA[start:])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\tiNdEx = start + next\n\t\t\t\tif iNdEx < 0 {\n\t\t\t\t\treturn 0, ErrInvalidLengthGamemsg\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 4:\n\t\t\treturn iNdEx, nil\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\t\treturn iNdEx, nil\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t}\n\tpanic(\"unreachable\")\n}\n\nvar (\n\tErrInvalidLengthGamemsg = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGamemsg   = fmt.Errorf(\"proto: integer overflow\")\n)\n"
  },
  {
    "path": "server/src/gameproto/go.mod",
    "content": "module gameproto\n\ngo 1.13\n\nrequire (\n\tgithub.com/AsynkronIT/protoactor-go v0.0.0-20200317173033-c483abfa40e2\n\tgithub.com/gogo/protobuf v1.3.1\n)\n"
  },
  {
    "path": "server/src/gameproto/go.sum",
    "content": "cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.36.0/go.mod h1:RUoy9p/M4ge0HzT8L+SDZ8jg+Q6fth0CiBuhFJpSV40=\ncloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=\ncloud.google.com/go v0.41.0/go.mod h1:OauMR7DV8fzvZIl2qg6rkaIhD/vmgk4iwEw/h6ercmg=\ncloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=\ncloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=\ncloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=\ncloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=\ncloud.google.com/go v0.48.0/go.mod h1:gGOnoa/XMQYHAscREBlbdHduGchEaP9N0//OXdrPI/M=\ncloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=\ncloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=\ncloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=\ncloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=\ncollectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE=\ndmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU=\ndmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=\ndmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU=\ndmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4=\ndmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU=\ngit.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=\ngithub.com/AsynkronIT/goconsole v0.0.0-20160504192649-bfa12eebf716/go.mod h1:2wH9LwjNrSqVmCIi35aqCJ0OGTE4DZ53LCRaGQESBp8=\ngithub.com/AsynkronIT/gonet v0.0.0-20161127091928-0553637be225/go.mod h1:RwIiSK8AJBCPP7hBBfXD1iferErYAmGbqv/Lu84ZFIA=\ngithub.com/AsynkronIT/protoactor-go v0.0.0-20200317173033-c483abfa40e2 h1:UTgOl+i/Y/91Si6EZeWLGbw5qoOw/gG918VKe6eqUm4=\ngithub.com/AsynkronIT/protoactor-go v0.0.0-20200317173033-c483abfa40e2/go.mod h1:oA0usvSnxPdbRUKVDvMBUqFyWQdVes7Xfcg5QSLE87A=\ngithub.com/Azure/azure-sdk-for-go v16.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=\ngithub.com/Azure/azure-sdk-for-go v31.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=\ngithub.com/Azure/azure-sdk-for-go v36.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=\ngithub.com/Azure/go-autorest v10.7.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest v10.15.3+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest v11.1.2+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest v13.3.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=\ngithub.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=\ngithub.com/Azure/go-autorest/autorest v0.9.2/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=\ngithub.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=\ngithub.com/Azure/go-autorest/autorest/adal v0.6.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=\ngithub.com/Azure/go-autorest/autorest/adal v0.7.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=\ngithub.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=\ngithub.com/Azure/go-autorest/autorest/azure/auth v0.4.0/go.mod h1:Oo5cRhLvZteXzI2itUm5ziqsoIxRkzrt3t61FeZaS18=\ngithub.com/Azure/go-autorest/autorest/azure/cli v0.3.0/go.mod h1:rNYMNAefZMRowqCV0cVhr/YDW5dD7afFq9nXAXL4ykE=\ngithub.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=\ngithub.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g=\ngithub.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=\ngithub.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=\ngithub.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM=\ngithub.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc=\ngithub.com/Azure/go-autorest/autorest/to v0.3.0/go.mod h1:MgwOyqaIuKdG4TL/2ywSsIWKAfJfgHDo8ObuUk3t5sA=\ngithub.com/Azure/go-autorest/autorest/validation v0.2.0/go.mod h1:3EEqHnBxQGHXRYq3HT1WyXAvT7LLY3tl70hw6tQIbjI=\ngithub.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=\ngithub.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk=\ngithub.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=\ngithub.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=\ngithub.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=\ngithub.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=\ngithub.com/DataDog/zstd v1.3.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=\ngithub.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=\ngithub.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=\ngithub.com/Microsoft/go-winio v0.4.3/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=\ngithub.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=\ngithub.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=\ngithub.com/NYTimes/gziphandler v1.0.1/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=\ngithub.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=\ngithub.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=\ngithub.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=\ngithub.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=\ngithub.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=\ngithub.com/Shopify/sarama v1.21.0/go.mod h1:yuqtN/pe8cXRWG5zPaO7hCfNJp5MwmkoJEoLjkm5tCQ=\ngithub.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=\ngithub.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=\ngithub.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=\ngithub.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=\ngithub.com/Workiva/go-datastructures v1.0.50 h1:slDmfW6KCHcC7U+LP3DDBbm4fqTwZGn1beOFPfGaLvo=\ngithub.com/Workiva/go-datastructures v1.0.50/go.mod h1:Z+F2Rca0qCsVYDS8z7bAGm8f3UkzuWYS/oBZz5a7VVA=\ngithub.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af/go.mod h1:5Jv4cbFiHJMsVxt52+i0Ha45fjshj6wxYr1r19tB9bw=\ngithub.com/aclements/go-gg v0.0.0-20170323211221-abd1f791f5ee/go.mod h1:55qNq4vcpkIuHowELi5C8e+1yUHtoLoOUR9QU5j7Tes=\ngithub.com/aclements/go-moremath v0.0.0-20190506201756-286cc0be6f75/go.mod h1:idZL3yvz4kzx1dsBOAC+oYv6L92P1oFEhUXUB1A/lwQ=\ngithub.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=\ngithub.com/ajg/form v0.0.0-20160822230020-523a5da1a92f/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=\ngithub.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=\ngithub.com/ajstarks/deck v0.0.0-20190526003814-edf08d731d5a/go.mod h1:j3f/59diR4DorW5A78eDYvRkdrkh+nps4p5LA1Tl05U=\ngithub.com/ajstarks/svgo v0.0.0-20181006003313-6ce6a3bcf6cd/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=\ngithub.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs=\ngithub.com/alecthomas/kingpin v2.2.6+incompatible/go.mod h1:59OFYbFVLKQKq+mqrL6Rw5bR0c3ACQaawgXx0QYndlE=\ngithub.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=\ngithub.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=\ngithub.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=\ngithub.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=\ngithub.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=\ngithub.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c=\ngithub.com/apache/arrow/go/arrow v0.0.0-20190426170622-338c62a2a205/go.mod h1:W8yIftLTH1FLJvxuZc4tFnIlZ2tWg7RCoJR1HcETAso=\ngithub.com/apache/arrow/go/arrow v0.0.0-20190626211233-e980b2024a28/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0=\ngithub.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=\ngithub.com/apex/log v1.1.0/go.mod h1:yA770aXIDQrhVOIGurT/pVdfCpSq1GQV/auzMN5fzvY=\ngithub.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy8kCu4PNA+aP7WUV72eXWJeP9/r3/K9aLE=\ngithub.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=\ngithub.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=\ngithub.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=\ngithub.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=\ngithub.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg=\ngithub.com/armon/go-metrics v0.3.0/go.mod h1:zXjbSimjXTd7vOpY8B0/2LpvNvDoXBuplAD+gJD3GYs=\ngithub.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=\ngithub.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=\ngithub.com/aws/aws-sdk-go v1.15.24/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0=\ngithub.com/aws/aws-sdk-go v1.15.64/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM=\ngithub.com/aws/aws-sdk-go v1.20.9/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=\ngithub.com/aws/aws-sdk-go v1.25.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=\ngithub.com/aws/aws-sdk-go v1.25.36/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=\ngithub.com/aws/aws-sdk-go-v2 v0.9.0/go.mod h1:sa1GePZ/LfBGI4dSq30f6uR4Tthll8axxtEPvlpXZ8U=\ngithub.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I=\ngithub.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=\ngithub.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=\ngithub.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=\ngithub.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=\ngithub.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU=\ngithub.com/blakesmith/ar v0.0.0-20150311145944-8bd4349a67f2/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI=\ngithub.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=\ngithub.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c=\ngithub.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=\ngithub.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=\ngithub.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g=\ngithub.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA=\ngithub.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34=\ngithub.com/caarlos0/ctrlc v1.0.0/go.mod h1:CdXpj4rmq0q/1Eb44M9zi2nKB0QraNKuRGYGrrHhcQw=\ngithub.com/cactus/go-statsd-client/statsd v0.0.0-20190501063751-9a7692639588/go.mod h1:3/sdo8I67TaOslRGJ6FqQC/ynu+wg7H6IE4WYtr51hk=\ngithub.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E=\ngithub.com/campoy/unique v0.0.0-20180121183637-88950e537e7e/go.mod h1:9IOqJGCPMSc6E5ydlp5NIonxObaeu/Iub/X03EKPVYo=\ngithub.com/casbin/casbin v1.8.3/go.mod h1:z8uPsfBJGUsnkagrt3G8QvjgTKFMBJ32UP8HpZllfog=\ngithub.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=\ngithub.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=\ngithub.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=\ngithub.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM=\ngithub.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=\ngithub.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ=\ngithub.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=\ngithub.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag=\ngithub.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=\ngithub.com/clbanning/x2j v0.0.0-20180326210544-5e605d46809c/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=\ngithub.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=\ngithub.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=\ngithub.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=\ngithub.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=\ngithub.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=\ngithub.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM=\ngithub.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0=\ngithub.com/coredns/coredns v1.1.2/go.mod h1:zASH/MVDgR6XZTbxvOnsZfffS+31vg6Ackf/wo1+AM0=\ngithub.com/coredns/coredns v1.6.5/go.mod h1:BvAJtEvf7XOlRB+4kj03JSkL0J1ntukFHiEdHWJA3xU=\ngithub.com/coredns/federation v0.0.0-20190818181423-e032b096babe/go.mod h1:MoqTEFX8GlnKkyq8eBCF94VzkNAOgjdlCJ+Pz/oCLPk=\ngithub.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=\ngithub.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=\ngithub.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=\ngithub.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=\ngithub.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=\ngithub.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=\ngithub.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=\ngithub.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20190212144455-93d5ec2c7f76/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/go-systemd v0.0.0-20190620071333-e64a0ec8b42a/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=\ngithub.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=\ngithub.com/couchbase/gocb v1.5.2/go.mod h1:AtRhXLpjgHmkRgG3e0K9t41qnWFonb8iohS/u/TZzxM=\ngithub.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=\ngithub.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=\ngithub.com/cznic/cc v0.0.0-20181122101902-d673e9b70d4d/go.mod h1:m3fD/V+XTB35Kh9zw6dzjMY+We0Q7PMf6LLIC4vuG9k=\ngithub.com/cznic/fileutil v0.0.0-20181122101858-4d67cfea8c87/go.mod h1:8S58EK26zhXSxzv7NQFpnliaOQsmDUxvoQO3rt154Vg=\ngithub.com/cznic/golex v0.0.0-20181122101858-9c343928389c/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc=\ngithub.com/cznic/internal v0.0.0-20181122101858-3279554c546e/go.mod h1:olo7eAdKwJdXxb55TKGLiJ6xt1H0/tiiRCWKVLmtjY4=\ngithub.com/cznic/ir v0.0.0-20181122101859-da7ba2ecce8b/go.mod h1:bctvsSxTD8Lpaj5RRQ0OrAAu4+0mD4KognDQItBNMn0=\ngithub.com/cznic/lex v0.0.0-20181122101858-ce0fb5e9bb1b/go.mod h1:LcYbbl1tn/c31gGxe2EOWyzr7EaBcdQOoIVGvJMc7Dc=\ngithub.com/cznic/lexer v0.0.0-20181122101858-e884d4bd112e/go.mod h1:YNGh5qsZlhFHDfWBp/3DrJ37Uy4pRqlwxtL+LS7a/Qw=\ngithub.com/cznic/mathutil v0.0.0-20181122101859-297441e03548/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM=\ngithub.com/cznic/strutil v0.0.0-20181122101858-275e90344537/go.mod h1:AHHPPPXTw0h6pVabbcbyGRK1DckRn7r/STdZEeIDzZc=\ngithub.com/cznic/xc v0.0.0-20181122101856-45b06973881e/go.mod h1:3oFoiOvCDBYH+swwf5+k/woVmWy7h1Fcyu8Qig/jjX0=\ngithub.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg=\ngithub.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-xdr v0.0.0-20161123171359-e6a2ba005892/go.mod h1:CTDl0pzVzE5DEzZhPfvhY/9sPFMQIxaJ9VAMs9AagrE=\ngithub.com/denverdino/aliyungo v0.0.0-20170926055100-d3308649c661/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=\ngithub.com/denverdino/aliyungo v0.0.0-20191112021521-0e9f4c697da3/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=\ngithub.com/dgrijalva/jwt-go v0.0.0-20160705203006-01aeca54ebda/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=\ngithub.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=\ngithub.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ=\ngithub.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=\ngithub.com/digitalocean/godo v1.1.1/go.mod h1:h6faOIcZ8lWIwNQ+DN7b3CgX4Kwby5T+nbpNqkUIozU=\ngithub.com/digitalocean/godo v1.10.0/go.mod h1:h6faOIcZ8lWIwNQ+DN7b3CgX4Kwby5T+nbpNqkUIozU=\ngithub.com/digitalocean/godo v1.26.0/go.mod h1:iJnN9rVu6K5LioLxLimlq0uRI+y/eAQjROUmeU/r0hY=\ngithub.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8=\ngithub.com/disintegration/gift v1.2.0/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI=\ngithub.com/djherbis/buffer v1.0.0/go.mod h1:VwN8VdFkMY0DCALdY8o00d3IZ6Amz/UNVMWcSaJT44o=\ngithub.com/djherbis/nio v2.0.3+incompatible/go.mod h1:v74owXPROGWsr1y28T13rlXf5Hn/bWJ1bbX8M+BqyPo=\ngithub.com/dnaeon/go-vcr v0.0.0-20180814043457-aafff18a5cc2/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=\ngithub.com/dnstap/golang-dnstap v0.0.0-20170829151710-2cf77a2b5e11/go.mod h1:s1PfVYYVmTMgCSPtho4LKBDecEHJWtiVDPNv78Z985U=\ngithub.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=\ngithub.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=\ngithub.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=\ngithub.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=\ngithub.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=\ngithub.com/dustin/go-humanize v0.0.0-20180713052910-9f541cc9db5d/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=\ngithub.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=\ngithub.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=\ngithub.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=\ngithub.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=\ngithub.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=\ngithub.com/elazarl/go-bindata-assetfs v0.0.0-20160803192304-e1a2a7ec64b0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=\ngithub.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=\ngithub.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=\ngithub.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=\ngithub.com/emirpasic/gods v1.9.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=\ngithub.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg=\ngithub.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=\ngithub.com/envoyproxy/go-control-plane v0.8.0/go.mod h1:GSSbY9P1neVhdY7G4wu+IK1rk/dqhiCC/4ExuWJZVuk=\ngithub.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=\ngithub.com/envoyproxy/go-control-plane v0.9.1/go.mod h1:G1fbsNGAFpC1aaERrShZQVdUV2ZuZuv6FCl2v9JNSxQ=\ngithub.com/envoyproxy/protoc-gen-validate v0.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=\ngithub.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=\ngithub.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=\ngithub.com/evanphx/json-patch v4.1.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=\ngithub.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=\ngithub.com/farsightsec/golang-framestream v0.0.0-20181102145529-8a0cb8ba8710/go.mod h1:eNde4IQyEiA5br02AouhEHCu3p3UzrCdFR4LuQHklMI=\ngithub.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=\ngithub.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=\ngithub.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=\ngithub.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=\ngithub.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=\ngithub.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=\ngithub.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=\ngithub.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=\ngithub.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=\ngithub.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=\ngithub.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=\ngithub.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM=\ngithub.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=\ngithub.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=\ngithub.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M=\ngithub.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ=\ngithub.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=\ngithub.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=\ngithub.com/go-ini/ini v1.51.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=\ngithub.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=\ngithub.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=\ngithub.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc=\ngithub.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=\ngithub.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=\ngithub.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=\ngithub.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8=\ngithub.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8=\ngithub.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=\ngithub.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=\ngithub.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=\ngithub.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=\ngithub.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=\ngithub.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=\ngithub.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=\ngithub.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=\ngithub.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=\ngithub.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=\ngithub.com/gobuffalo/attrs v0.0.0-20190219185331-f338c9388485/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=\ngithub.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=\ngithub.com/gobuffalo/attrs v0.1.0/go.mod h1:fmNpaWyHM0tRm8gCZWKx8yY9fvaNLo2PyzBNSrBZ5Hw=\ngithub.com/gobuffalo/buffalo v0.12.8-0.20181004233540-fac9bb505aa8/go.mod h1:sLyT7/dceRXJUxSsE813JTQtA3Eb1vjxWfo/N//vXIY=\ngithub.com/gobuffalo/buffalo v0.13.0/go.mod h1:Mjn1Ba9wpIbpbrD+lIDMy99pQ0H0LiddMIIDGse7qT4=\ngithub.com/gobuffalo/buffalo v0.13.1/go.mod h1:K9c22KLfDz7obgxvHv1amvJtCQEZNiox9+q6FDJ1Zcs=\ngithub.com/gobuffalo/buffalo v0.13.2/go.mod h1:vA8I4Dwcfkx7RAzIRHVDZxfS3QJR7muiOjX4r8P2/GE=\ngithub.com/gobuffalo/buffalo v0.13.4/go.mod h1:y2jbKkO0k49OrNIOAkbWQiPBqxAFpHn5OKnkc7BDh+I=\ngithub.com/gobuffalo/buffalo v0.13.5/go.mod h1:hPcP12TkFSZmT3gUVHZ24KRhTX3deSgu6QSgn0nbWf4=\ngithub.com/gobuffalo/buffalo v0.13.6/go.mod h1:/Pm0MPLusPhWDayjRD+/vKYnelScIiv0sX9YYek0wpg=\ngithub.com/gobuffalo/buffalo v0.13.7/go.mod h1:3gQwZhI8DSbqmDqlFh7kfwuv/wd40rqdVxXtFWlCQHw=\ngithub.com/gobuffalo/buffalo v0.13.9/go.mod h1:vIItiQkTHq46D1p+bw8mFc5w3BwrtJhMvYjSIYK3yjE=\ngithub.com/gobuffalo/buffalo v0.13.12/go.mod h1:Y9e0p0cdo/eI+lHm7EFzlkc9YzjwGo5QeDj+FbsyqVA=\ngithub.com/gobuffalo/buffalo v0.13.13/go.mod h1:WAL36xBN8OkU71lNjuYv6llmgl0o8twjlY+j7oGUmYw=\ngithub.com/gobuffalo/buffalo v0.14.0/go.mod h1:A9JI3juErlXNrPBeJ/0Pdky9Wz+GffEg7ZN0d1B5h48=\ngithub.com/gobuffalo/buffalo v0.14.2/go.mod h1:VNMTzddg7bMnkVxCUXzqTS4PvUo6cDOs/imtG8Cnt/k=\ngithub.com/gobuffalo/buffalo v0.14.3/go.mod h1:3O9vB/a4UNb16TevehTvDCaPnb98NWvYz0msJQ6ZlVA=\ngithub.com/gobuffalo/buffalo v0.14.5/go.mod h1:RWK6evR4hY4nRVfw9xie9V/LYK3j0U9wU2oKgQUFZ88=\ngithub.com/gobuffalo/buffalo v0.14.6/go.mod h1:71Un+T2JGgwXLjBqYFdGSooz/OUjw15BJM0nbbcAM0o=\ngithub.com/gobuffalo/buffalo-docker v1.0.5/go.mod h1:NZ3+21WIdqOUlOlM2onCt7cwojYp4Qwlsngoolw8zlE=\ngithub.com/gobuffalo/buffalo-docker v1.0.6/go.mod h1:UlqKHJD8CQvyIb+pFq+m/JQW2w2mXuhxsaKaTj1X1XI=\ngithub.com/gobuffalo/buffalo-docker v1.0.7/go.mod h1:BdB8AhcmjwR6Lo3rDPMzyh/+eNjYnZ1TAO0eZeLkhig=\ngithub.com/gobuffalo/buffalo-plugins v1.0.2/go.mod h1:pOp/uF7X3IShFHyobahTkTLZaeUXwb0GrUTb9ngJWTs=\ngithub.com/gobuffalo/buffalo-plugins v1.0.4/go.mod h1:pWS1vjtQ6uD17MVFWf7i3zfThrEKWlI5+PYLw/NaDB4=\ngithub.com/gobuffalo/buffalo-plugins v1.4.3/go.mod h1:uCzTY0woez4nDMdQjkcOYKanngeUVRO2HZi7ezmAjWY=\ngithub.com/gobuffalo/buffalo-plugins v1.5.1/go.mod h1:jbmwSZK5+PiAP9cC09VQOrGMZFCa/P0UMlIS3O12r5w=\ngithub.com/gobuffalo/buffalo-plugins v1.6.1/go.mod h1:/XZt7UuuDnx5P4v3cStK0+XoYiNOA2f0wDIsm1oLJQA=\ngithub.com/gobuffalo/buffalo-plugins v1.6.4/go.mod h1:/+N1aophkA2jZ1ifB2O3Y9yGwu6gKOVMtUmJnbg+OZI=\ngithub.com/gobuffalo/buffalo-plugins v1.6.5/go.mod h1:0HVkbgrVs/MnPZ/FOseDMVanCTm2RNcdM0PuXcL1NNI=\ngithub.com/gobuffalo/buffalo-plugins v1.6.6/go.mod h1:hSWAEkJyL9RENJlmanMivgnNkrQ9RC4xJARz8dQryi0=\ngithub.com/gobuffalo/buffalo-plugins v1.6.7/go.mod h1:ZGZRkzz2PiKWHs0z7QsPBOTo2EpcGRArMEym6ghKYgk=\ngithub.com/gobuffalo/buffalo-plugins v1.6.9/go.mod h1:yYlYTrPdMCz+6/+UaXg5Jm4gN3xhsvsQ2ygVatZV5vw=\ngithub.com/gobuffalo/buffalo-plugins v1.6.10/go.mod h1:HxzPZjAEzh9H0gnHelObxxrut9O+1dxydf7U93SYsc8=\ngithub.com/gobuffalo/buffalo-plugins v1.6.11/go.mod h1:eAA6xJIL8OuynJZ8amXjRmHND6YiusVAaJdHDN1Lu8Q=\ngithub.com/gobuffalo/buffalo-plugins v1.7.2/go.mod h1:vEbx30cLFeeZ48gBA/rkhbqC2M/2JpsKs5CoESWhkPw=\ngithub.com/gobuffalo/buffalo-plugins v1.8.1/go.mod h1:vu71J3fD4b7KKywJQ1tyaJGtahG837Cj6kgbxX0e4UI=\ngithub.com/gobuffalo/buffalo-plugins v1.8.2/go.mod h1:9te6/VjEQ7pKp7lXlDIMqzxgGpjlKoAcAANdCgoR960=\ngithub.com/gobuffalo/buffalo-plugins v1.8.3/go.mod h1:IAWq6vjZJVXebIq2qGTLOdlXzmpyTZ5iJG5b59fza5U=\ngithub.com/gobuffalo/buffalo-plugins v1.9.3/go.mod h1:BNRunDThMZKjqx6R+n14Rk3sRSOWgbMuzCKXLqbd7m0=\ngithub.com/gobuffalo/buffalo-plugins v1.9.4/go.mod h1:grCV6DGsQlVzQwk6XdgcL3ZPgLm9BVxlBmXPMF8oBHI=\ngithub.com/gobuffalo/buffalo-plugins v1.10.0/go.mod h1:4osg8d9s60txLuGwXnqH+RCjPHj9K466cDFRl3PErHI=\ngithub.com/gobuffalo/buffalo-plugins v1.11.0/go.mod h1:rtIvAYRjYibgmWhnjKmo7OadtnxuMG5ZQLr25ozAzjg=\ngithub.com/gobuffalo/buffalo-plugins v1.12.0/go.mod h1:kw4Mj2vQXqe4X5TI36PEQgswbL30heGQwJEeDKd1v+4=\ngithub.com/gobuffalo/buffalo-plugins v1.13.0/go.mod h1:Y9nH2VwHVkeKhmdM380ulNXmhhD5On81nRVeD+WlDTQ=\ngithub.com/gobuffalo/buffalo-plugins v1.13.1/go.mod h1:VcvhrgWcZLhOp8JPLckHBDtv05KepY/MxHsT2+06xX4=\ngithub.com/gobuffalo/buffalo-plugins v1.14.0/go.mod h1:r2lykSXBT79c3T5JK1ouivVDrHvvCZUdZBmn+lPMHU8=\ngithub.com/gobuffalo/buffalo-plugins v1.14.1/go.mod h1:9BRBvXuKxR0m4YttVFRtuUcAP9Rs97mGq6OleyDbIuo=\ngithub.com/gobuffalo/buffalo-pop v1.0.5/go.mod h1:Fw/LfFDnSmB/vvQXPvcXEjzP98Tc+AudyNWUBWKCwQ8=\ngithub.com/gobuffalo/buffalo-pop v1.1.2/go.mod h1:czNLXcYbg5/fjr+uht0NyjZaQ0V2W23H1jzyORgCzQ4=\ngithub.com/gobuffalo/buffalo-pop v1.1.5/go.mod h1:H01JIg42XwOHS4gRMhSeDZqBovNVlfBUsVXckU617s4=\ngithub.com/gobuffalo/buffalo-pop v1.1.8/go.mod h1:1uaxOFzzVud/zR5f1OEBr21tMVLQS3OZpQ1A5cr0svE=\ngithub.com/gobuffalo/buffalo-pop v1.1.13/go.mod h1:47GQoBjCMcl5Pw40iCWHQYJvd0HsT9kdaOPWgnzHzk4=\ngithub.com/gobuffalo/buffalo-pop v1.1.14/go.mod h1:sAMh6+s7wytCn5cHqZIuItJbAqzvs6M7FemLexl+pwc=\ngithub.com/gobuffalo/buffalo-pop v1.1.15/go.mod h1:vnvvxhbEFAaEbac9E2ZPjsBeL7WHkma2UyKNVA4y9Wo=\ngithub.com/gobuffalo/buffalo-pop v1.2.1/go.mod h1:SHqojN0bVzaAzCbQDdWtsib202FDIxqwmCO8VDdweF4=\ngithub.com/gobuffalo/buffalo-pop v1.3.0/go.mod h1:P0PhA225dRGyv0WkgYjYKqgoxPdDPDFZDvHj60AGF5w=\ngithub.com/gobuffalo/buffalo-pop v1.6.0/go.mod h1:vrEVNOBKe042HjSNMj72J4FgER/VG6lt4xW6WMpTdlY=\ngithub.com/gobuffalo/buffalo-pop v1.7.0/go.mod h1:UB5HHeFucJG7esTPUPjinBaJTEpVoREJHfSJJELnyeI=\ngithub.com/gobuffalo/buffalo-pop v1.9.0/go.mod h1:MfrkBg0iN9+RdlxdHHAqqGFAC/iyCfTiKqH7Jvt+vhE=\ngithub.com/gobuffalo/buffalo-pop v1.10.0/go.mod h1:C3/cFXB8Zd38XiGgHFdE7dw3Wu9MOKeD7bfELQicGPI=\ngithub.com/gobuffalo/buffalo-pop v1.12.0/go.mod h1:pO2ONSJOCjyroGp4BwVHfMkfd7sLg1U9BvMJqRy6Otk=\ngithub.com/gobuffalo/buffalo-pop v1.13.0/go.mod h1:h+zfyXCUFwihFqz6jmo9xsdsZ1Tm9n7knYpQjW0gv18=\ngithub.com/gobuffalo/clara v0.4.1/go.mod h1:3QgAPqYgPqAzhfGbNLlp4UztaZRi2SOg+ZrZwaq9L94=\ngithub.com/gobuffalo/clara v0.6.0/go.mod h1:RKZxkcH80pLykRi2hLkoxGMxA8T06Dc9fN/pFvutMFY=\ngithub.com/gobuffalo/depgen v0.0.0-20190219190223-ba8c93fa0c2c/go.mod h1:CE/HUV4vDCXtJayRf6WoMWgezb1yH4QHg8GNK8FL0JI=\ngithub.com/gobuffalo/depgen v0.0.0-20190315122043-8442b3fa16db/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=\ngithub.com/gobuffalo/depgen v0.0.0-20190315124901-e02f65b90669/go.mod h1:yTQe8xo5pGIDOApkeO95DjePS4ZOSSSx+ItkqJHxUG4=\ngithub.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=\ngithub.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg=\ngithub.com/gobuffalo/depgen v0.1.1/go.mod h1:65EOv3g7CMe4kc8J1Ds+l2bjcwrWKGXkE4/vpRRLPWY=\ngithub.com/gobuffalo/depgen v0.2.0/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=\ngithub.com/gobuffalo/envy v1.6.4/go.mod h1:Abh+Jfw475/NWtYMEt+hnJWRiC8INKWibIMyNt1w2Mc=\ngithub.com/gobuffalo/envy v1.6.5/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.6/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.7/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.8/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.9/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ=\ngithub.com/gobuffalo/envy v1.6.10/go.mod h1:X0CFllQjTV5ogsnUrg+Oks2yTI+PU2dGYBJOEI2D1Uo=\ngithub.com/gobuffalo/envy v1.6.11/go.mod h1:Fiq52W7nrHGDggFPhn2ZCcHw4u/rqXkqo+i7FB6EAcg=\ngithub.com/gobuffalo/envy v1.6.12/go.mod h1:qJNrJhKkZpEW0glh5xP2syQHH5kgdmgsKss2Kk8PTP0=\ngithub.com/gobuffalo/envy v1.6.13/go.mod h1:w9DJppgl51JwUFWWd/M/6/otrPtWV3WYMa+NNLunqKA=\ngithub.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI=\ngithub.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI=\ngithub.com/gobuffalo/events v1.0.3/go.mod h1:Txo8WmqScapa7zimEQIwgiJBvMECMe9gJjsKNPN3uZw=\ngithub.com/gobuffalo/events v1.0.7/go.mod h1:z8txf6H9jWhQ5Scr7YPLWg/cgXBRj8Q4uYI+rsVCCSQ=\ngithub.com/gobuffalo/events v1.0.8/go.mod h1:A5KyqT1sA+3GJiBE4QKZibse9mtOcI9nw8gGrDdqYGs=\ngithub.com/gobuffalo/events v1.1.1/go.mod h1:Ia9OgHMco9pEhJaPrPQJ4u4+IZlkxYVco2VbJ2XgnAE=\ngithub.com/gobuffalo/events v1.1.3/go.mod h1:9yPGWYv11GENtzrIRApwQRMYSbUgCsZ1w6R503fCfrk=\ngithub.com/gobuffalo/events v1.1.4/go.mod h1:09/YRRgZHEOts5Isov+g9X2xajxdvOAcUuAHIX/O//A=\ngithub.com/gobuffalo/events v1.1.5/go.mod h1:3YUSzgHfYctSjEjLCWbkXP6djH2M+MLaVRzb4ymbAK0=\ngithub.com/gobuffalo/events v1.1.6/go.mod h1:H/3ZB9BA+WorMb/0F79UvU6u0Cyo2hU97WA51bG2ONY=\ngithub.com/gobuffalo/events v1.1.7/go.mod h1:6fGqxH2ing5XMb3EYRq9LEkVlyPGs4oO/eLzh+S8CxY=\ngithub.com/gobuffalo/events v1.1.8/go.mod h1:UFy+W6X6VbCWS8k2iT81HYX65dMtiuVycMy04cplt/8=\ngithub.com/gobuffalo/events v1.1.9/go.mod h1:/0nf8lMtP5TkgNbzYxR6Bl4GzBy5s5TebgNTdRfRbPM=\ngithub.com/gobuffalo/events v1.2.0/go.mod h1:pxvpvsKXKZNPtHuIxUV3K+g+KP5o4forzaeFj++bh68=\ngithub.com/gobuffalo/events v1.3.1/go.mod h1:9JOkQVoyRtailYVE/JJ2ZQ/6i4gTjM5t2HsZK4C1cSA=\ngithub.com/gobuffalo/fizz v1.0.12/go.mod h1:C0sltPxpYK8Ftvf64kbsQa2yiCZY4RZviurNxXdAKwc=\ngithub.com/gobuffalo/fizz v1.0.15/go.mod h1:EI3mEpjImuji6Bwu++N2uXhljQwOhwtimZQJ89zwyF4=\ngithub.com/gobuffalo/fizz v1.0.16/go.mod h1:EI3mEpjImuji6Bwu++N2uXhljQwOhwtimZQJ89zwyF4=\ngithub.com/gobuffalo/fizz v1.1.2/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc=\ngithub.com/gobuffalo/fizz v1.1.3/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc=\ngithub.com/gobuffalo/fizz v1.3.0/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc=\ngithub.com/gobuffalo/fizz v1.5.0/go.mod h1:Uu3ch14M4S7LDU7LAP1GQ+KNCRmZYd05Gqasc96XLa0=\ngithub.com/gobuffalo/fizz v1.6.0/go.mod h1:V4V6EA8eYu/L43y6gZj7mjmPkigl9m+Eu3Pe+SWQRRg=\ngithub.com/gobuffalo/fizz v1.6.1/go.mod h1:V4V6EA8eYu/L43y6gZj7mjmPkigl9m+Eu3Pe+SWQRRg=\ngithub.com/gobuffalo/fizz v1.8.0/go.mod h1:2LqJOOGUp1JpN9m54ac5jMQ1MpbNvSVbFi9BY+AEXOo=\ngithub.com/gobuffalo/fizz v1.9.0/go.mod h1:2LqJOOGUp1JpN9m54ac5jMQ1MpbNvSVbFi9BY+AEXOo=\ngithub.com/gobuffalo/flect v0.0.0-20180907193754-dc14d8acaf9f/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181002182613-4571df4b1daf/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181007231023-ae7ed6bfe683/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181018182602-fd24a256709f/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181019110701-3d6f0b585514/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181024204909-8f6be1a8c6c2/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181104133451-1f6e9779237a/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181108195648-8fe1b44cfe32/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA=\ngithub.com/gobuffalo/flect v0.0.0-20181109221320-179d36177b5b/go.mod h1:0HvNbHdfh+WOvDSIASqJOSxTOWSxCCUF++k/Y53v9rI=\ngithub.com/gobuffalo/flect v0.0.0-20181114183036-47375f6d8328/go.mod h1:0HvNbHdfh+WOvDSIASqJOSxTOWSxCCUF++k/Y53v9rI=\ngithub.com/gobuffalo/flect v0.0.0-20181210151238-24a2b68e0316/go.mod h1:en58vff74S9b99Eg42Dr+/9yPu437QjlNsO/hBYPuOk=\ngithub.com/gobuffalo/flect v0.0.0-20190104192022-4af577e09bf2/go.mod h1:en58vff74S9b99Eg42Dr+/9yPu437QjlNsO/hBYPuOk=\ngithub.com/gobuffalo/flect v0.0.0-20190117212819-a62e61d96794/go.mod h1:397QT6v05LkZkn07oJXXT6y9FCfwC8Pug0WA2/2mE9k=\ngithub.com/gobuffalo/flect v0.0.0-20190205211104-b2cb381e56e0/go.mod h1:397QT6v05LkZkn07oJXXT6y9FCfwC8Pug0WA2/2mE9k=\ngithub.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs=\ngithub.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI=\ngithub.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI=\ngithub.com/gobuffalo/flect v0.1.5/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80=\ngithub.com/gobuffalo/genny v0.0.0-20180924032338-7af3a40f2252/go.mod h1:tUTQOogrr7tAQnhajMSH6rv1BVev34H2sa1xNHMy94g=\ngithub.com/gobuffalo/genny v0.0.0-20181003150629-3786a0744c5d/go.mod h1:WAd8HmjMVrnkAZbmfgH5dLBUchsZfqzp/WS5sQz+uTM=\ngithub.com/gobuffalo/genny v0.0.0-20181005145118-318a41a134cc/go.mod h1:WAd8HmjMVrnkAZbmfgH5dLBUchsZfqzp/WS5sQz+uTM=\ngithub.com/gobuffalo/genny v0.0.0-20181007153042-b8de7d566757/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA=\ngithub.com/gobuffalo/genny v0.0.0-20181012161047-33e5f43d83a6/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA=\ngithub.com/gobuffalo/genny v0.0.0-20181017160347-90a774534246/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA=\ngithub.com/gobuffalo/genny v0.0.0-20181019144442-df0a36fdd146/go.mod h1:IyRrGrQb/sbHu/0z9i5mbpZroIsdxjCYfj+zFiFiWZQ=\ngithub.com/gobuffalo/genny v0.0.0-20181024195656-51392254bf53/go.mod h1:o9GEH5gn5sCKLVB5rHFC4tq40rQ3VRUzmx6WwmaqISE=\ngithub.com/gobuffalo/genny v0.0.0-20181025145300-af3f81d526b8/go.mod h1:uZ1fFYvdcP8mu0B/Ynarf6dsGvp7QFIpk/QACUuFUVI=\ngithub.com/gobuffalo/genny v0.0.0-20181027191429-94d6cfb5c7fc/go.mod h1:x7SkrQQBx204Y+O9EwRXeszLJDTaWN0GnEasxgLrQTA=\ngithub.com/gobuffalo/genny v0.0.0-20181027195209-3887b7171c4f/go.mod h1:JbKx8HSWICu5zyqWOa0dVV1pbbXOHusrSzQUprW6g+w=\ngithub.com/gobuffalo/genny v0.0.0-20181030163439-ed103521b8ec/go.mod h1:3Xm9z7/2oRxlB7PSPLxvadZ60/0UIek1YWmcC7QSaVs=\ngithub.com/gobuffalo/genny v0.0.0-20181106193839-7dcb0924caf1/go.mod h1:x61yHxvbDCgQ/7cOAbJCacZQuHgB0KMSzoYcw5debjU=\ngithub.com/gobuffalo/genny v0.0.0-20181107223128-f18346459dbe/go.mod h1:utQD3aKKEsdb03oR+Vi/6ztQb1j7pO10N3OBoowRcSU=\ngithub.com/gobuffalo/genny v0.0.0-20181109163038-9539921b620f/go.mod h1:118bnhJR2oviiji++mZj0IH/IaFBCzwkWHaI4OQq5hQ=\ngithub.com/gobuffalo/genny v0.0.0-20181110202416-7b7d8756a9e2/go.mod h1:118bnhJR2oviiji++mZj0IH/IaFBCzwkWHaI4OQq5hQ=\ngithub.com/gobuffalo/genny v0.0.0-20181111200257-599b33630ab4/go.mod h1:w+iD/cdtIpPDFax6LlUFuCdXFD0DLRUXsfp3IeT/Doc=\ngithub.com/gobuffalo/genny v0.0.0-20181114215459-0a4decd77f5d/go.mod h1:kN2KZ8VgXF9VIIOj/GM0Eo7YK+un4Q3tTreKOf0q1ng=\ngithub.com/gobuffalo/genny v0.0.0-20181119162812-e8ff4adce8bb/go.mod h1:BA9htSe4bZwBDJLe8CUkoqkypq3hn3+CkoHqVOW718E=\ngithub.com/gobuffalo/genny v0.0.0-20181127225641-2d959acc795b/go.mod h1:l54xLXNkteX/PdZ+HlgPk1qtcrgeOr3XUBBPDbH+7CQ=\ngithub.com/gobuffalo/genny v0.0.0-20181128191930-77e34f71ba2a/go.mod h1:FW/D9p7cEEOqxYA71/hnrkOWm62JZ5ZNxcNIVJEaWBU=\ngithub.com/gobuffalo/genny v0.0.0-20181203165245-fda8bcce96b1/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM=\ngithub.com/gobuffalo/genny v0.0.0-20181203201232-849d2c9534ea/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM=\ngithub.com/gobuffalo/genny v0.0.0-20181206121324-d6fb8a0dbe36/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM=\ngithub.com/gobuffalo/genny v0.0.0-20181207164119-84844398a37d/go.mod h1:y0ysCHGGQf2T3vOhCrGHheYN54Y/REj0ayd0Suf4C/8=\ngithub.com/gobuffalo/genny v0.0.0-20181211165820-e26c8466f14d/go.mod h1:sHnK+ZSU4e2feXP3PA29ouij6PUEiN+RCwECjCTB3yM=\ngithub.com/gobuffalo/genny v0.0.0-20190104222617-a71664fc38e7/go.mod h1:QPsQ1FnhEsiU8f+O0qKWXz2RE4TiDqLVChWkBuh1WaY=\ngithub.com/gobuffalo/genny v0.0.0-20190112155932-f31a84fcacf5/go.mod h1:CIaHCrSIuJ4il6ka3Hub4DR4adDrGoXGEEt2FbBxoIo=\ngithub.com/gobuffalo/genny v0.0.0-20190124191459-3310289fa4b4/go.mod h1:yIRqxhZV2sAzb+B3iPUMLauTRrYP8tJUlZ1zV9teKik=\ngithub.com/gobuffalo/genny v0.0.0-20190131150032-1045e97d19fb/go.mod h1:yIRqxhZV2sAzb+B3iPUMLauTRrYP8tJUlZ1zV9teKik=\ngithub.com/gobuffalo/genny v0.0.0-20190131190646-008a76242145/go.mod h1:NJvPZJxb9M4z790P6N2SMZKSUYpASpEvLuUWnHGKzb4=\ngithub.com/gobuffalo/genny v0.0.0-20190219203444-c95082806342/go.mod h1:3BLT+Vs94EEz3fKR8WWOkYpL6c1tdJcZUNCe3LZAnvQ=\ngithub.com/gobuffalo/genny v0.0.0-20190315121735-8b38fb089e88/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk=\ngithub.com/gobuffalo/genny v0.0.0-20190315124720-e16e52a93c79/go.mod h1:nKeefjbhYowo36ys9nG9VUvD9FRIS0p3BC2JFfcOucM=\ngithub.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk=\ngithub.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28=\ngithub.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo=\ngithub.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk=\ngithub.com/gobuffalo/genny v0.2.0/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk=\ngithub.com/gobuffalo/gitgen v0.0.0-20190219185555-91c2c5f0aad5/go.mod h1:ZzGIrxBvCJEluaU4i3CN0GFlu1Qmb3yK8ziV02evJ1E=\ngithub.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw=\ngithub.com/gobuffalo/github_flavored_markdown v1.0.4/go.mod h1:uRowCdK+q8d/RF0Kt3/DSalaIXbb0De/dmTqMQdkQ4I=\ngithub.com/gobuffalo/github_flavored_markdown v1.0.5/go.mod h1:U0643QShPF+OF2tJvYNiYDLDGDuQmJZXsf/bHOJPsMY=\ngithub.com/gobuffalo/github_flavored_markdown v1.0.7/go.mod h1:w93Pd9Lz6LvyQXEG6DktTPHkOtCbr+arAD5mkwMzXLI=\ngithub.com/gobuffalo/gogen v0.0.0-20190219194924-d32a17ad9761/go.mod h1:v47C8sid+ZM2qK+YpQ2MGJKssKAqyTsH1wl/pTCPdz8=\ngithub.com/gobuffalo/gogen v0.0.0-20190224213239-1c6076128bbc/go.mod h1:tQqPADZKflmJCR4FHRHYNPP79cXPICyxUiUHyhuXtqg=\ngithub.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360=\ngithub.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg=\ngithub.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE=\ngithub.com/gobuffalo/gogen v0.2.0/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360=\ngithub.com/gobuffalo/helpers v0.0.0-20190422082217-384f90c6579f/go.mod h1:g0I3qKQEyJxwnHtEmLugD75eoOiWxEtibcV62tYah9w=\ngithub.com/gobuffalo/helpers v0.0.0-20190506214229-8e6f634af7c3/go.mod h1:HlNpmw2+Rjx882VUf6hJfNJs5wpNRzX02KcqCXDlLGc=\ngithub.com/gobuffalo/helpers v0.2.1/go.mod h1:5UhA1EfGvyPZfzo9PqhKkSgmLolaTpnWYDbqCJcmiAE=\ngithub.com/gobuffalo/helpers v0.2.2/go.mod h1:xYbzUdCUpVzLwLnqV8HIjT6hmG0Cs7YIBCJkNM597jw=\ngithub.com/gobuffalo/httptest v1.0.2/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.3/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.4/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.5/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.0.6/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E=\ngithub.com/gobuffalo/httptest v1.1.0/go.mod h1:BIfCgiqCOotRc5xYwCcZN7IFYag4277Ynqjar/Ra3iI=\ngithub.com/gobuffalo/httptest v1.2.0/go.mod h1:0KfourZCsapuvkljDMSr7YM+66kCt/rXv54YcWRWwhc=\ngithub.com/gobuffalo/httptest v1.3.0/go.mod h1:Y4qebOsMH91XdB0cZuS8OUdAKHGV7hVDcjgzGupoYlk=\ngithub.com/gobuffalo/licenser v0.0.0-20180924033006-eae28e638a42/go.mod h1:Ubo90Np8gpsSZqNScZZkVXXAo5DGhTb+WYFIjlnog8w=\ngithub.com/gobuffalo/licenser v0.0.0-20181025145548-437d89de4f75/go.mod h1:x3lEpYxkRG/XtGCUNkio+6RZ/dlOvLzTI9M1auIwFcw=\ngithub.com/gobuffalo/licenser v0.0.0-20181027200154-58051a75da95/go.mod h1:BzhaaxGd1tq1+OLKObzgdCV9kqVhbTulxOpYbvMQWS0=\ngithub.com/gobuffalo/licenser v0.0.0-20181109171355-91a2a7aac9a7/go.mod h1:m+Ygox92pi9bdg+gVaycvqE8RVSjZp7mWw75+K5NPHk=\ngithub.com/gobuffalo/licenser v0.0.0-20181116224424-1b7fd3f9cbb4/go.mod h1:icHYfF2FVDi6CpI8BK9Sy1ChkSijz/0GNN7Qzzdk6JE=\ngithub.com/gobuffalo/licenser v0.0.0-20181128165715-cc7305f8abed/go.mod h1:oU9F9UCE+AzI/MueCKZamsezGOOHfSirltllOVeRTAE=\ngithub.com/gobuffalo/licenser v0.0.0-20181128170751-82cc989582b9/go.mod h1:oU9F9UCE+AzI/MueCKZamsezGOOHfSirltllOVeRTAE=\ngithub.com/gobuffalo/licenser v0.0.0-20181203160806-fe900bbede07/go.mod h1:ph6VDNvOzt1CdfaWC+9XwcBnlSTBz2j49PBwum6RFaU=\ngithub.com/gobuffalo/licenser v0.0.0-20181211173111-f8a311c51159/go.mod h1:ve/Ue99DRuvnTaLq2zKa6F4KtHiYf7W046tDjuGYPfM=\ngithub.com/gobuffalo/licenser v0.0.0-20190224205124-37799bc2ebf6/go.mod h1:ve/Ue99DRuvnTaLq2zKa6F4KtHiYf7W046tDjuGYPfM=\ngithub.com/gobuffalo/licenser v0.0.0-20190329153211-c35c0a2813b2/go.mod h1:ZVWE6uKUE3rGf7sedUHWVjNWrEgxaUQLVFL+pQiWpfY=\ngithub.com/gobuffalo/licenser v1.1.0/go.mod h1:ZVWE6uKUE3rGf7sedUHWVjNWrEgxaUQLVFL+pQiWpfY=\ngithub.com/gobuffalo/logger v0.0.0-20181022175615-46cfb361fc27/go.mod h1:8sQkgyhWipz1mIctHF4jTxmJh1Vxhp7mP8IqbljgJZo=\ngithub.com/gobuffalo/logger v0.0.0-20181027144941-73d08d2bb969/go.mod h1:7uGg2duHKpWnN4+YmyKBdLXfhopkAdVM6H3nKbyFbz8=\ngithub.com/gobuffalo/logger v0.0.0-20181027193913-9cf4dd0efe46/go.mod h1:7uGg2duHKpWnN4+YmyKBdLXfhopkAdVM6H3nKbyFbz8=\ngithub.com/gobuffalo/logger v0.0.0-20181109185836-3feeab578c17/go.mod h1:oNErH0xLe+utO+OW8ptXMSA5DkiSEDW1u3zGIt8F9Ew=\ngithub.com/gobuffalo/logger v0.0.0-20181117211126-8e9b89b7c264/go.mod h1:5etB91IE0uBlw9k756fVKZJdS+7M7ejVhmpXXiSFj0I=\ngithub.com/gobuffalo/logger v0.0.0-20181127160119-5b956e21995c/go.mod h1:+HxKANrR9VGw9yN3aOAppJKvhO05ctDi63w4mDnKv2U=\ngithub.com/gobuffalo/logger v0.0.0-20190224201004-be78ebfea0fa/go.mod h1:+HxKANrR9VGw9yN3aOAppJKvhO05ctDi63w4mDnKv2U=\ngithub.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8=\ngithub.com/gobuffalo/makr v1.1.5/go.mod h1:Y+o0btAH1kYAMDJW/TX3+oAXEu0bmSLLoC9mIFxtzOw=\ngithub.com/gobuffalo/mapi v1.0.0/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc=\ngithub.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc=\ngithub.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc=\ngithub.com/gobuffalo/mapi v1.1.0/go.mod h1:pqQ1XAqvpy/JYtRwoieNps2yU8MFiMxBUpAm2FBtQ50=\ngithub.com/gobuffalo/meta v0.0.0-20181018155829-df62557efcd3/go.mod h1:XTTOhwMNryif3x9LkTTBO/Llrveezd71u3quLd0u7CM=\ngithub.com/gobuffalo/meta v0.0.0-20181018192820-8c6cef77dab3/go.mod h1:E94EPzx9NERGCY69UWlcj6Hipf2uK/vnfrF4QD0plVE=\ngithub.com/gobuffalo/meta v0.0.0-20181025145500-3a985a084b0a/go.mod h1:YDAKBud2FP7NZdruCSlmTmDOZbVSa6bpK7LJ/A/nlKg=\ngithub.com/gobuffalo/meta v0.0.0-20181109154556-f76929ccd5fa/go.mod h1:1rYI5QsanV6cLpT1BlTAkrFi9rtCZrGkvSK8PglwfS8=\ngithub.com/gobuffalo/meta v0.0.0-20181114191255-b130ebedd2f7/go.mod h1:K6cRZ29ozr4Btvsqkjvg5nDFTLOgTqf03KA70Ks0ypE=\ngithub.com/gobuffalo/meta v0.0.0-20181116202903-8850e47774f5/go.mod h1:K6cRZ29ozr4Btvsqkjvg5nDFTLOgTqf03KA70Ks0ypE=\ngithub.com/gobuffalo/meta v0.0.0-20181127070345-0d7e59dd540b/go.mod h1:RLO7tMvE0IAKAM8wny1aN12pvEKn7EtkBLkUZR00Qf8=\ngithub.com/gobuffalo/meta v0.0.0-20190120163247-50bbb1fa260d/go.mod h1:KKsH44nIK2gA8p0PJmRT9GvWJUdphkDUA8AJEvFWiqM=\ngithub.com/gobuffalo/meta v0.0.0-20190121163014-ecaa953cbfb3/go.mod h1:KLfkGnS+Tucc+iTkUcAUBtxpwOJGfhw2pHRLddPxMQY=\ngithub.com/gobuffalo/meta v0.0.0-20190126124307-c8fb6f4eb5a9/go.mod h1:zoh6GLgkk9+iI/62dST4amAuVAczZrBXoAk/t64n7Ew=\ngithub.com/gobuffalo/meta v0.0.0-20190207205153-50a99e08b8cf/go.mod h1:+VGfK9Jm9I7oJyFeJzIT6omCPvrDktzAtpHJKaieugY=\ngithub.com/gobuffalo/meta v0.0.0-20190320152240-a5320142224a/go.mod h1:+VGfK9Jm9I7oJyFeJzIT6omCPvrDktzAtpHJKaieugY=\ngithub.com/gobuffalo/meta v0.0.0-20190329152330-e161e8a93e3b/go.mod h1:mCRSy5F47tjK8yaIDcJad4oe9fXxY5gLrx3Xx2spK+0=\ngithub.com/gobuffalo/mw-basicauth v1.0.3/go.mod h1:dg7+ilMZOKnQFHDefUzUHufNyTswVUviCBgF244C1+0=\ngithub.com/gobuffalo/mw-basicauth v1.0.6/go.mod h1:RFyeGeDLZlVgp/eBflqu2eavFqyv0j0fVVP87WPYFwY=\ngithub.com/gobuffalo/mw-basicauth v1.0.7/go.mod h1:xJ9/OSiOWl+kZkjaSun62srODr3Cx8OB4AKr+G4FlS4=\ngithub.com/gobuffalo/mw-contenttype v0.0.0-20180802152300-74f5a47f4d56/go.mod h1:7EvcmzBbeCvFtQm5GqF9ys6QnCxz2UM1x0moiWLq1No=\ngithub.com/gobuffalo/mw-contenttype v0.0.0-20190129203934-2554e742333b/go.mod h1:7x87+mDrr9Peh7AqhOtESyJLanMd2zQNz2Hts+vtBoE=\ngithub.com/gobuffalo/mw-csrf v0.0.0-20180802151833-446ff26e108b/go.mod h1:sbGtb8DmDZuDUQoxjr8hG1ZbLtZboD9xsn6p77ppcHo=\ngithub.com/gobuffalo/mw-csrf v0.0.0-20190129204204-25460a055517/go.mod h1:o5u+nnN0Oa7LBeDYH9QP36qeMPnXV9qbVnbZ4D+Kb0Q=\ngithub.com/gobuffalo/mw-forcessl v0.0.0-20180802152810-73921ae7a130/go.mod h1:JvNHRj7bYNAMUr/5XMkZaDcw3jZhUZpsmzhd//FFWmQ=\ngithub.com/gobuffalo/mw-i18n v0.0.0-20180802152014-e3060b7e13d6/go.mod h1:91AQfukc52A6hdfIfkxzyr+kpVYDodgAeT5cjX1UIj4=\ngithub.com/gobuffalo/mw-i18n v0.0.0-20181027200759-09e0c99be4d3/go.mod h1:1PpGPgqP8VsfUppgBA9FrTOXjI6X9gjqhh/8dmg48lg=\ngithub.com/gobuffalo/mw-i18n v0.0.0-20190129204410-552713a3ebb4/go.mod h1:rBg2eHxsyxVjtYra6fGy4GSF5C8NysOvz+Znnzk42EM=\ngithub.com/gobuffalo/mw-paramlogger v0.0.0-20181005191442-d6ee392ec72e/go.mod h1:6OJr6VwSzgJMqWMj7TYmRUqzNe2LXu/W1rRW4MAz/ME=\ngithub.com/gobuffalo/mw-paramlogger v0.0.0-20190129202837-395da1998525/go.mod h1:gEo/ABCsKqvpp/KCxN2AIzDEe0OJUXbJ9293FYrXw+w=\ngithub.com/gobuffalo/mw-tokenauth v0.0.0-20181001105134-8545f626c189/go.mod h1:UqBF00IfKvd39ni5+yI5MLMjAf4gX7cDKN/26zDOD6c=\ngithub.com/gobuffalo/mw-tokenauth v0.0.0-20190129201951-95847f29c5c8/go.mod h1:n2oa93LHGD94hGI+PoJO+6cf60DNrXrAIv9L/Ke3GXc=\ngithub.com/gobuffalo/nulls v0.0.0-20190305142546-85f3c9250d87/go.mod h1:KhaLCW+kFA/G97tZkmVkIxhRw3gvZszJn7JjPLI3gtI=\ngithub.com/gobuffalo/packd v0.0.0-20181027182251-01ad393492c8/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc=\ngithub.com/gobuffalo/packd v0.0.0-20181027190505-aafc0d02c411/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc=\ngithub.com/gobuffalo/packd v0.0.0-20181027194105-7ae579e6d213/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc=\ngithub.com/gobuffalo/packd v0.0.0-20181028162033-6d52e0eabf41/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181029140631-cf76bd87a5a6/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181031195726-c82734870264/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181103221656-16c4ed88b296/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181104210303-d376b15f8e96/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181111195323-b2e760a5f0ff/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181114190715-f25c5d2471d7/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI=\ngithub.com/gobuffalo/packd v0.0.0-20181124090624-311c6248e5fb/go.mod h1:Foenia9ZvITEvG05ab6XpiD5EfBHPL8A6hush8SJ0o8=\ngithub.com/gobuffalo/packd v0.0.0-20181207120301-c49825f8f6f4/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA=\ngithub.com/gobuffalo/packd v0.0.0-20181212173646-eca3b8fd6687/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA=\ngithub.com/gobuffalo/packd v0.0.0-20190224160250-d04dd98aca5b/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA=\ngithub.com/gobuffalo/packd v0.0.0-20190315122247-83d601d65093/go.mod h1:LpEu7OkoplvlhztyAEePkS6JwcGgANdgGL5pB4Knxaw=\ngithub.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4=\ngithub.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4=\ngithub.com/gobuffalo/packd v0.2.0/go.mod h1:k2CkHP3bjbqL2GwxwhxUy1DgnlbW644hkLC9iIUvZwY=\ngithub.com/gobuffalo/packr v1.13.7/go.mod h1:KkinLIn/n6+3tVXMwg6KkNvWwVsrRAz4ph+jgpk3Z24=\ngithub.com/gobuffalo/packr v1.15.0/go.mod h1:t5gXzEhIviQwVlNx/+3SfS07GS+cZ2hn76WLzPp6MGI=\ngithub.com/gobuffalo/packr v1.15.1/go.mod h1:IeqicJ7jm8182yrVmNbM6PR4g79SjN9tZLH8KduZZwE=\ngithub.com/gobuffalo/packr v1.16.0/go.mod h1:Yx/lcR/7mDLXhuJSzsz2MauD/HUwSc+EK6oigMRGGsM=\ngithub.com/gobuffalo/packr v1.19.0/go.mod h1:MstrNkfCQhd5o+Ct4IJ0skWlxN8emOq8DsoT1G98VIU=\ngithub.com/gobuffalo/packr v1.20.0/go.mod h1:JDytk1t2gP+my1ig7iI4NcVaXr886+N0ecUga6884zw=\ngithub.com/gobuffalo/packr v1.21.0/go.mod h1:H00jGfj1qFKxscFJSw8wcL4hpQtPe1PfU2wa6sg/SR0=\ngithub.com/gobuffalo/packr v1.21.5/go.mod h1:zCvDxrZzFmq5Xd7Jw4vaGe/OYwzuXnma31D2EbTHMWk=\ngithub.com/gobuffalo/packr v1.21.7/go.mod h1:73tmYjwi4Cvb1eNiAwpmrzZ0gxVA4KBqVSZ2FNeJodM=\ngithub.com/gobuffalo/packr v1.21.9/go.mod h1:GC76q6nMzRtR+AEN/VV4w0z2/4q7SOaEmXh3Ooa8sOE=\ngithub.com/gobuffalo/packr v1.22.0/go.mod h1:Qr3Wtxr3+HuQEwWqlLnNW4t1oTvK+7Gc/Rnoi/lDFvA=\ngithub.com/gobuffalo/packr v1.24.0/go.mod h1:p9Sgang00I1hlr1ub+tgI9AQdFd4f+WH1h62jYpzetM=\ngithub.com/gobuffalo/packr v1.24.1/go.mod h1:absPnW/XUUa4DmIh5ga7AipGXXg0DOcd5YWKk5RZs8Y=\ngithub.com/gobuffalo/packr v1.25.0/go.mod h1:NqsGg8CSB2ZD+6RBIRs18G7aZqdYDlYNNvsSqP6T4/U=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.5/go.mod h1:e6gmOfhf3KmT4zl2X/NDRSfBXk2oV4TXZ+NNOM0xwt8=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.7/go.mod h1:BzhceHWfF3DMAkbPUONHYWs63uacCZxygFY1b4H9N2A=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.8/go.mod h1:y60QCdzwuMwO2R49fdQhsjCPv7tLQFR0ayzxxla9zes=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.9/go.mod h1:fQqADRfZpEsgkc7c/K7aMew3n4aF1Kji7+lIZeR98Fc=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.10/go.mod h1:4CWWn4I5T3v4c1OsJ55HbHlUEKNWMITG5iIkdr4Px4w=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.11/go.mod h1:JoieH/3h3U4UmatmV93QmqyPUdf4wVM9HELaHEu+3fk=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.12/go.mod h1:FV1zZTsVFi1DSCboO36Xgs4pzCZBjB/tDV9Cz/lSaR8=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.13/go.mod h1:2Mp7GhBFMdJlOK8vGfl7SYtfMP3+5roE39ejlfjw0rA=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.14/go.mod h1:06otbrNvDKO1eNQ3b8hst+1010UooI2MFg+B2Ze4MV8=\ngithub.com/gobuffalo/packr/v2 v2.0.0-rc.15/go.mod h1:IMe7H2nJvcKXSF90y4X1rjYIRlNMJYCxEhssBXNZwWs=\ngithub.com/gobuffalo/packr/v2 v2.0.0/go.mod h1:7McfLpSxaPUoSQm7gYpTZRQSK63mX8EKzzYSEFKvfkM=\ngithub.com/gobuffalo/packr/v2 v2.0.1/go.mod h1:tp5/5A2e67F1lUGTiNadtA2ToP045+mvkWzaqMCsZr4=\ngithub.com/gobuffalo/packr/v2 v2.0.2/go.mod h1:6Y+2NY9cHDlrz96xkJG8bfPwLlCdJVS/irhNJmwD7kM=\ngithub.com/gobuffalo/packr/v2 v2.0.6/go.mod h1:/TYKOjadT7P9jRWZtj4BRTgeXy2tIYntifGkD+aM2KY=\ngithub.com/gobuffalo/packr/v2 v2.0.7/go.mod h1:1SBFAIr3YnxYdJRyrceR7zhOrhV/YhHzOjDwA9LLZ5Y=\ngithub.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ=\ngithub.com/gobuffalo/packr/v2 v2.0.10/go.mod h1:n90ZuXIc2KN2vFAOQascnPItp9A2g9QYSvYvS3AjQEM=\ngithub.com/gobuffalo/packr/v2 v2.1.0/go.mod h1:n90ZuXIc2KN2vFAOQascnPItp9A2g9QYSvYvS3AjQEM=\ngithub.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0=\ngithub.com/gobuffalo/packr/v2 v2.3.2/go.mod h1:93elRVdDhpUgox9GnXswWK5dzpVBQsnlQjnnncSLoiU=\ngithub.com/gobuffalo/packr/v2 v2.4.0/go.mod h1:ra341gygw9/61nSjAbfwcwh8IrYL4WmR4IsPkPBhQiY=\ngithub.com/gobuffalo/plush v3.7.16+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.20+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.21+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.22+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.23+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.30+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.31+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.32+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.33+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.7.34+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.8.0+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plush v3.8.2+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI=\ngithub.com/gobuffalo/plushgen v0.0.0-20181128164830-d29dcb966cb2/go.mod h1:r9QwptTFnuvSaSRjpSp4S2/4e2D3tJhARYbvEBcKSb4=\ngithub.com/gobuffalo/plushgen v0.0.0-20181203163832-9fc4964505c2/go.mod h1:opEdT33AA2HdrIwK1aibqnTJDVVKXC02Bar/GT1YRVs=\ngithub.com/gobuffalo/plushgen v0.0.0-20181207152837-eedb135bd51b/go.mod h1:Lcw7HQbEVm09sAQrCLzIxuhFbB3nAgp4c55E+UlynR0=\ngithub.com/gobuffalo/plushgen v0.0.0-20190104222512-177cd2b872b3/go.mod h1:tYxCozi8X62bpZyKXYHw1ncx2ZtT2nFvG42kuLwYjoc=\ngithub.com/gobuffalo/plushgen v0.0.0-20190224160205-347ea233336e/go.mod h1:tYxCozi8X62bpZyKXYHw1ncx2ZtT2nFvG42kuLwYjoc=\ngithub.com/gobuffalo/plushgen v0.0.0-20190329152458-0555238fe0d9/go.mod h1:3U71v6HWZpVER1nInTXeAwdoRNsRd4W8aeIa1Lyp+Bk=\ngithub.com/gobuffalo/plushgen v0.1.0/go.mod h1:NK33QLkRK/xKexiPFSxlWRT286F4yStZUa/Fbx0guvo=\ngithub.com/gobuffalo/plushgen v0.1.2/go.mod h1:3U71v6HWZpVER1nInTXeAwdoRNsRd4W8aeIa1Lyp+Bk=\ngithub.com/gobuffalo/pop v4.8.2+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.3+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.4+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.5+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.7+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.8.8+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.1+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.2+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.3+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.5+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.6+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.8+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.9.9+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.10.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.11.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/pop v4.11.1+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg=\ngithub.com/gobuffalo/release v1.0.35/go.mod h1:VtHFAKs61vO3wboCec5xr9JPTjYyWYcvaM3lclkc4x4=\ngithub.com/gobuffalo/release v1.0.38/go.mod h1:VtHFAKs61vO3wboCec5xr9JPTjYyWYcvaM3lclkc4x4=\ngithub.com/gobuffalo/release v1.0.42/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug=\ngithub.com/gobuffalo/release v1.0.51/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug=\ngithub.com/gobuffalo/release v1.0.52/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug=\ngithub.com/gobuffalo/release v1.0.53/go.mod h1:FdF257nd8rqhNaqtDWFGhxdJ/Ig4J7VcS3KL7n/a+aA=\ngithub.com/gobuffalo/release v1.0.54/go.mod h1:Pe5/RxRa/BE8whDpGfRqSI7D1a0evGK1T4JDm339tJc=\ngithub.com/gobuffalo/release v1.0.61/go.mod h1:mfIO38ujUNVDlBziIYqXquYfBF+8FDHUjKZgYC1Hj24=\ngithub.com/gobuffalo/release v1.0.63/go.mod h1:/7hQAikt0l8Iu/tAX7slC1qiOhD6Nb+3KMmn/htiUfc=\ngithub.com/gobuffalo/release v1.0.72/go.mod h1:NP5NXgg/IX3M5XmHmWR99D687/3Dt9qZtTK/Lbwc1hU=\ngithub.com/gobuffalo/release v1.0.74/go.mod h1:NP5NXgg/IX3M5XmHmWR99D687/3Dt9qZtTK/Lbwc1hU=\ngithub.com/gobuffalo/release v1.1.1/go.mod h1:Sluak1Xd6kcp6snkluR1jeXAogdJZpFFRzTYRs/2uwg=\ngithub.com/gobuffalo/release v1.1.3/go.mod h1:CuXc5/m+4zuq8idoDt1l4va0AXAn/OSs08uHOfMVr8E=\ngithub.com/gobuffalo/release v1.1.6/go.mod h1:18naWa3kBsqO0cItXZNJuefCKOENpbbUIqRL1g+p6z0=\ngithub.com/gobuffalo/release v1.2.2/go.mod h1:tkFFZua2N5WRxyGDk2cSwQjzkZ/apKKXl5T8P+kEO+E=\ngithub.com/gobuffalo/release v1.2.5/go.mod h1:tkFFZua2N5WRxyGDk2cSwQjzkZ/apKKXl5T8P+kEO+E=\ngithub.com/gobuffalo/release v1.4.0/go.mod h1:f4uUPnD9dxrWxVy9yy0k/mvDf3EzhFtf7/byl0tTdY4=\ngithub.com/gobuffalo/release v1.7.0/go.mod h1:xH2NjAueVSY89XgC4qx24ojEQ4zQ9XCGVs5eXwJTkEs=\ngithub.com/gobuffalo/shoulders v1.0.1/go.mod h1:V33CcVmaQ4gRUmHKwq1fiTXuf8Gp/qjQBUL5tHPmvbA=\ngithub.com/gobuffalo/shoulders v1.0.3/go.mod h1:LqMcHhKRuBPMAYElqOe3POHiZ1x7Ry0BE8ZZ84Bx+k4=\ngithub.com/gobuffalo/shoulders v1.0.4/go.mod h1:LqMcHhKRuBPMAYElqOe3POHiZ1x7Ry0BE8ZZ84Bx+k4=\ngithub.com/gobuffalo/shoulders v1.1.0/go.mod h1:kcIJs3p7VqoBJ36Mzs+x767NyzTx0pxBvzZdWTWZYF8=\ngithub.com/gobuffalo/syncx v0.0.0-20181120191700-98333ab04150/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=\ngithub.com/gobuffalo/syncx v0.0.0-20181120194010-558ac7de985f/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=\ngithub.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=\ngithub.com/gobuffalo/tags v2.0.11+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.0.14+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.0.15+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.0.16+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/tags v2.1.0+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY=\ngithub.com/gobuffalo/uuid v2.0.3+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE=\ngithub.com/gobuffalo/uuid v2.0.4+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE=\ngithub.com/gobuffalo/uuid v2.0.5+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE=\ngithub.com/gobuffalo/validate v2.0.3+incompatible/go.mod h1:N+EtDe0J8252BgfzQUChBgfd6L93m9weay53EWFVsMM=\ngithub.com/gobuffalo/x v0.0.0-20181003152136-452098b06085/go.mod h1:WevpGD+5YOreDJznWevcn8NTmQEW5STSBgIkpkjzqXc=\ngithub.com/gobuffalo/x v0.0.0-20181007152206-913e47c59ca7/go.mod h1:9rDPXaB3kXdKWzMc4odGQQdG2e2DIEmANy5aSJ9yesY=\ngithub.com/gobuffalo/x v0.0.0-20181025165825-f204f550da9d/go.mod h1:Qh2Pb/Ak1Ko2mzHlGPigrnxkhO4WTTCI1jJM58sbgtE=\ngithub.com/gobuffalo/x v0.0.0-20181025192250-1ef645d63fe8/go.mod h1:AIlnMGlYXOCsoCntLPFLYtrJNS/pc2HD4IdSXH62TpU=\ngithub.com/gobuffalo/x v0.0.0-20181109195216-5b3131238124/go.mod h1:GpdLUY6/Ztf/3FfxfwsLkDqAGZ0brhlh7LzIibHyZp0=\ngithub.com/gobuffalo/x v0.0.0-20181110221217-14085ca3e1a9/go.mod h1:ig5vdn4+5IPtxgESlZWo1SSDyHKKef8EjVVKhY9kkIQ=\ngithub.com/gobuffalo/x v0.0.0-20190224155809-6bb134105960/go.mod h1:ig5vdn4+5IPtxgESlZWo1SSDyHKKef8EjVVKhY9kkIQ=\ngithub.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=\ngithub.com/godbus/dbus v4.1.0+incompatible/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=\ngithub.com/gofrs/uuid v3.1.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=\ngithub.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=\ngithub.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=\ngithub.com/gogo/googleapis v1.3.0/go.mod h1:d+q1s/xVJxZGKWwC/6UfPIF33J+G1Tq4GYv9Y+Tg/EU=\ngithub.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=\ngithub.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=\ngithub.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=\ngithub.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=\ngithub.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=\ngithub.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=\ngithub.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=\ngithub.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=\ngithub.com/goji/param v0.0.0-20160927210335-d7f49fd7d1ed/go.mod h1:GZJblUu7ACjguvQUK2un6nQBlnZk7H1MzXZdfrFUd8Q=\ngithub.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=\ngithub.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=\ngithub.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=\ngithub.com/golang/lint v0.0.0-20181217174547-8f45f776aaf1/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=\ngithub.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=\ngithub.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=\ngithub.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=\ngithub.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=\ngithub.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=\ngithub.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=\ngithub.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc=\ngithub.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg=\ngithub.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks=\ngithub.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A=\ngithub.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw=\ngithub.com/google/btree v0.0.0-20160524151835-7d79101e329e/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=\ngithub.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=\ngithub.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=\ngithub.com/google/flatbuffers v1.10.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=\ngithub.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=\ngithub.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=\ngithub.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=\ngithub.com/google/go-querystring v0.0.0-20170111101155-53e6ce116135/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=\ngithub.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=\ngithub.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=\ngithub.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=\ngithub.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=\ngithub.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=\ngithub.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=\ngithub.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=\ngithub.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=\ngithub.com/google/uuid v0.0.0-20170306145142-6a5e28554805/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=\ngithub.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=\ngithub.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg=\ngithub.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=\ngithub.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=\ngithub.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=\ngithub.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=\ngithub.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU=\ngithub.com/gophercloud/gophercloud v0.0.0-20180828235145-f29afc2cceca/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4=\ngithub.com/gophercloud/gophercloud v0.0.0-20190126172459-c818fa66e4c8/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4=\ngithub.com/gophercloud/gophercloud v0.0.0-20190307220656-fe1ba5ce12dd/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=\ngithub.com/gophercloud/gophercloud v0.6.0/go.mod h1:GICNByuaEBibcjmjvI7QvYJSZEbGkcYwAR7EZK2WMqM=\ngithub.com/gopherjs/gopherjs v0.0.0-20180825215210-0210a2f0f73c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=\ngithub.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=\ngithub.com/goreleaser/goreleaser v0.94.0/go.mod h1:OjbYR2NhOI6AEUWCowMSBzo9nP1aRif3sYtx+rhp+Zo=\ngithub.com/goreleaser/nfpm v0.9.7/go.mod h1:F2yzin6cBAL9gb+mSiReuXdsfTrOQwDMsuSpULof+y4=\ngithub.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=\ngithub.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/mux v1.7.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1/go.mod h1:YeAe0gNeiNT5hoiZRI4yiOky6jVdNvfO2N6Kav/HmxY=\ngithub.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=\ngithub.com/gorilla/sessions v1.1.2/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w=\ngithub.com/gorilla/sessions v1.1.3/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w=\ngithub.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=\ngithub.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=\ngithub.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=\ngithub.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=\ngithub.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=\ngithub.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=\ngithub.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=\ngithub.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=\ngithub.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw=\ngithub.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=\ngithub.com/grpc-ecosystem/grpc-gateway v1.9.2/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=\ngithub.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=\ngithub.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=\ngithub.com/hashicorp/consul v1.6.2/go.mod h1:kZmEKWDGa47nEdLEbvJyh14uTBpG37Wo6N39Vfpo7uE=\ngithub.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=\ngithub.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=\ngithub.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=\ngithub.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=\ngithub.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=\ngithub.com/hashicorp/go-bexpr v0.1.2/go.mod h1:ANbpTX1oAql27TZkKVeW8p1w8NTdnyzPe/0qqPCKohU=\ngithub.com/hashicorp/go-checkpoint v0.0.0-20171009173528-1545e56e46de/go.mod h1:xIwEieBHERyEvaeKF/TcHh1Hu+lxPM+n2vT1+g9I4m4=\ngithub.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg=\ngithub.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=\ngithub.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=\ngithub.com/hashicorp/go-discover v0.0.0-20190403160810-22221edb15cd/go.mod h1:ueUgD9BeIocT7QNuvxSyJyPAM9dfifBcaWmeybb67OY=\ngithub.com/hashicorp/go-discover v0.0.0-20190905142513-34a650575f6c/go.mod h1:FTV98wIi2RF5iDl1iLR/cB+no+B//ODP6133EcC9djw=\ngithub.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI=\ngithub.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=\ngithub.com/hashicorp/go-hclog v0.9.1/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=\ngithub.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=\ngithub.com/hashicorp/go-hclog v0.10.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=\ngithub.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=\ngithub.com/hashicorp/go-immutable-radix v1.1.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=\ngithub.com/hashicorp/go-memdb v0.0.0-20180223233045-1289e7fffe71/go.mod h1:kbfItVoBJwCfKXDXN4YoAXjxcFVZ7MRrJzyTX6H4giE=\ngithub.com/hashicorp/go-memdb v1.0.4/go.mod h1:LWQ8R70vPrS4OEY9k28D2z8/Zzyu34NVzeRibGAzHO0=\ngithub.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=\ngithub.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=\ngithub.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=\ngithub.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY=\ngithub.com/hashicorp/go-raftchunking v0.6.1/go.mod h1:cGlg3JtDy7qy6c/3Bu660Mic1JF+7lWqIwCFSb08fX0=\ngithub.com/hashicorp/go-raftchunking v0.6.2/go.mod h1:cGlg3JtDy7qy6c/3Bu660Mic1JF+7lWqIwCFSb08fX0=\ngithub.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=\ngithub.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=\ngithub.com/hashicorp/go-retryablehttp v0.6.3/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=\ngithub.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=\ngithub.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=\ngithub.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=\ngithub.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A=\ngithub.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=\ngithub.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=\ngithub.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=\ngithub.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=\ngithub.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=\ngithub.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=\ngithub.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=\ngithub.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=\ngithub.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=\ngithub.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=\ngithub.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=\ngithub.com/hashicorp/hil v0.0.0-20160711231837-1e86c6b523c5/go.mod h1:KHvg/R2/dPtaePb16oW4qIyzkMxXOL38xjRN64adsts=\ngithub.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE=\ngithub.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=\ngithub.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=\ngithub.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY=\ngithub.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=\ngithub.com/hashicorp/memberlist v0.1.5/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=\ngithub.com/hashicorp/net-rpc-msgpackrpc v0.0.0-20151116020338-a14192a58a69/go.mod h1:/z+jUGRBlwVpUZfjute9jWaF6/HuhjuFQuL1YXzVD1Q=\ngithub.com/hashicorp/raft v1.1.0/go.mod h1:4Ak7FSPnuvmb0GV6vgIAJ4vYT4bek9bb6Q+7HVbyzqM=\ngithub.com/hashicorp/raft v1.1.1/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8=\ngithub.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea/go.mod h1:pNv7Wc3ycL6F5oOWn+tPGo2gWD4a5X+yp/ntwdKLjRk=\ngithub.com/hashicorp/raft-boltdb v0.0.0-20191021154308-4207f1bf0617/go.mod h1:aUF6HQr8+t3FC/ZHAC+pZreUBhTaxumuu3L+d37uRxk=\ngithub.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=\ngithub.com/hashicorp/serf v0.8.5/go.mod h1:UpNcs7fFbpKIyZaUuSW6EPiH+eZC7OuyFD+wc1oal+k=\ngithub.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q=\ngithub.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M=\ngithub.com/hashicorp/vic v1.5.1-0.20190403131502-bbfe86ec9443/go.mod h1:bEpDU35nTu0ey1EXjwNwPjI9xErAsoOCmcMb9GKvyxo=\ngithub.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=\ngithub.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=\ngithub.com/hashicorp/yamux v0.0.0-20190923154419-df201c70410d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=\ngithub.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=\ngithub.com/hudl/fargo v1.2.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=\ngithub.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=\ngithub.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=\ngithub.com/inconshreveable/log15 v0.0.0-20180818164646-67afb5ed74ec/go.mod h1:cOaXtrgN4ScfRrD9Bre7U1thNq5RtJ8ZoP4iXVGRj6o=\ngithub.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=\ngithub.com/influxdata/flux v0.34.1/go.mod h1:GvaTIeU904jG5Q7kwsfPFyXD61I7eSSGO30p+y0XOmk=\ngithub.com/influxdata/influxdb v1.7.6/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY=\ngithub.com/influxdata/influxql v1.0.0/go.mod h1:KpVI7okXjK6PRi3Z5B+mtKZli+R1DnZgb3N+tzevNgo=\ngithub.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE=\ngithub.com/influxdata/roaring v0.4.12/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE=\ngithub.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0=\ngithub.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po=\ngithub.com/infobloxopen/go-trees v0.0.0-20190313150506-2af4e13f9062/go.mod h1:PcNJqIlcX/dj3DTG/+QQnRvSgTMG6CLpRMjWcv4+J6w=\ngithub.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ=\ngithub.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=\ngithub.com/jackc/pgx v3.3.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=\ngithub.com/jarcoal/httpmock v0.0.0-20180424175123-9c70cfe4a1da/go.mod h1:ks+b9deReOc7jgqp+e7LuFiCBH6Rm5hL32cLcEAArb4=\ngithub.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=\ngithub.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=\ngithub.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=\ngithub.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8=\ngithub.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=\ngithub.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=\ngithub.com/jmoiron/sqlx v0.0.0-20180614180643-0dae4fefe7c0/go.mod h1:IiEW3SEiiErVyFdH8NTuWjSifiEQKUoyK3LNqr2kCHU=\ngithub.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=\ngithub.com/joho/godotenv v1.2.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=\ngithub.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=\ngithub.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=\ngithub.com/joyent/triton-go v0.0.0-20180628001255-830d2b111e62/go.mod h1:U+RSyWxWd04xTqnuOQxnai7XGS2PrPY2cfGoDKtMHjA=\ngithub.com/joyent/triton-go v1.7.0/go.mod h1:zCt/it+QSYSRfzGPKw2zKK9pg3XqS3OoDoKjvOSOjJQ=\ngithub.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0=\ngithub.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=\ngithub.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=\ngithub.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=\ngithub.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=\ngithub.com/jsternberg/zap-logfmt v1.2.0/go.mod h1:kz+1CUmCutPWABnNkOu9hOHKdT2q3TDYCcsFy9hpqb0=\ngithub.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=\ngithub.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=\ngithub.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=\ngithub.com/jung-kurt/gofpdf v1.5.1/go.mod h1:oIiEpiXAwTUssrFUGgVj4SO17oiCYsfnTjeQZz/amnM=\ngithub.com/justinas/alice v0.0.0-20171023064455-03f45bd4b7da/go.mod h1:oLH0CmIaxCGXD67VKGR5AacGXZSMznlmeqM8RzPrcY8=\ngithub.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0=\ngithub.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=\ngithub.com/karrick/godirwalk v1.7.7/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=\ngithub.com/karrick/godirwalk v1.7.8/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=\ngithub.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=\ngithub.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=\ngithub.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=\ngithub.com/kevinburke/ssh_config v0.0.0-20180830205328-81db2a75821e/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=\ngithub.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=\ngithub.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=\ngithub.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=\ngithub.com/klauspost/compress v1.7.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=\ngithub.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=\ngithub.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=\ngithub.com/klauspost/pgzip v1.2.1/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=\ngithub.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=\ngithub.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=\ngithub.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=\ngithub.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=\ngithub.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=\ngithub.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=\ngithub.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=\ngithub.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=\ngithub.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=\ngithub.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=\ngithub.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=\ngithub.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=\ngithub.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=\ngithub.com/lightstep/lightstep-tracer-go v0.16.0/go.mod h1:6AMpwZpsyCFwSovxzM78e+AsYxE8sGwiM6C3TytaWeI=\ngithub.com/linode/linodego v0.7.1/go.mod h1:ga11n3ivecUrPCHN0rANxKmfWBJVkOXfLMZinAbj2sY=\ngithub.com/linode/linodego v0.12.0/go.mod h1:cQFzVqVu5KeFy2ZSTWTA/qVNYYa9ZY8uePJZsFG7EYs=\ngithub.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04=\ngithub.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk=\ngithub.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao=\ngithub.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58=\ngithub.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=\ngithub.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=\ngithub.com/markbates/deplist v1.0.4/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM=\ngithub.com/markbates/deplist v1.0.5/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM=\ngithub.com/markbates/deplist v1.1.3/go.mod h1:BF7ioVzAJYEtzQN/os4rt8H8Ti3h0T7EoN+7eyALktE=\ngithub.com/markbates/deplist v1.2.0/go.mod h1:dtsWLZ5bWoazbM0rCxZncQaAPifWbvHgBJk8UNI1Yfk=\ngithub.com/markbates/going v1.0.2/go.mod h1:UWCk3zm0UKefHZ7l8BNqi26UyiEMniznk8naLdTcy6c=\ngithub.com/markbates/going v1.0.3/go.mod h1:fQiT6v6yQar9UD6bd/D4Z5Afbk9J6BBVBtLiyY4gp2o=\ngithub.com/markbates/grift v1.0.4/go.mod h1:wbmtW74veyx+cgfwFhlnnMWqhoz55rnHR47oMXzsyVs=\ngithub.com/markbates/grift v1.0.5/go.mod h1:EHmVIjOQoj/OOBDzlZ8RW0ZkvOtQ4xRHjrPvmfoiFaU=\ngithub.com/markbates/grift v1.0.6/go.mod h1:2AUYA/+pODhwonRbYwsltPVPIztBzw5nIJEGiWgKMPM=\ngithub.com/markbates/hmax v1.0.0/go.mod h1:cOkR9dktiESxIMu+65oc/r/bdY4bE8zZw3OLhLx0X2c=\ngithub.com/markbates/hmax v1.1.0/go.mod h1:hhn8pJiRwNTEmNlxhfiTbL+CtEYiAX3wuhSf/kg/6wI=\ngithub.com/markbates/inflect v1.0.0/go.mod h1:oTeZL2KHA7CUX6X+fovmK9OvIOFuqu0TwdQrZjLTh88=\ngithub.com/markbates/inflect v1.0.1/go.mod h1:uv3UVNBe5qBIfCm8O8Q+DW+S1EopeyINj+Ikhc7rnCk=\ngithub.com/markbates/inflect v1.0.3/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs=\ngithub.com/markbates/inflect v1.0.4/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs=\ngithub.com/markbates/oncer v0.0.0-20180924031910-e862a676800b/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/oncer v0.0.0-20180924034138-723ad0170a46/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/oncer v0.0.0-20181014194634-05fccaae8fc4/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=\ngithub.com/markbates/refresh v1.4.10/go.mod h1:NDPHvotuZmTmesXxr95C9bjlw1/0frJwtME2dzcVKhc=\ngithub.com/markbates/refresh v1.4.11/go.mod h1:awpJuyo4zgexB/JaHfmBX0sRdvOjo2dXwIayWIz9i3g=\ngithub.com/markbates/refresh v1.5.0/go.mod h1:ZYMLkxV+x7wXQ2Xd7bXAPyF0EXiEWAMfiy/4URYb1+M=\ngithub.com/markbates/refresh v1.6.0/go.mod h1:p8jWGABFUaFf/cSw0pxbo0MQVujiz5NTQ0bmCHLC4ac=\ngithub.com/markbates/refresh v1.7.1/go.mod h1:hcGVJc3m5EeskliwSVJxcTHzUtMz2h8gBtCS0V94CgE=\ngithub.com/markbates/safe v1.0.0/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=\ngithub.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=\ngithub.com/markbates/sigtx v1.0.0/go.mod h1:QF1Hv6Ic6Ca6W+T+DL0Y/ypborFKyvUY9HmuCD4VeTc=\ngithub.com/markbates/willie v1.0.9/go.mod h1:fsrFVWl91+gXpx/6dv715j7i11fYPfZ9ZGfH0DQzY7w=\ngithub.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk=\ngithub.com/martini-contrib/render v0.0.0-20150707142108-ec18f8345a11/go.mod h1:Ah2dBMoxZEqk118as2T4u4fjfXarE0pPnMJaArZQZsI=\ngithub.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=\ngithub.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=\ngithub.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=\ngithub.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=\ngithub.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=\ngithub.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=\ngithub.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=\ngithub.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=\ngithub.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=\ngithub.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=\ngithub.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=\ngithub.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=\ngithub.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=\ngithub.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE=\ngithub.com/mattn/go-zglob v0.0.0-20171230104132-4959821b4817/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo=\ngithub.com/mattn/go-zglob v0.0.0-20180803001819-2ea3427bfa53/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo=\ngithub.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=\ngithub.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY=\ngithub.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=\ngithub.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc=\ngithub.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=\ngithub.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=\ngithub.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=\ngithub.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=\ngithub.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=\ngithub.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=\ngithub.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=\ngithub.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=\ngithub.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=\ngithub.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=\ngithub.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=\ngithub.com/mitchellh/hashstructure v0.0.0-20170609045927-2bca23e0e452/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ=\ngithub.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ=\ngithub.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=\ngithub.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=\ngithub.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=\ngithub.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=\ngithub.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=\ngithub.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=\ngithub.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=\ngithub.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGEJq24YyJ2ban8EO0RUVSJlF1pGsEvoLEACr/Q=\ngithub.com/monoculum/formam v0.0.0-20190307031628-bc555adff0cd/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc=\ngithub.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=\ngithub.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=\ngithub.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=\ngithub.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0=\ngithub.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E=\ngithub.com/nats-io/go-nats v1.7.2/go.mod h1:+t7RHT5ApZebkrQdnn6AhQJmhJJiKAvJUio1PiiCtj0=\ngithub.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4=\ngithub.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=\ngithub.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU=\ngithub.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo=\ngithub.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM=\ngithub.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q=\ngithub.com/nicolai86/scaleway-sdk v1.10.2-0.20180628010248-798f60e20bb2/go.mod h1:TLb2Sg7HQcgGdloNxkrmtgDNR9uVYF3lfdFIN4Ro6Sk=\ngithub.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=\ngithub.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=\ngithub.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=\ngithub.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=\ngithub.com/olekukonko/tablewriter v0.0.0-20180130162743-b8a9be070da4/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=\ngithub.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=\ngithub.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=\ngithub.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=\ngithub.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis=\ngithub.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=\ngithub.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=\ngithub.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=\ngithub.com/openzipkin-contrib/zipkin-go-opentracing v0.3.5/go.mod h1:uVHyebswE1cCXr2A73cRM2frx5ld1RJUCJkFNZ90ZiI=\ngithub.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8=\ngithub.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=\ngithub.com/orcaman/concurrent-map v0.0.0-20190107190726-7ed82d9cb717 h1:2v7IYkog9ZFN04bv5hkwjpyHkc6wujPPOVYDPp2rfwA=\ngithub.com/orcaman/concurrent-map v0.0.0-20190107190726-7ed82d9cb717/go.mod h1:Lu3tH6HLW3feq74c2GC+jIMS/K2CFcDWnWD9XkenwhI=\ngithub.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0=\ngithub.com/packethost/packngo v0.1.1-0.20180711074735-b9cb5096f54c/go.mod h1:otzZQXgoO96RTzDB/Hycg0qZcXZsWJGJRSXbmEIJ+4M=\ngithub.com/packethost/packngo v0.2.0/go.mod h1:RQHg5xR1F614BwJyepfMqrKN+32IH0i7yX+ey43rEeQ=\ngithub.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=\ngithub.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=\ngithub.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE=\ngithub.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=\ngithub.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo=\ngithub.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=\ngithub.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=\ngithub.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=\ngithub.com/peterh/liner v1.1.0/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0=\ngithub.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=\ngithub.com/phpdave11/gofpdi v1.0.3/go.mod h1:B7ryN7q4MLItB8BDM5PJAplblJegAAcaI98viOZUihg=\ngithub.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=\ngithub.com/pierrec/lz4 v2.3.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=\ngithub.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=\ngithub.com/pkg/sftp v1.10.0/go.mod h1:NxmoDg/QLVWluQDUYG7XBZTLUpKeFa8e3aMf1BfjyHk=\ngithub.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ=\ngithub.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=\ngithub.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=\ngithub.com/pressly/chi v4.0.2+incompatible/go.mod h1:s/kslmeFE633XtTPvfX2olbs4ymzIHxGGXmEJ/AvPT8=\ngithub.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=\ngithub.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=\ngithub.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM=\ngithub.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=\ngithub.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=\ngithub.com/prometheus/client_golang v1.2.1/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U=\ngithub.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=\ngithub.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=\ngithub.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=\ngithub.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=\ngithub.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=\ngithub.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=\ngithub.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=\ngithub.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=\ngithub.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=\ngithub.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=\ngithub.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=\ngithub.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=\ngithub.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=\ngithub.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=\ngithub.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=\ngithub.com/prometheus/procfs v0.0.7/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=\ngithub.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=\ngithub.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=\ngithub.com/remyoudompheng/bigfft v0.0.0-20190512091148-babf20351dd7/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=\ngithub.com/renier/xmlrpc v0.0.0-20170708154548-ce4a1a486c03/go.mod h1:gRAiPF5C5Nd0eyyRdqIu9qTiFSoZzpTq727b5B8fkkU=\ngithub.com/renier/xmlrpc v0.0.0-20191022213033-ce560eccbd00/go.mod h1:gRAiPF5C5Nd0eyyRdqIu9qTiFSoZzpTq727b5B8fkkU=\ngithub.com/retailnext/hllpp v1.0.0/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc=\ngithub.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=\ngithub.com/rogpeppe/go-internal v1.0.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=\ngithub.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=\ngithub.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=\ngithub.com/rs/zerolog v1.4.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=\ngithub.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=\ngithub.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=\ngithub.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w=\ngithub.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk=\ngithub.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=\ngithub.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=\ngithub.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=\ngithub.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=\ngithub.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=\ngithub.com/sean-/conswriter v0.0.0-20180208195008-f5ae3917a627/go.mod h1:7zjs06qF79/FKAJpBvFx3P8Ww4UTIMAe+lpNXDHziac=\ngithub.com/sean-/pager v0.0.0-20180208200047-666be9bf53b5/go.mod h1:BeybITEsBEg6qbIiqJ6/Bqeq25bCLbL7YFmpaFfJDuM=\ngithub.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=\ngithub.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo=\ngithub.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs=\ngithub.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=\ngithub.com/serialx/hashring v0.0.0-20180504054112-49a4782e9908/go.mod h1:/yeG0My1xr/u+HZrFQ1tOQQQQrOawfyMUH13ai5brBc=\ngithub.com/shirou/gopsutil v0.0.0-20181107111621-48177ef5f880/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=\ngithub.com/shirou/gopsutil v2.19.10+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=\ngithub.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=\ngithub.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=\ngithub.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY=\ngithub.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM=\ngithub.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0=\ngithub.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=\ngithub.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=\ngithub.com/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw=\ngithub.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c/go.mod h1:8d3azKNyqcHP1GaQE/c6dDgjkgSx2BZ4IoEi4F1reUI=\ngithub.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU=\ngithub.com/shurcooL/highlight_go v0.0.0-20170515013102-78fb10f4a5f8/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag=\ngithub.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag=\ngithub.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9/go.mod h1:+rgNQw2P9ARFAs37qieuu7ohDNQ3gds9msbT2yn85sg=\ngithub.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50/go.mod h1:zPn1wHpTIePGnXSHpsVPWEktKXHr6+SS6x/IKRb7cpw=\ngithub.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc/go.mod h1:aYMfkZ6DWSJPJ6c4Wwz3QtW22G7mf/PEgaB9k/ik5+Y=\ngithub.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=\ngithub.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9/go.mod h1:919LwcH0M7/W4fcZ0/jy0qGght1GIhqyS/EgWGH2j5Q=\ngithub.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191/go.mod h1:e2qWDig5bLteJ4fwvDAc2NHzqFEthkqn7aOZAOpj+PQ=\ngithub.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241/go.mod h1:NPpHK2TI7iSaM0buivtFUc9offApnI0Alt/K8hcHy0I=\ngithub.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122/go.mod h1:b5uSkrEVM1jQUspwbixRBhaIjIzL2xazXp6kntxYle0=\ngithub.com/shurcooL/octicon v0.0.0-20180602230221-c42b0e3b24d9/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ=\ngithub.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ=\ngithub.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82/go.mod h1:TCR1lToEk4d2s07G3XGfz2QrgHXg4RJBvjrOozvoWfk=\ngithub.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=\ngithub.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4=\ngithub.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw=\ngithub.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=\ngithub.com/sirupsen/logrus v1.1.0/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A=\ngithub.com/sirupsen/logrus v1.1.1/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A=\ngithub.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=\ngithub.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=\ngithub.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=\ngithub.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=\ngithub.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=\ngithub.com/smartystreets/assertions v0.0.0-20180820201707-7c9eb446e3cf/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=\ngithub.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM=\ngithub.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=\ngithub.com/softlayer/softlayer-go v0.0.0-20180806151055-260589d94c7d/go.mod h1:Cw4GTlQccdRGSEf6KiMju767x0NEHE0YIVPJSaXjlsw=\ngithub.com/softlayer/softlayer-go v1.0.0/go.mod h1:Cw4GTlQccdRGSEf6KiMju767x0NEHE0YIVPJSaXjlsw=\ngithub.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=\ngithub.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=\ngithub.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE=\ngithub.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA=\ngithub.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=\ngithub.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=\ngithub.com/spf13/afero v1.2.0/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=\ngithub.com/spf13/afero v1.2.1/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=\ngithub.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=\ngithub.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg=\ngithub.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=\ngithub.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=\ngithub.com/spf13/cobra v0.0.4/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=\ngithub.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=\ngithub.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=\ngithub.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/spf13/viper v1.2.1/go.mod h1:P4AexN0a+C9tGAnUFNwDMYYZv3pjFuvmeiMyKRaNVlI=\ngithub.com/spf13/viper v1.3.0/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=\ngithub.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=\ngithub.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=\ngithub.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=\ngithub.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI=\ngithub.com/stathat/go v1.0.0/go.mod h1:+9Eg2szqkcOGWv6gfheJmBBsmq9Qf5KDbzy8/aYYR0c=\ngithub.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=\ngithub.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=\ngithub.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=\ngithub.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=\ngithub.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=\ngithub.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=\ngithub.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=\ngithub.com/tent/http-link-go v0.0.0-20130702225549-ac974c61c2f9/go.mod h1:RHkNRtSLfOK7qBTHaeSX1D6BNpI3qw7NTxsmNr4RvN8=\ngithub.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=\ngithub.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2/go.mod h1:WjeM0Oo1eNAjXGDx2yma7uG2XoyRZTq1uv3M/o7imD0=\ngithub.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPfx6jb1bBgRFjl5lytqVqZXEaeqWP8lTEao=\ngithub.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4=\ngithub.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=\ngithub.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=\ngithub.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31/go.mod h1:onvgF043R+lC5RZ8IT9rBXDaEDnpnw/Cl+HFiw+v/7Q=\ngithub.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=\ngithub.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=\ngithub.com/uber/jaeger-lib v1.5.0/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=\ngithub.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=\ngithub.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=\ngithub.com/unrolled/secure v0.0.0-20180918153822-f340ee86eb8b/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/unrolled/secure v0.0.0-20181005190816-ff9db2ff917f/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/unrolled/secure v0.0.0-20181022170031-4b6b7cf51606/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/unrolled/secure v0.0.0-20190103195806-76e6d4e9b90c/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA=\ngithub.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=\ngithub.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=\ngithub.com/vmware/govmomi v0.18.0/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU=\ngithub.com/vmware/govmomi v0.21.0/go.mod h1:zbnFoBQ9GIjs2RVETy8CNEpb+L+Lwkjs3XZUL0B3/m0=\ngithub.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728/go.mod h1:x9oS4Wk2s2u4tS29nEaDLdzvuHdB19CvSGJjPgkZJNk=\ngithub.com/xanzy/ssh-agent v0.2.0/go.mod h1:0NyE30eGUDliuLEHJgYte/zncp2zdTStcOnWhgSqHD8=\ngithub.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=\ngithub.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=\ngithub.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=\ngithub.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=\ngo.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=\ngo.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=\ngo.etcd.io/etcd v0.5.0-alpha.5.0.20190917205325-a14579fbfb1a/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=\ngo.etcd.io/etcd v3.3.13+incompatible/go.mod h1:yaeTdrJi5lOmYerz05bd8+V7KubZs8YSFZfzsF9A6aI=\ngo.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA=\ngo.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=\ngo.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=\ngo.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=\ngo.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=\ngo.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=\ngo.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=\ngo.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=\ngo.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=\ngo4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE=\ngolang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw=\ngolang.org/x/build v0.0.0-20190626175840-54405f243e45/go.mod h1:fYw7AShPAhGMdXqA9gRadk/CcMsvLlClpE5oBwnS3dM=\ngolang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20180910181607-0e37d006457b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181015023909-0c41d7ab0a0e/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181024171144-74cb1d3d52f4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181025113841-85e1b3f9139a/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181025213731-e84da0312774/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181106171534-e4dc69e5b2fd/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190122013713-64072686203f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190130090550-b01c7a725664/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190403202508-8e1b8d32e692/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=\ngolang.org/x/crypto v0.0.0-20190424203555-c05e17bb3b2d/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=\ngolang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20191117063200-497ca9f6d64f/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=\ngolang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20181112044915-a3060d491354/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=\ngolang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=\ngolang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=\ngolang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=\ngolang.org/x/image v0.0.0-20190507092727-e4e5bf290fec/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=\ngolang.org/x/image v0.0.0-20190622003408-7e034cad6442/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=\ngolang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=\ngolang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=\ngolang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=\ngolang.org/x/mobile v0.0.0-20190607214518-6fa95d984e88/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=\ngolang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=\ngolang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=\ngolang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=\ngolang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180611182652-db08ff08e862/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180816102801-aaf60122140d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180921000356-2f5d2388922f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180926154720-4dfa2610cdf3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181017193950-04a2e542c03f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181029044818-c44066c5c816/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181108082009-03003ca0c849/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181207154023-610586996380/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181213202711-891ebc4b82d6/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190119204137-ed066c81e75e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190206173232-65e2d4e15006/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190502183928-7f726cade0ab/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190514140710-3ec191127204/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=\ngolang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=\ngolang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20191003171128-d98b1b443823/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20191116160921-f9c825593386/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/oauth2 v0.0.0-20170807180024-9a379c6b3e95/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=\ngolang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=\ngolang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=\ngolang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=\ngolang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180903190138-2b024373dcd9/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180906133057-8cf3aee42992/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180921163948-d47a0f339242/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180927150500-dad3d9fb7b6e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181005133103-4497e2df6f9e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181011152604-fa43e7bc11ba/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181019084534-8f1d3d21f81b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181022134430-8a28ead16f52/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181024145615-5cd93ef61a7c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181025063200-d989b31c8746/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181026064943-731415f00dce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181030150119-7e31e0c00fa0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181106135930-3a76605856fd/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181206074257-70b957f3b65e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181213150753-586ba8c9bb14/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181213200352-4d1cda033e06/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190116161447-11f53e031339/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190122071731-054c452bb702/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190220154126-629670e5acc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190508220229-2d0786266e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190523142557-0e01d883c5c5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191118013547-6254a7c3cac6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=\ngolang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=\ngolang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181003024731-2f84ea8ef872/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181006002542-f60d9635b16a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181008205924-a2b3f7f249e9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181013182035-5e66757b835f/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181017214349-06f26fdaaa28/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181019005945-6adeb8aab2de/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181024171208-a2dc47679d30/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181026183834-f60e5f99f081/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181030151751-bb28844c46df/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181102223251-96e9e165b75e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181105230042-78dc5bac0cac/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181107215632-34b416bd17b3/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181109152631-138c20b93253/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181109202920-92d8274bd7b8/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181111003725-6d71ab8aade0/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181114190951-94339b83286c/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181119130350-139d099f6620/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181120060634-fc4f04983f62/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181122213734-04b5d21e00f1/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181127195227-b4e97c0ed882/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181127232545-e782529d0ddd/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181201035826-d0ca3933b724/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181203210056-e5f3ab76ea4b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181205224935-3576414c54a4/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181206194817-bcd4e47d0288/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181207183836-8bc39b988060/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181212172921-837e80568c09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181213190329-bbccd8cae4a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181221154417-3ad2d988d5e2/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190102213336-ca9055ed7d04/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190104182027-498d95493402/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190111214448-fc1d57b08d7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190118193359-16909d206f00/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190122202912-9c309ee22fab/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190124004107-78ee07aa9465/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190131142011-8dbcc66f33bb/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190206221403-44bcb96178d3/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190214204934-8dcb7bc8c7fe/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44=\ngolang.org/x/tools v0.0.0-20190219135230-f000d56b39dc/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44=\ngolang.org/x/tools v0.0.0-20190219185102-9394956cfdc5/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44=\ngolang.org/x/tools v0.0.0-20190221204921-83362c3779f5/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=\ngolang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=\ngolang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190315044204-8b67d361bba2/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190318200714-bb1270c20edf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190404132500-923d25813098/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190407030857-0fdf0c73855b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20190603152906-08e0b306e832/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190603231351-8aaa1484dc10/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190613204242-ed0dc450797f/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190624190245-7f2218787638/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190626204024-7ef8a99cf38d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=\ngolang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=\ngonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=\ngoogle.golang.org/api v0.0.0-20180829000535-087779f1d2c9/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=\ngoogle.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=\ngoogle.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=\ngoogle.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y=\ngoogle.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=\ngoogle.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=\ngoogle.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=\ngoogle.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=\ngoogle.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=\ngoogle.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=\ngoogle.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=\ngoogle.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=\ngoogle.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=\ngoogle.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg=\ngoogle.golang.org/genproto v0.0.0-20190201180003-4b09977fb922/go.mod h1:L3J43x8/uS+qIUoksaLKe6OS3nUKxOKuIFz1sl2/jx4=\ngoogle.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=\ngoogle.golang.org/genproto v0.0.0-20190626174449-989357319d63/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=\ngoogle.golang.org/genproto v0.0.0-20190701230453-710ae3a149df/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=\ngoogle.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=\ngoogle.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=\ngoogle.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=\ngoogle.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=\ngoogle.golang.org/genproto v0.0.0-20191115221424-83cc0476cb11/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=\ngoogle.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=\ngoogle.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio=\ngoogle.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=\ngoogle.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=\ngoogle.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=\ngoogle.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=\ngoogle.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=\ngoogle.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=\ngoogle.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=\ngoogle.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=\ngopkg.in/DataDog/dd-trace-go.v1 v1.19.0/go.mod h1:DVp8HmDh8PuTu2Z0fVVlBsyWaC++fzwVCaGWylTe3tg=\ngopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=\ngopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=\ngopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=\ngopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=\ngopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=\ngopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=\ngopkg.in/couchbase/gocbcore.v7 v7.1.11/go.mod h1:48d2Be0MxRtsyuvn+mWzqmoGUG9uA00ghopzOs148/E=\ngopkg.in/couchbaselabs/gocbconnstr.v1 v1.0.2/go.mod h1:ZjII0iKx4Veo6N6da+pEZu/ptNyKLg9QTVt7fFmR6sw=\ngopkg.in/couchbaselabs/jsonx.v1 v1.0.0/go.mod h1:oR201IRovxvLW/eISevH12/+MiKHtNQAKfcX8iWZvJY=\ngopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=\ngopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=\ngopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=\ngopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo=\ngopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=\ngopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=\ngopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw=\ngopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s=\ngopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=\ngopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=\ngopkg.in/mail.v2 v2.0.0-20180731213649-a0242b2233b4/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw=\ngopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U=\ngopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=\ngopkg.in/resty.v1 v1.9.1/go.mod h1:vo52Hzryw9PnPHcJfPsBiFW62XhNx5OczbV9y+IMpgc=\ngopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=\ngopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=\ngopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=\ngopkg.in/square/go-jose.v2 v2.4.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=\ngopkg.in/src-d/go-billy.v4 v4.2.1/go.mod h1:tm33zBoOwxjYHZIE+OV8bxTWFMJLrconzFMd38aARFk=\ngopkg.in/src-d/go-git-fixtures.v3 v3.1.1/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g=\ngopkg.in/src-d/go-git.v4 v4.8.1/go.mod h1:Vtut8izDyrM8BUVQnzJ+YvmNcem2J89EmfZYCkLokZk=\ngopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=\ngopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0=\ngopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=\ngopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg=\ngopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=\ngopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.5 h1:ymVxjfMaHvXD8RqPRmzHHsB3VvucivSkIAvJFDI5O3c=\ngopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngrpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o=\nhonnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20181108184350-ae8f1f9103cc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=\nistio.io/gogo-genproto v0.0.0-20190124151557-6d926a6e6feb/go.mod h1:eIDJ6jNk/IeJz6ODSksHl5Aiczy5JUq6vFhJWI5OtiI=\nk8s.io/api v0.0.0-20180806132203-61b11ee65332/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA=\nk8s.io/api v0.0.0-20190325185214-7544f9db76f6/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA=\nk8s.io/api v0.0.0-20190620084959-7cf5895f2711/go.mod h1:TBhBqb1AWbBQbW3XRusr7n7E4v2+5ZY8r8sAMnyFC5A=\nk8s.io/api v0.0.0-20191115135540-bbc9463b57e5/go.mod h1:iA/8arsvelvo4IDqIhX4IbjTEKBGgvsf2OraTuRtLFU=\nk8s.io/apimachinery v0.0.0-20180821005732-488889b0007f/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0=\nk8s.io/apimachinery v0.0.0-20190223001710-c182ff3b9841/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0=\nk8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719/go.mod h1:I4A+glKBHiTgiEjQiCCQfCAIcIMFGt291SmsvcrFzJA=\nk8s.io/apimachinery v0.0.0-20191115015347-3c7067801da2/go.mod h1:dXFS2zaQR8fyzuvRdJDHw2Aerij/yVGJSre0bZQSVJA=\nk8s.io/apimachinery v0.0.0-20191116203941-08e4eafd6d11/go.mod h1:dXFS2zaQR8fyzuvRdJDHw2Aerij/yVGJSre0bZQSVJA=\nk8s.io/client-go v0.0.0-20190620085101-78d2af792bab/go.mod h1:E95RaSlHr79aHaX0aGSwcPNfygDiPKOVXdmivCIZT0k=\nk8s.io/client-go v8.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=\nk8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=\nk8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=\nk8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=\nk8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=\nk8s.io/klog v0.3.1/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=\nk8s.io/klog v0.4.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=\nk8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=\nk8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc=\nk8s.io/kube-openapi v0.0.0-20190306001800-15615b16d372/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc=\nk8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=\nk8s.io/utils v0.0.0-20190221042446-c2654d5206da/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0=\nk8s.io/utils v0.0.0-20190529001817-6999998975a7/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=\nk8s.io/utils v0.0.0-20191114200735-6ca3b61696b6/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=\nrsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=\nsigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=\nsigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=\nsourcegraph.com/sourcegraph/appdash v0.0.0-20190107175209-d9ea5c54f7dc/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=\nsourcegraph.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67/go.mod h1:L5q+DGLGOQFpo1snNEkLOJT2d1YTW66rWNzatr3He1k=\nsourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck=\nsourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0=\n"
  },
  {
    "path": "server/src/gameproto/login.pb.go",
    "content": "// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: login.proto\n\npackage gameproto\n\nimport (\n\tfmt \"fmt\"\n\tproto \"github.com/gogo/protobuf/proto\"\n\tio \"io\"\n\tmath \"math\"\n\treflect \"reflect\"\n\tstrconv \"strconv\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package\n\ntype PlatformUser_PlatformType int32\n\nconst (\n\tEngine PlatformUser_PlatformType = 0\n\tDEVICE PlatformUser_PlatformType = 99\n)\n\nvar PlatformUser_PlatformType_name = map[int32]string{\n\t0:  \"Engine\",\n\t99: \"DEVICE\",\n}\n\nvar PlatformUser_PlatformType_value = map[string]int32{\n\t\"Engine\": 0,\n\t\"DEVICE\": 99,\n}\n\nfunc (PlatformUser_PlatformType) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_67c21677aa7f4e4f, []int{1, 0}\n}\n\n// http登录结果\ntype UserLoginResult struct {\n\tUid         uint32 `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tGateTcpAddr string `protobuf:\"bytes,2,opt,name=gateTcpAddr,proto3\" json:\"gateTcpAddr,omitempty\"`\n\tGateWsAddr  string `protobuf:\"bytes,3,opt,name=gateWsAddr,proto3\" json:\"gateWsAddr,omitempty\"`\n\tKey         string `protobuf:\"bytes,4,opt,name=key,proto3\" json:\"key,omitempty\"`\n\tResult      int32  `protobuf:\"varint,5,opt,name=result,proto3\" json:\"result,omitempty\"`\n}\n\nfunc (m *UserLoginResult) Reset()      { *m = UserLoginResult{} }\nfunc (*UserLoginResult) ProtoMessage() {}\nfunc (*UserLoginResult) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_67c21677aa7f4e4f, []int{0}\n}\nfunc (m *UserLoginResult) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UserLoginResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_UserLoginResult.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *UserLoginResult) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UserLoginResult.Merge(m, src)\n}\nfunc (m *UserLoginResult) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UserLoginResult) XXX_DiscardUnknown() {\n\txxx_messageInfo_UserLoginResult.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UserLoginResult proto.InternalMessageInfo\n\nfunc (m *UserLoginResult) GetUid() uint32 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\nfunc (m *UserLoginResult) GetGateTcpAddr() string {\n\tif m != nil {\n\t\treturn m.GateTcpAddr\n\t}\n\treturn \"\"\n}\n\nfunc (m *UserLoginResult) GetGateWsAddr() string {\n\tif m != nil {\n\t\treturn m.GateWsAddr\n\t}\n\treturn \"\"\n}\n\nfunc (m *UserLoginResult) GetKey() string {\n\tif m != nil {\n\t\treturn m.Key\n\t}\n\treturn \"\"\n}\n\nfunc (m *UserLoginResult) GetResult() int32 {\n\tif m != nil {\n\t\treturn m.Result\n\t}\n\treturn 0\n}\n\ntype PlatformUser struct {\n\tPlatformId      string                    `protobuf:\"bytes,1,opt,name=platformId,proto3\" json:\"platformId,omitempty\"`\n\tPlatform        PlatformUser_PlatformType `protobuf:\"varint,2,opt,name=platform,proto3,enum=gameproto.PlatformUser_PlatformType\" json:\"platform,omitempty\"`\n\tPlatformSession string                    `protobuf:\"bytes,3,opt,name=platformSession,proto3\" json:\"platformSession,omitempty\"`\n\tPlatformUid     int32                     `protobuf:\"varint,4,opt,name=platformUid,proto3\" json:\"platformUid,omitempty\"`\n\tServerID        int32                     `protobuf:\"varint,5,opt,name=serverID,proto3\" json:\"serverID,omitempty\"`\n\tChannelId       string                    `protobuf:\"bytes,6,opt,name=channelId,proto3\" json:\"channelId,omitempty\"`\n\tVersion         int32                     `protobuf:\"varint,7,opt,name=version,proto3\" json:\"version,omitempty\"`\n\tKey             string                    `protobuf:\"bytes,8,opt,name=key,proto3\" json:\"key,omitempty\"`\n}\n\nfunc (m *PlatformUser) Reset()      { *m = PlatformUser{} }\nfunc (*PlatformUser) ProtoMessage() {}\nfunc (*PlatformUser) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_67c21677aa7f4e4f, []int{1}\n}\nfunc (m *PlatformUser) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PlatformUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_PlatformUser.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *PlatformUser) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PlatformUser.Merge(m, src)\n}\nfunc (m *PlatformUser) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PlatformUser) XXX_DiscardUnknown() {\n\txxx_messageInfo_PlatformUser.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PlatformUser proto.InternalMessageInfo\n\nfunc (m *PlatformUser) GetPlatformId() string {\n\tif m != nil {\n\t\treturn m.PlatformId\n\t}\n\treturn \"\"\n}\n\nfunc (m *PlatformUser) GetPlatform() PlatformUser_PlatformType {\n\tif m != nil {\n\t\treturn m.Platform\n\t}\n\treturn Engine\n}\n\nfunc (m *PlatformUser) GetPlatformSession() string {\n\tif m != nil {\n\t\treturn m.PlatformSession\n\t}\n\treturn \"\"\n}\n\nfunc (m *PlatformUser) GetPlatformUid() int32 {\n\tif m != nil {\n\t\treturn m.PlatformUid\n\t}\n\treturn 0\n}\n\nfunc (m *PlatformUser) GetServerID() int32 {\n\tif m != nil {\n\t\treturn m.ServerID\n\t}\n\treturn 0\n}\n\nfunc (m *PlatformUser) GetChannelId() string {\n\tif m != nil {\n\t\treturn m.ChannelId\n\t}\n\treturn \"\"\n}\n\nfunc (m *PlatformUser) GetVersion() int32 {\n\tif m != nil {\n\t\treturn m.Version\n\t}\n\treturn 0\n}\n\nfunc (m *PlatformUser) GetKey() string {\n\tif m != nil {\n\t\treturn m.Key\n\t}\n\treturn \"\"\n}\n\ntype LoginReturn struct {\n\tErrCode    int32  `protobuf:\"varint,1,opt,name=errCode,proto3\" json:\"errCode,omitempty\"`\n\tServerTime int32  `protobuf:\"varint,2,opt,name=serverTime,proto3\" json:\"serverTime,omitempty\"`\n\tArgs       string `protobuf:\"bytes,3,opt,name=args,proto3\" json:\"args,omitempty\"`\n\tBFirst     int32  `protobuf:\"varint,4,opt,name=bFirst,proto3\" json:\"bFirst,omitempty\"`\n}\n\nfunc (m *LoginReturn) Reset()      { *m = LoginReturn{} }\nfunc (*LoginReturn) ProtoMessage() {}\nfunc (*LoginReturn) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_67c21677aa7f4e4f, []int{2}\n}\nfunc (m *LoginReturn) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LoginReturn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_LoginReturn.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *LoginReturn) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LoginReturn.Merge(m, src)\n}\nfunc (m *LoginReturn) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LoginReturn) XXX_DiscardUnknown() {\n\txxx_messageInfo_LoginReturn.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LoginReturn proto.InternalMessageInfo\n\nfunc (m *LoginReturn) GetErrCode() int32 {\n\tif m != nil {\n\t\treturn m.ErrCode\n\t}\n\treturn 0\n}\n\nfunc (m *LoginReturn) GetServerTime() int32 {\n\tif m != nil {\n\t\treturn m.ServerTime\n\t}\n\treturn 0\n}\n\nfunc (m *LoginReturn) GetArgs() string {\n\tif m != nil {\n\t\treturn m.Args\n\t}\n\treturn \"\"\n}\n\nfunc (m *LoginReturn) GetBFirst() int32 {\n\tif m != nil {\n\t\treturn m.BFirst\n\t}\n\treturn 0\n}\n\ntype LoginInfo struct {\n\tHeadId   int32  `protobuf:\"varint,1,opt,name=headId,proto3\" json:\"headId,omitempty\"`\n\tLevel    int32  `protobuf:\"varint,2,opt,name=level,proto3\" json:\"level,omitempty\"`\n\tExp      int64  `protobuf:\"varint,3,opt,name=exp,proto3\" json:\"exp,omitempty\"`\n\tNickname string `protobuf:\"bytes,4,opt,name=nickname,proto3\" json:\"nickname,omitempty\"`\n\tSex      int32  `protobuf:\"varint,5,opt,name=sex,proto3\" json:\"sex,omitempty\"`\n\tId       int64  `protobuf:\"varint,6,opt,name=id,proto3\" json:\"id,omitempty\"`\n\tGold     int32  `protobuf:\"varint,7,opt,name=gold,proto3\" json:\"gold,omitempty\"`\n\tDiamond  int32  `protobuf:\"varint,8,opt,name=diamond,proto3\" json:\"diamond,omitempty\"`\n}\n\nfunc (m *LoginInfo) Reset()      { *m = LoginInfo{} }\nfunc (*LoginInfo) ProtoMessage() {}\nfunc (*LoginInfo) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_67c21677aa7f4e4f, []int{3}\n}\nfunc (m *LoginInfo) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LoginInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_LoginInfo.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *LoginInfo) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LoginInfo.Merge(m, src)\n}\nfunc (m *LoginInfo) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LoginInfo) XXX_DiscardUnknown() {\n\txxx_messageInfo_LoginInfo.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LoginInfo proto.InternalMessageInfo\n\nfunc (m *LoginInfo) GetHeadId() int32 {\n\tif m != nil {\n\t\treturn m.HeadId\n\t}\n\treturn 0\n}\n\nfunc (m *LoginInfo) GetLevel() int32 {\n\tif m != nil {\n\t\treturn m.Level\n\t}\n\treturn 0\n}\n\nfunc (m *LoginInfo) GetExp() int64 {\n\tif m != nil {\n\t\treturn m.Exp\n\t}\n\treturn 0\n}\n\nfunc (m *LoginInfo) GetNickname() string {\n\tif m != nil {\n\t\treturn m.Nickname\n\t}\n\treturn \"\"\n}\n\nfunc (m *LoginInfo) GetSex() int32 {\n\tif m != nil {\n\t\treturn m.Sex\n\t}\n\treturn 0\n}\n\nfunc (m *LoginInfo) GetId() int64 {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn 0\n}\n\nfunc (m *LoginInfo) GetGold() int32 {\n\tif m != nil {\n\t\treturn m.Gold\n\t}\n\treturn 0\n}\n\nfunc (m *LoginInfo) GetDiamond() int32 {\n\tif m != nil {\n\t\treturn m.Diamond\n\t}\n\treturn 0\n}\n\nfunc init() {\n\tproto.RegisterEnum(\"gameproto.PlatformUser_PlatformType\", PlatformUser_PlatformType_name, PlatformUser_PlatformType_value)\n\tproto.RegisterType((*UserLoginResult)(nil), \"gameproto.UserLoginResult\")\n\tproto.RegisterType((*PlatformUser)(nil), \"gameproto.PlatformUser\")\n\tproto.RegisterType((*LoginReturn)(nil), \"gameproto.LoginReturn\")\n\tproto.RegisterType((*LoginInfo)(nil), \"gameproto.LoginInfo\")\n}\n\nfunc init() { proto.RegisterFile(\"login.proto\", fileDescriptor_67c21677aa7f4e4f) }\n\nvar fileDescriptor_67c21677aa7f4e4f = []byte{\n\t// 505 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x92, 0x41, 0x6e, 0xd3, 0x40,\n\t0x14, 0x86, 0x3d, 0x49, 0x9d, 0x26, 0x13, 0x68, 0xa3, 0x11, 0x42, 0x16, 0x42, 0xa3, 0x28, 0x42,\n\t0x28, 0xab, 0x2c, 0x80, 0x03, 0x00, 0x6d, 0x90, 0x22, 0xb1, 0x40, 0x43, 0x0a, 0x6b, 0x37, 0xf3,\n\t0xea, 0x8e, 0xea, 0x8c, 0xad, 0x19, 0x27, 0x6a, 0x77, 0xdc, 0x00, 0x8e, 0xc1, 0x0d, 0xb8, 0x02,\n\t0x62, 0x95, 0x65, 0x97, 0xc4, 0xd9, 0xb0, 0xec, 0x11, 0xd0, 0x9b, 0x8c, 0x5d, 0xab, 0xbb, 0xff,\n\t0xff, 0xfd, 0x3c, 0xef, 0xbd, 0x6f, 0x86, 0xf6, 0xd3, 0x2c, 0x51, 0x7a, 0x92, 0x9b, 0xac, 0xc8,\n\t0x58, 0x2f, 0x89, 0x97, 0xe0, 0xe4, 0xe8, 0x3b, 0xa1, 0xc7, 0x67, 0x16, 0xcc, 0x47, 0xfc, 0x2c,\n\t0xc0, 0xae, 0xd2, 0x82, 0x0d, 0x68, 0x7b, 0xa5, 0x64, 0x44, 0x86, 0x64, 0xfc, 0x58, 0xa0, 0x64,\n\t0x43, 0xda, 0x4f, 0xe2, 0x02, 0xe6, 0x8b, 0xfc, 0x9d, 0x94, 0x26, 0x6a, 0x0d, 0xc9, 0xb8, 0x27,\n\t0x9a, 0x11, 0xe3, 0x94, 0xa2, 0xfd, 0x6a, 0x5d, 0x41, 0xdb, 0x15, 0x34, 0x12, 0x3c, 0xf3, 0x0a,\n\t0x6e, 0xa2, 0x03, 0xf7, 0x01, 0x25, 0x7b, 0x4a, 0x3b, 0xc6, 0xf5, 0x8b, 0xc2, 0x21, 0x19, 0x87,\n\t0xc2, 0xbb, 0xd1, 0x9f, 0x16, 0x7d, 0xf4, 0x29, 0x8d, 0x8b, 0x8b, 0xcc, 0x2c, 0x71, 0x32, 0x3c,\n\t0x3a, 0xf7, 0x7e, 0xb6, 0x9f, 0xaa, 0x27, 0x1a, 0x09, 0x7b, 0x4b, 0xbb, 0x95, 0x73, 0x93, 0x1d,\n\t0xbd, 0x7a, 0x31, 0xa9, 0x17, 0x9c, 0x34, 0x8f, 0xaa, 0xcd, 0xfc, 0x26, 0x07, 0x51, 0xff, 0xc5,\n\t0xc6, 0xf4, 0xb8, 0xd2, 0x9f, 0xc1, 0x5a, 0x95, 0x69, 0xbf, 0xc1, 0xc3, 0x18, 0x41, 0x54, 0xd1,\n\t0x99, 0x92, 0x6e, 0x9d, 0x50, 0x34, 0x23, 0xf6, 0x8c, 0x76, 0x2d, 0x98, 0x35, 0x98, 0xd9, 0xa9,\n\t0x5f, 0xac, 0xf6, 0xec, 0x39, 0xed, 0x2d, 0x2e, 0x63, 0xad, 0x21, 0x9d, 0xc9, 0xa8, 0xe3, 0x3a,\n\t0xdc, 0x07, 0x2c, 0xa2, 0x87, 0x6b, 0x30, 0xae, 0xfb, 0xa1, 0xfb, 0xb1, 0xb2, 0x15, 0xbc, 0x6e,\n\t0x0d, 0x6f, 0xf4, 0xf2, 0x9e, 0x11, 0xee, 0xc2, 0x28, 0xed, 0x4c, 0x75, 0xa2, 0x34, 0x0c, 0x02,\n\t0xd4, 0xa7, 0xd3, 0x2f, 0xb3, 0x93, 0xe9, 0x60, 0x31, 0xb2, 0xb4, 0xef, 0x6f, 0xb6, 0x58, 0x19,\n\t0x8d, 0x2d, 0xc0, 0x98, 0x93, 0x4c, 0x82, 0xe3, 0x18, 0x8a, 0xca, 0x22, 0xe4, 0xfd, 0x98, 0x73,\n\t0xb5, 0x04, 0x87, 0x31, 0x14, 0x8d, 0x84, 0x31, 0x7a, 0x10, 0x9b, 0xc4, 0x7a, 0x2e, 0x4e, 0xe3,\n\t0x0d, 0x9e, 0x7f, 0x50, 0xc6, 0x16, 0x9e, 0x83, 0x77, 0xa3, 0x5f, 0x84, 0xf6, 0x5c, 0xd7, 0x99,\n\t0xbe, 0xc8, 0xb0, 0xea, 0x12, 0x62, 0xe9, 0xaf, 0x2e, 0x14, 0xde, 0xb1, 0x27, 0x34, 0x4c, 0x61,\n\t0x0d, 0xa9, 0x6f, 0xb6, 0x37, 0xb8, 0x2a, 0x5c, 0xe7, 0xae, 0x4d, 0x5b, 0xa0, 0x44, 0xa0, 0x5a,\n\t0x2d, 0xae, 0x74, 0xbc, 0x04, 0xff, 0x7c, 0x6a, 0x8f, 0xd5, 0x16, 0xae, 0x3d, 0x67, 0x94, 0xec,\n\t0x88, 0xb6, 0xd4, 0x9e, 0x6d, 0x5b, 0xb4, 0x94, 0xc4, 0xb9, 0x93, 0x2c, 0x95, 0x9e, 0xa8, 0xd3,\n\t0x48, 0x41, 0xaa, 0x78, 0x99, 0x69, 0xe9, 0x90, 0x86, 0xa2, 0xb2, 0xef, 0xdf, 0x6c, 0xb6, 0x3c,\n\t0xb8, 0xdd, 0xf2, 0xe0, 0x6e, 0xcb, 0xc9, 0xb7, 0x92, 0x93, 0x9f, 0x25, 0x27, 0xbf, 0x4b, 0x4e,\n\t0x36, 0x25, 0x27, 0x7f, 0x4b, 0x4e, 0xfe, 0x95, 0x3c, 0xb8, 0x2b, 0x39, 0xf9, 0xb1, 0xe3, 0xc1,\n\t0x66, 0xc7, 0x83, 0xdb, 0x1d, 0x0f, 0xce, 0x3b, 0xee, 0xa5, 0xbd, 0xfe, 0x1f, 0x00, 0x00, 0xff,\n\t0xff, 0xc8, 0x50, 0x5b, 0x72, 0x64, 0x03, 0x00, 0x00,\n}\n\nfunc (x PlatformUser_PlatformType) String() string {\n\ts, ok := PlatformUser_PlatformType_name[int32(x)]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(x))\n}\nfunc (this *UserLoginResult) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*UserLoginResult)\n\tif !ok {\n\t\tthat2, ok := that.(UserLoginResult)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\tif this.GateTcpAddr != that1.GateTcpAddr {\n\t\treturn false\n\t}\n\tif this.GateWsAddr != that1.GateWsAddr {\n\t\treturn false\n\t}\n\tif this.Key != that1.Key {\n\t\treturn false\n\t}\n\tif this.Result != that1.Result {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *PlatformUser) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*PlatformUser)\n\tif !ok {\n\t\tthat2, ok := that.(PlatformUser)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.PlatformId != that1.PlatformId {\n\t\treturn false\n\t}\n\tif this.Platform != that1.Platform {\n\t\treturn false\n\t}\n\tif this.PlatformSession != that1.PlatformSession {\n\t\treturn false\n\t}\n\tif this.PlatformUid != that1.PlatformUid {\n\t\treturn false\n\t}\n\tif this.ServerID != that1.ServerID {\n\t\treturn false\n\t}\n\tif this.ChannelId != that1.ChannelId {\n\t\treturn false\n\t}\n\tif this.Version != that1.Version {\n\t\treturn false\n\t}\n\tif this.Key != that1.Key {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *LoginReturn) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*LoginReturn)\n\tif !ok {\n\t\tthat2, ok := that.(LoginReturn)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.ErrCode != that1.ErrCode {\n\t\treturn false\n\t}\n\tif this.ServerTime != that1.ServerTime {\n\t\treturn false\n\t}\n\tif this.Args != that1.Args {\n\t\treturn false\n\t}\n\tif this.BFirst != that1.BFirst {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *LoginInfo) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*LoginInfo)\n\tif !ok {\n\t\tthat2, ok := that.(LoginInfo)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.HeadId != that1.HeadId {\n\t\treturn false\n\t}\n\tif this.Level != that1.Level {\n\t\treturn false\n\t}\n\tif this.Exp != that1.Exp {\n\t\treturn false\n\t}\n\tif this.Nickname != that1.Nickname {\n\t\treturn false\n\t}\n\tif this.Sex != that1.Sex {\n\t\treturn false\n\t}\n\tif this.Id != that1.Id {\n\t\treturn false\n\t}\n\tif this.Gold != that1.Gold {\n\t\treturn false\n\t}\n\tif this.Diamond != that1.Diamond {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *UserLoginResult) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 9)\n\ts = append(s, \"&gameproto.UserLoginResult{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"GateTcpAddr: \"+fmt.Sprintf(\"%#v\", this.GateTcpAddr)+\",\\n\")\n\ts = append(s, \"GateWsAddr: \"+fmt.Sprintf(\"%#v\", this.GateWsAddr)+\",\\n\")\n\ts = append(s, \"Key: \"+fmt.Sprintf(\"%#v\", this.Key)+\",\\n\")\n\ts = append(s, \"Result: \"+fmt.Sprintf(\"%#v\", this.Result)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *PlatformUser) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 12)\n\ts = append(s, \"&gameproto.PlatformUser{\")\n\ts = append(s, \"PlatformId: \"+fmt.Sprintf(\"%#v\", this.PlatformId)+\",\\n\")\n\ts = append(s, \"Platform: \"+fmt.Sprintf(\"%#v\", this.Platform)+\",\\n\")\n\ts = append(s, \"PlatformSession: \"+fmt.Sprintf(\"%#v\", this.PlatformSession)+\",\\n\")\n\ts = append(s, \"PlatformUid: \"+fmt.Sprintf(\"%#v\", this.PlatformUid)+\",\\n\")\n\ts = append(s, \"ServerID: \"+fmt.Sprintf(\"%#v\", this.ServerID)+\",\\n\")\n\ts = append(s, \"ChannelId: \"+fmt.Sprintf(\"%#v\", this.ChannelId)+\",\\n\")\n\ts = append(s, \"Version: \"+fmt.Sprintf(\"%#v\", this.Version)+\",\\n\")\n\ts = append(s, \"Key: \"+fmt.Sprintf(\"%#v\", this.Key)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *LoginReturn) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 8)\n\ts = append(s, \"&gameproto.LoginReturn{\")\n\ts = append(s, \"ErrCode: \"+fmt.Sprintf(\"%#v\", this.ErrCode)+\",\\n\")\n\ts = append(s, \"ServerTime: \"+fmt.Sprintf(\"%#v\", this.ServerTime)+\",\\n\")\n\ts = append(s, \"Args: \"+fmt.Sprintf(\"%#v\", this.Args)+\",\\n\")\n\ts = append(s, \"BFirst: \"+fmt.Sprintf(\"%#v\", this.BFirst)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *LoginInfo) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 12)\n\ts = append(s, \"&gameproto.LoginInfo{\")\n\ts = append(s, \"HeadId: \"+fmt.Sprintf(\"%#v\", this.HeadId)+\",\\n\")\n\ts = append(s, \"Level: \"+fmt.Sprintf(\"%#v\", this.Level)+\",\\n\")\n\ts = append(s, \"Exp: \"+fmt.Sprintf(\"%#v\", this.Exp)+\",\\n\")\n\ts = append(s, \"Nickname: \"+fmt.Sprintf(\"%#v\", this.Nickname)+\",\\n\")\n\ts = append(s, \"Sex: \"+fmt.Sprintf(\"%#v\", this.Sex)+\",\\n\")\n\ts = append(s, \"Id: \"+fmt.Sprintf(\"%#v\", this.Id)+\",\\n\")\n\ts = append(s, \"Gold: \"+fmt.Sprintf(\"%#v\", this.Gold)+\",\\n\")\n\ts = append(s, \"Diamond: \"+fmt.Sprintf(\"%#v\", this.Diamond)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc valueToGoStringLogin(v interface{}, typ string) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"func(v %v) *%v { return &v } ( %#v )\", typ, typ, pv)\n}\nfunc (m *UserLoginResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserLoginResult) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.Uid))\n\t}\n\tif len(m.GateTcpAddr) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(len(m.GateTcpAddr)))\n\t\ti += copy(dAtA[i:], m.GateTcpAddr)\n\t}\n\tif len(m.GateWsAddr) > 0 {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(len(m.GateWsAddr)))\n\t\ti += copy(dAtA[i:], m.GateWsAddr)\n\t}\n\tif len(m.Key) > 0 {\n\t\tdAtA[i] = 0x22\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(len(m.Key)))\n\t\ti += copy(dAtA[i:], m.Key)\n\t}\n\tif m.Result != 0 {\n\t\tdAtA[i] = 0x28\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.Result))\n\t}\n\treturn i, nil\n}\n\nfunc (m *PlatformUser) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PlatformUser) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PlatformId) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(len(m.PlatformId)))\n\t\ti += copy(dAtA[i:], m.PlatformId)\n\t}\n\tif m.Platform != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.Platform))\n\t}\n\tif len(m.PlatformSession) > 0 {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(len(m.PlatformSession)))\n\t\ti += copy(dAtA[i:], m.PlatformSession)\n\t}\n\tif m.PlatformUid != 0 {\n\t\tdAtA[i] = 0x20\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.PlatformUid))\n\t}\n\tif m.ServerID != 0 {\n\t\tdAtA[i] = 0x28\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.ServerID))\n\t}\n\tif len(m.ChannelId) > 0 {\n\t\tdAtA[i] = 0x32\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(len(m.ChannelId)))\n\t\ti += copy(dAtA[i:], m.ChannelId)\n\t}\n\tif m.Version != 0 {\n\t\tdAtA[i] = 0x38\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.Version))\n\t}\n\tif len(m.Key) > 0 {\n\t\tdAtA[i] = 0x42\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(len(m.Key)))\n\t\ti += copy(dAtA[i:], m.Key)\n\t}\n\treturn i, nil\n}\n\nfunc (m *LoginReturn) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LoginReturn) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ErrCode != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.ErrCode))\n\t}\n\tif m.ServerTime != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.ServerTime))\n\t}\n\tif len(m.Args) > 0 {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(len(m.Args)))\n\t\ti += copy(dAtA[i:], m.Args)\n\t}\n\tif m.BFirst != 0 {\n\t\tdAtA[i] = 0x20\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.BFirst))\n\t}\n\treturn i, nil\n}\n\nfunc (m *LoginInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LoginInfo) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.HeadId != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.HeadId))\n\t}\n\tif m.Level != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.Level))\n\t}\n\tif m.Exp != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.Exp))\n\t}\n\tif len(m.Nickname) > 0 {\n\t\tdAtA[i] = 0x22\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(len(m.Nickname)))\n\t\ti += copy(dAtA[i:], m.Nickname)\n\t}\n\tif m.Sex != 0 {\n\t\tdAtA[i] = 0x28\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.Sex))\n\t}\n\tif m.Id != 0 {\n\t\tdAtA[i] = 0x30\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.Id))\n\t}\n\tif m.Gold != 0 {\n\t\tdAtA[i] = 0x38\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.Gold))\n\t}\n\tif m.Diamond != 0 {\n\t\tdAtA[i] = 0x40\n\t\ti++\n\t\ti = encodeVarintLogin(dAtA, i, uint64(m.Diamond))\n\t}\n\treturn i, nil\n}\n\nfunc encodeVarintLogin(dAtA []byte, offset int, v uint64) int {\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn offset + 1\n}\nfunc (m *UserLoginResult) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovLogin(uint64(m.Uid))\n\t}\n\tl = len(m.GateTcpAddr)\n\tif l > 0 {\n\t\tn += 1 + l + sovLogin(uint64(l))\n\t}\n\tl = len(m.GateWsAddr)\n\tif l > 0 {\n\t\tn += 1 + l + sovLogin(uint64(l))\n\t}\n\tl = len(m.Key)\n\tif l > 0 {\n\t\tn += 1 + l + sovLogin(uint64(l))\n\t}\n\tif m.Result != 0 {\n\t\tn += 1 + sovLogin(uint64(m.Result))\n\t}\n\treturn n\n}\n\nfunc (m *PlatformUser) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PlatformId)\n\tif l > 0 {\n\t\tn += 1 + l + sovLogin(uint64(l))\n\t}\n\tif m.Platform != 0 {\n\t\tn += 1 + sovLogin(uint64(m.Platform))\n\t}\n\tl = len(m.PlatformSession)\n\tif l > 0 {\n\t\tn += 1 + l + sovLogin(uint64(l))\n\t}\n\tif m.PlatformUid != 0 {\n\t\tn += 1 + sovLogin(uint64(m.PlatformUid))\n\t}\n\tif m.ServerID != 0 {\n\t\tn += 1 + sovLogin(uint64(m.ServerID))\n\t}\n\tl = len(m.ChannelId)\n\tif l > 0 {\n\t\tn += 1 + l + sovLogin(uint64(l))\n\t}\n\tif m.Version != 0 {\n\t\tn += 1 + sovLogin(uint64(m.Version))\n\t}\n\tl = len(m.Key)\n\tif l > 0 {\n\t\tn += 1 + l + sovLogin(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LoginReturn) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ErrCode != 0 {\n\t\tn += 1 + sovLogin(uint64(m.ErrCode))\n\t}\n\tif m.ServerTime != 0 {\n\t\tn += 1 + sovLogin(uint64(m.ServerTime))\n\t}\n\tl = len(m.Args)\n\tif l > 0 {\n\t\tn += 1 + l + sovLogin(uint64(l))\n\t}\n\tif m.BFirst != 0 {\n\t\tn += 1 + sovLogin(uint64(m.BFirst))\n\t}\n\treturn n\n}\n\nfunc (m *LoginInfo) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.HeadId != 0 {\n\t\tn += 1 + sovLogin(uint64(m.HeadId))\n\t}\n\tif m.Level != 0 {\n\t\tn += 1 + sovLogin(uint64(m.Level))\n\t}\n\tif m.Exp != 0 {\n\t\tn += 1 + sovLogin(uint64(m.Exp))\n\t}\n\tl = len(m.Nickname)\n\tif l > 0 {\n\t\tn += 1 + l + sovLogin(uint64(l))\n\t}\n\tif m.Sex != 0 {\n\t\tn += 1 + sovLogin(uint64(m.Sex))\n\t}\n\tif m.Id != 0 {\n\t\tn += 1 + sovLogin(uint64(m.Id))\n\t}\n\tif m.Gold != 0 {\n\t\tn += 1 + sovLogin(uint64(m.Gold))\n\t}\n\tif m.Diamond != 0 {\n\t\tn += 1 + sovLogin(uint64(m.Diamond))\n\t}\n\treturn n\n}\n\nfunc sovLogin(x uint64) (n int) {\n\tfor {\n\t\tn++\n\t\tx >>= 7\n\t\tif x == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn n\n}\nfunc sozLogin(x uint64) (n int) {\n\treturn sovLogin(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *UserLoginResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UserLoginResult{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`GateTcpAddr:` + fmt.Sprintf(\"%v\", this.GateTcpAddr) + `,`,\n\t\t`GateWsAddr:` + fmt.Sprintf(\"%v\", this.GateWsAddr) + `,`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Result:` + fmt.Sprintf(\"%v\", this.Result) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PlatformUser) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PlatformUser{`,\n\t\t`PlatformId:` + fmt.Sprintf(\"%v\", this.PlatformId) + `,`,\n\t\t`Platform:` + fmt.Sprintf(\"%v\", this.Platform) + `,`,\n\t\t`PlatformSession:` + fmt.Sprintf(\"%v\", this.PlatformSession) + `,`,\n\t\t`PlatformUid:` + fmt.Sprintf(\"%v\", this.PlatformUid) + `,`,\n\t\t`ServerID:` + fmt.Sprintf(\"%v\", this.ServerID) + `,`,\n\t\t`ChannelId:` + fmt.Sprintf(\"%v\", this.ChannelId) + `,`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LoginReturn) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LoginReturn{`,\n\t\t`ErrCode:` + fmt.Sprintf(\"%v\", this.ErrCode) + `,`,\n\t\t`ServerTime:` + fmt.Sprintf(\"%v\", this.ServerTime) + `,`,\n\t\t`Args:` + fmt.Sprintf(\"%v\", this.Args) + `,`,\n\t\t`BFirst:` + fmt.Sprintf(\"%v\", this.BFirst) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LoginInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LoginInfo{`,\n\t\t`HeadId:` + fmt.Sprintf(\"%v\", this.HeadId) + `,`,\n\t\t`Level:` + fmt.Sprintf(\"%v\", this.Level) + `,`,\n\t\t`Exp:` + fmt.Sprintf(\"%v\", this.Exp) + `,`,\n\t\t`Nickname:` + fmt.Sprintf(\"%v\", this.Nickname) + `,`,\n\t\t`Sex:` + fmt.Sprintf(\"%v\", this.Sex) + `,`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`Gold:` + fmt.Sprintf(\"%v\", this.Gold) + `,`,\n\t\t`Diamond:` + fmt.Sprintf(\"%v\", this.Diamond) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringLogin(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *UserLoginResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserLoginResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserLoginResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= uint32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GateTcpAddr\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.GateTcpAddr = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GateWsAddr\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.GateWsAddr = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Result\", wireType)\n\t\t\t}\n\t\t\tm.Result = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Result |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipLogin(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PlatformUser) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PlatformUser: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PlatformUser: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PlatformId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PlatformId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Platform\", wireType)\n\t\t\t}\n\t\t\tm.Platform = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Platform |= PlatformUser_PlatformType(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PlatformSession\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PlatformSession = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PlatformUid\", wireType)\n\t\t\t}\n\t\t\tm.PlatformUid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.PlatformUid |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServerID\", wireType)\n\t\t\t}\n\t\t\tm.ServerID = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ServerID |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ChannelId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ChannelId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tm.Version = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Version |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipLogin(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LoginReturn) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LoginReturn: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LoginReturn: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ErrCode\", wireType)\n\t\t\t}\n\t\t\tm.ErrCode = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ErrCode |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServerTime\", wireType)\n\t\t\t}\n\t\t\tm.ServerTime = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ServerTime |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Args\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Args = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BFirst\", wireType)\n\t\t\t}\n\t\t\tm.BFirst = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.BFirst |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipLogin(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LoginInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LoginInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LoginInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HeadId\", wireType)\n\t\t\t}\n\t\t\tm.HeadId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HeadId |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Level\", wireType)\n\t\t\t}\n\t\t\tm.Level = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Level |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Exp\", wireType)\n\t\t\t}\n\t\t\tm.Exp = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Exp |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Nickname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Nickname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Sex\", wireType)\n\t\t\t}\n\t\t\tm.Sex = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Sex |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tm.Id = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Id |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Gold\", wireType)\n\t\t\t}\n\t\t\tm.Gold = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Gold |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Diamond\", wireType)\n\t\t\t}\n\t\t\tm.Diamond = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Diamond |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipLogin(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipLogin(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowLogin\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\t\treturn iNdEx, nil\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowLogin\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthLogin\n\t\t\t}\n\t\t\tiNdEx += length\n\t\t\tif iNdEx < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthLogin\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 3:\n\t\t\tfor {\n\t\t\t\tvar innerWire uint64\n\t\t\t\tvar start int = iNdEx\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn 0, ErrIntOverflowLogin\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tinnerWire |= (uint64(b) & 0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinnerWireType := int(innerWire & 0x7)\n\t\t\t\tif innerWireType == 4 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tnext, err := skipLogin(dAtA[start:])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\tiNdEx = start + next\n\t\t\t\tif iNdEx < 0 {\n\t\t\t\t\treturn 0, ErrInvalidLengthLogin\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 4:\n\t\t\treturn iNdEx, nil\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\t\treturn iNdEx, nil\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t}\n\tpanic(\"unreachable\")\n}\n\nvar (\n\tErrInvalidLengthLogin = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowLogin   = fmt.Errorf(\"proto: integer overflow\")\n)\n"
  },
  {
    "path": "server/src/gameproto/msgs/protos.pb.go",
    "content": "// Code generated by protoc-gen-gogo.\n// source: protos.proto\n// DO NOT EDIT!\n\n/*\n\tPackage msgs is a generated protocol buffer package.\n\n\tIt is generated from these files:\n\t\tprotos.proto\n\t\tshare.proto\n\n\tIt has these top-level messages:\n\t\tCheckLogin\n\t\tHeartBeatMsg\n\t\tC2S_ShopBuyMsg\n\t\tS2C_ShopBuyMsg\n\t\tFrameMsg\n\t\tFrameMsgJson\n\t\tFrameMsgReq\n\t\tFrameMsgRep\n\t\tUnicastFrameMsg\n\t\tMulticastFrameMsg\n\t\tBroadcastFrameMsg\n\t\tBroadcastFrameMsgJson\n\t\tAddAgentToParent\n\t\tRemoveAgentFromParent\n\t\tNewChild\n\t\tNewChildResult\n\t\tConnect\n\t\tConnected\n\t\tSpawnAgent\n\t\tServiceValue\n\t\tAddService\n\t\tAddServiceRep\n\t\tSendOK\n\t\tRemoveService\n\t\tApplyService\n\t\tApplyServiceResult\n\t\tGetTypeServices\n\t\tGetTypeServicesResult\n\t\tUploadService\n\t\tUserLogin\n\t\tGetSessionInfo\n\t\tGetSessionInfoByName\n\t\tGetSessionInfoResult\n\t\tClientDisconnect\n\t\tReceviceClientMsg\n\t\tUserLeave\n\t\tKick\n\t\tServerCheckLogin\n\t\tUserBindServer\n\t\tUserBaseInfo\n\t\tCheckLoginResult\n\t\tCreatePlayer\n\t\tCreatePlayerResult\n\t\tPlayerOutline\n\t\tTick\n\t\tTimeFlush\n\t\tBattleRoomInfo\n\t\tGetLobbyInfo\n\t\tLobbyQueueData\n\t\tBattleServerData\n\t\tGetLobbyInfoResult\n\t\tGetBattleServer\n\t\tGetBattleServerResult\n\t\tJoinBattleQueue\n\t\tJoinBattleQueueResult\n\t\tLeaveBattleQueue\n\t\tMatchBattle\n\t\tCreateBattlePlayer\n\t\tCreateBattle\n\t\tCreateBattleRep\n\t\tJoinBattle\n\t\tAttachBattle\n\t\tDetachBattle\n\t\tRecoverBattle\n\t\tRecoverBattleRep\n*/\npackage msgs\n\nimport proto \"github.com/gogo/protobuf/proto\"\nimport fmt \"fmt\"\nimport math \"math\"\nimport actor \"github.com/AsynkronIT/protoactor-go/actor\"\n\nimport strconv \"strconv\"\n\nimport bytes \"bytes\"\n\nimport strings \"strings\"\nimport reflect \"reflect\"\n\nimport io \"io\"\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package\n\n// =========shop=============\ntype ShopMsgType int32\n\nconst (\n\tC2S_ShopBuy  ShopMsgType = 0\n\tS2C_ShopBuy  ShopMsgType = 1\n\tC2S_ShopSell ShopMsgType = 2\n\tS2C_ShopSell ShopMsgType = 3\n)\n\nvar ShopMsgType_name = map[int32]string{\n\t0: \"C2S_ShopBuy\",\n\t1: \"S2C_ShopBuy\",\n\t2: \"C2S_ShopSell\",\n\t3: \"S2C_ShopSell\",\n}\nvar ShopMsgType_value = map[string]int32{\n\t\"C2S_ShopBuy\":  0,\n\t\"S2C_ShopBuy\":  1,\n\t\"C2S_ShopSell\": 2,\n\t\"S2C_ShopSell\": 3,\n}\n\nfunc (ShopMsgType) EnumDescriptor() ([]byte, []int) { return fileDescriptorProtos, []int{0} }\n\n// =========bag==============\ntype BagMsgType int32\n\nconst (\n\tS2C_Bag BagMsgType = 0\n)\n\nvar BagMsgType_name = map[int32]string{\n\t0: \"S2C_Bag\",\n}\nvar BagMsgType_value = map[string]int32{\n\t\"S2C_Bag\": 0,\n}\n\nfunc (BagMsgType) EnumDescriptor() ([]byte, []int) { return fileDescriptorProtos, []int{1} }\n\n// 服务器状态\ntype ServiceState int32\n\nconst (\n\tServiceStateFree ServiceState = 0\n\tServiceFull      ServiceState = 1\n\tServiceStop      ServiceState = 2\n)\n\nvar ServiceState_name = map[int32]string{\n\t0: \"ServiceStateFree\",\n\t1: \"ServiceFull\",\n\t2: \"ServiceStop\",\n}\nvar ServiceState_value = map[string]int32{\n\t\"ServiceStateFree\": 0,\n\t\"ServiceFull\":      1,\n\t\"ServiceStop\":      2,\n}\n\nfunc (ServiceState) EnumDescriptor() ([]byte, []int) { return fileDescriptorProtos, []int{2} }\n\n// ==========Login===========\n// 登入游戏验证\ntype CheckLogin struct {\n\tUid uint64 `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tKey string `protobuf:\"bytes,2,opt,name=key,proto3\" json:\"key,omitempty\"`\n}\n\nfunc (m *CheckLogin) Reset()                    { *m = CheckLogin{} }\nfunc (*CheckLogin) ProtoMessage()               {}\nfunc (*CheckLogin) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{0} }\n\nfunc (m *CheckLogin) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\nfunc (m *CheckLogin) GetKey() string {\n\tif m != nil {\n\t\treturn m.Key\n\t}\n\treturn \"\"\n}\n\ntype HeartBeatMsg struct {\n}\n\nfunc (m *HeartBeatMsg) Reset()                    { *m = HeartBeatMsg{} }\nfunc (*HeartBeatMsg) ProtoMessage()               {}\nfunc (*HeartBeatMsg) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{1} }\n\ntype C2S_ShopBuyMsg struct {\n\tItemId uint32 `protobuf:\"varint,1,opt,name=itemId,proto3\" json:\"itemId,omitempty\"`\n}\n\nfunc (m *C2S_ShopBuyMsg) Reset()                    { *m = C2S_ShopBuyMsg{} }\nfunc (*C2S_ShopBuyMsg) ProtoMessage()               {}\nfunc (*C2S_ShopBuyMsg) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{2} }\n\nfunc (m *C2S_ShopBuyMsg) GetItemId() uint32 {\n\tif m != nil {\n\t\treturn m.ItemId\n\t}\n\treturn 0\n}\n\ntype S2C_ShopBuyMsg struct {\n\tItemId uint32      `protobuf:\"varint,1,opt,name=itemId,proto3\" json:\"itemId,omitempty\"`\n\tResult GAErrorCode `protobuf:\"varint,2,opt,name=result,proto3,enum=msgs.GAErrorCode\" json:\"result,omitempty\"`\n}\n\nfunc (m *S2C_ShopBuyMsg) Reset()                    { *m = S2C_ShopBuyMsg{} }\nfunc (*S2C_ShopBuyMsg) ProtoMessage()               {}\nfunc (*S2C_ShopBuyMsg) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{3} }\n\nfunc (m *S2C_ShopBuyMsg) GetItemId() uint32 {\n\tif m != nil {\n\t\treturn m.ItemId\n\t}\n\treturn 0\n}\n\nfunc (m *S2C_ShopBuyMsg) GetResult() GAErrorCode {\n\tif m != nil {\n\t\treturn m.Result\n\t}\n\treturn OK\n}\n\n// 客户端消息转rpc通用消息\ntype FrameMsg struct {\n\tChannel ChannelType `protobuf:\"varint,1,opt,name=channel,proto3,enum=msgs.ChannelType\" json:\"channel,omitempty\"`\n\tMsgId   uint32      `protobuf:\"varint,2,opt,name=msgId,proto3\" json:\"msgId,omitempty\"`\n\tRawData []byte      `protobuf:\"bytes,3,opt,name=rawData,proto3\" json:\"rawData,omitempty\"`\n\tUid     uint64      `protobuf:\"varint,4,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n}\n\nfunc (m *FrameMsg) Reset()                    { *m = FrameMsg{} }\nfunc (*FrameMsg) ProtoMessage()               {}\nfunc (*FrameMsg) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{4} }\n\nfunc (m *FrameMsg) GetChannel() ChannelType {\n\tif m != nil {\n\t\treturn m.Channel\n\t}\n\treturn Login\n}\n\nfunc (m *FrameMsg) GetMsgId() uint32 {\n\tif m != nil {\n\t\treturn m.MsgId\n\t}\n\treturn 0\n}\n\nfunc (m *FrameMsg) GetRawData() []byte {\n\tif m != nil {\n\t\treturn m.RawData\n\t}\n\treturn nil\n}\n\nfunc (m *FrameMsg) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\ntype FrameMsgJson struct {\n\tChannel ChannelType `protobuf:\"varint,1,opt,name=channel,proto3,enum=msgs.ChannelType\" json:\"channel,omitempty\"`\n\tMsgId   string      `protobuf:\"bytes,2,opt,name=msgId,proto3\" json:\"msgId,omitempty\"`\n\tRawData []byte      `protobuf:\"bytes,3,opt,name=rawData,proto3\" json:\"rawData,omitempty\"`\n\tUid     uint64      `protobuf:\"varint,4,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n}\n\nfunc (m *FrameMsgJson) Reset()                    { *m = FrameMsgJson{} }\nfunc (*FrameMsgJson) ProtoMessage()               {}\nfunc (*FrameMsgJson) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{5} }\n\nfunc (m *FrameMsgJson) GetChannel() ChannelType {\n\tif m != nil {\n\t\treturn m.Channel\n\t}\n\treturn Login\n}\n\nfunc (m *FrameMsgJson) GetMsgId() string {\n\tif m != nil {\n\t\treturn m.MsgId\n\t}\n\treturn \"\"\n}\n\nfunc (m *FrameMsgJson) GetRawData() []byte {\n\tif m != nil {\n\t\treturn m.RawData\n\t}\n\treturn nil\n}\n\nfunc (m *FrameMsgJson) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\ntype FrameMsgReq struct {\n\tFrame *FrameMsg `protobuf:\"bytes,1,opt,name=frame\" json:\"frame,omitempty\"`\n\tCno   uint32    `protobuf:\"varint,2,opt,name=cno,proto3\" json:\"cno,omitempty\"`\n}\n\nfunc (m *FrameMsgReq) Reset()                    { *m = FrameMsgReq{} }\nfunc (*FrameMsgReq) ProtoMessage()               {}\nfunc (*FrameMsgReq) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{6} }\n\nfunc (m *FrameMsgReq) GetFrame() *FrameMsg {\n\tif m != nil {\n\t\treturn m.Frame\n\t}\n\treturn nil\n}\n\nfunc (m *FrameMsgReq) GetCno() uint32 {\n\tif m != nil {\n\t\treturn m.Cno\n\t}\n\treturn 0\n}\n\ntype FrameMsgRep struct {\n\t// uint32 msgId  = 1;\n\t// uint32 cno  = 2;\n\tErrCode GAErrorCode `protobuf:\"varint,1,opt,name=errCode,proto3,enum=msgs.GAErrorCode\" json:\"errCode,omitempty\"`\n}\n\nfunc (m *FrameMsgRep) Reset()                    { *m = FrameMsgRep{} }\nfunc (*FrameMsgRep) ProtoMessage()               {}\nfunc (*FrameMsgRep) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{7} }\n\nfunc (m *FrameMsgRep) GetErrCode() GAErrorCode {\n\tif m != nil {\n\t\treturn m.ErrCode\n\t}\n\treturn OK\n}\n\n// gate发送协议\n// 单\ntype UnicastFrameMsg struct {\n\tFrameMsg *FrameMsg `protobuf:\"bytes,1,opt,name=frameMsg\" json:\"frameMsg,omitempty\"`\n\tTarget   uint64    `protobuf:\"varint,2,opt,name=target,proto3\" json:\"target,omitempty\"`\n}\n\nfunc (m *UnicastFrameMsg) Reset()                    { *m = UnicastFrameMsg{} }\nfunc (*UnicastFrameMsg) ProtoMessage()               {}\nfunc (*UnicastFrameMsg) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{8} }\n\nfunc (m *UnicastFrameMsg) GetFrameMsg() *FrameMsg {\n\tif m != nil {\n\t\treturn m.FrameMsg\n\t}\n\treturn nil\n}\n\nfunc (m *UnicastFrameMsg) GetTarget() uint64 {\n\tif m != nil {\n\t\treturn m.Target\n\t}\n\treturn 0\n}\n\n// 组\ntype MulticastFrameMsg struct {\n\tFrameMsg *FrameMsg `protobuf:\"bytes,1,opt,name=frameMsg\" json:\"frameMsg,omitempty\"`\n\tTargets  []uint64  `protobuf:\"varint,2,rep,packed,name=targets\" json:\"targets,omitempty\"`\n}\n\nfunc (m *MulticastFrameMsg) Reset()                    { *m = MulticastFrameMsg{} }\nfunc (*MulticastFrameMsg) ProtoMessage()               {}\nfunc (*MulticastFrameMsg) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{9} }\n\nfunc (m *MulticastFrameMsg) GetFrameMsg() *FrameMsg {\n\tif m != nil {\n\t\treturn m.FrameMsg\n\t}\n\treturn nil\n}\n\nfunc (m *MulticastFrameMsg) GetTargets() []uint64 {\n\tif m != nil {\n\t\treturn m.Targets\n\t}\n\treturn nil\n}\n\n// 广播\ntype BroadcastFrameMsg struct {\n\tFrameMsg *FrameMsg `protobuf:\"bytes,1,opt,name=frameMsg\" json:\"frameMsg,omitempty\"`\n}\n\nfunc (m *BroadcastFrameMsg) Reset()                    { *m = BroadcastFrameMsg{} }\nfunc (*BroadcastFrameMsg) ProtoMessage()               {}\nfunc (*BroadcastFrameMsg) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{10} }\n\nfunc (m *BroadcastFrameMsg) GetFrameMsg() *FrameMsg {\n\tif m != nil {\n\t\treturn m.FrameMsg\n\t}\n\treturn nil\n}\n\ntype BroadcastFrameMsgJson struct {\n\tFrameMsg *FrameMsgJson `protobuf:\"bytes,1,opt,name=frameMsg\" json:\"frameMsg,omitempty\"`\n}\n\nfunc (m *BroadcastFrameMsgJson) Reset()                    { *m = BroadcastFrameMsgJson{} }\nfunc (*BroadcastFrameMsgJson) ProtoMessage()               {}\nfunc (*BroadcastFrameMsgJson) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{11} }\n\nfunc (m *BroadcastFrameMsgJson) GetFrameMsg() *FrameMsgJson {\n\tif m != nil {\n\t\treturn m.FrameMsg\n\t}\n\treturn nil\n}\n\n// 加入到管理\ntype AddAgentToParent struct {\n\tUid    uint64     `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tSender *actor.PID `protobuf:\"bytes,2,opt,name=sender\" json:\"sender,omitempty\"`\n}\n\nfunc (m *AddAgentToParent) Reset()                    { *m = AddAgentToParent{} }\nfunc (*AddAgentToParent) ProtoMessage()               {}\nfunc (*AddAgentToParent) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{12} }\n\nfunc (m *AddAgentToParent) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\nfunc (m *AddAgentToParent) GetSender() *actor.PID {\n\tif m != nil {\n\t\treturn m.Sender\n\t}\n\treturn nil\n}\n\n// 移除管理\ntype RemoveAgentFromParent struct {\n\tUid uint64 `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n}\n\nfunc (m *RemoveAgentFromParent) Reset()                    { *m = RemoveAgentFromParent{} }\nfunc (*RemoveAgentFromParent) ProtoMessage()               {}\nfunc (*RemoveAgentFromParent) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{13} }\n\nfunc (m *RemoveAgentFromParent) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\ntype NewChild struct {\n}\n\nfunc (m *NewChild) Reset()                    { *m = NewChild{} }\nfunc (*NewChild) ProtoMessage()               {}\nfunc (*NewChild) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{14} }\n\ntype NewChildResult struct {\n\tPid *actor.PID `protobuf:\"bytes,1,opt,name=pid\" json:\"pid,omitempty\"`\n}\n\nfunc (m *NewChildResult) Reset()                    { *m = NewChildResult{} }\nfunc (*NewChildResult) ProtoMessage()               {}\nfunc (*NewChildResult) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{15} }\n\nfunc (m *NewChildResult) GetPid() *actor.PID {\n\tif m != nil {\n\t\treturn m.Pid\n\t}\n\treturn nil\n}\n\ntype Connect struct {\n\tSender *actor.PID `protobuf:\"bytes,1,opt,name=Sender,json=sender\" json:\"Sender,omitempty\"`\n}\n\nfunc (m *Connect) Reset()                    { *m = Connect{} }\nfunc (*Connect) ProtoMessage()               {}\nfunc (*Connect) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{16} }\n\nfunc (m *Connect) GetSender() *actor.PID {\n\tif m != nil {\n\t\treturn m.Sender\n\t}\n\treturn nil\n}\n\ntype Connected struct {\n\tMessage string `protobuf:\"bytes,1,opt,name=Message,json=message,proto3\" json:\"Message,omitempty\"`\n}\n\nfunc (m *Connected) Reset()                    { *m = Connected{} }\nfunc (*Connected) ProtoMessage()               {}\nfunc (*Connected) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{17} }\n\nfunc (m *Connected) GetMessage() string {\n\tif m != nil {\n\t\treturn m.Message\n\t}\n\treturn \"\"\n}\n\ntype SpawnAgent struct {\n}\n\nfunc (m *SpawnAgent) Reset()                    { *m = SpawnAgent{} }\nfunc (*SpawnAgent) ProtoMessage()               {}\nfunc (*SpawnAgent) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{18} }\n\ntype ServiceValue struct {\n\tKey   string `protobuf:\"bytes,1,opt,name=Key,json=key,proto3\" json:\"Key,omitempty\"`\n\tValue string `protobuf:\"bytes,2,opt,name=Value,json=value,proto3\" json:\"Value,omitempty\"`\n}\n\nfunc (m *ServiceValue) Reset()                    { *m = ServiceValue{} }\nfunc (*ServiceValue) ProtoMessage()               {}\nfunc (*ServiceValue) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{19} }\n\nfunc (m *ServiceValue) GetKey() string {\n\tif m != nil {\n\t\treturn m.Key\n\t}\n\treturn \"\"\n}\n\nfunc (m *ServiceValue) GetValue() string {\n\tif m != nil {\n\t\treturn m.Value\n\t}\n\treturn \"\"\n}\n\n// 注册服务器\ntype AddService struct {\n\tServiceName string          `protobuf:\"bytes,1,opt,name=serviceName,proto3\" json:\"serviceName,omitempty\"`\n\tServiceType string          `protobuf:\"bytes,2,opt,name=serviceType,proto3\" json:\"serviceType,omitempty\"`\n\tPid         *actor.PID      `protobuf:\"bytes,3,opt,name=pid\" json:\"pid,omitempty\"`\n\tValues      []*ServiceValue `protobuf:\"bytes,4,rep,name=values\" json:\"values,omitempty\"`\n}\n\nfunc (m *AddService) Reset()                    { *m = AddService{} }\nfunc (*AddService) ProtoMessage()               {}\nfunc (*AddService) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{20} }\n\nfunc (m *AddService) GetServiceName() string {\n\tif m != nil {\n\t\treturn m.ServiceName\n\t}\n\treturn \"\"\n}\n\nfunc (m *AddService) GetServiceType() string {\n\tif m != nil {\n\t\treturn m.ServiceType\n\t}\n\treturn \"\"\n}\n\nfunc (m *AddService) GetPid() *actor.PID {\n\tif m != nil {\n\t\treturn m.Pid\n\t}\n\treturn nil\n}\n\nfunc (m *AddService) GetValues() []*ServiceValue {\n\tif m != nil {\n\t\treturn m.Values\n\t}\n\treturn nil\n}\n\ntype AddServiceRep struct {\n\tResult GAErrorCode `protobuf:\"varint,1,opt,name=result,proto3,enum=msgs.GAErrorCode\" json:\"result,omitempty\"`\n}\n\nfunc (m *AddServiceRep) Reset()                    { *m = AddServiceRep{} }\nfunc (*AddServiceRep) ProtoMessage()               {}\nfunc (*AddServiceRep) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{21} }\n\nfunc (m *AddServiceRep) GetResult() GAErrorCode {\n\tif m != nil {\n\t\treturn m.Result\n\t}\n\treturn OK\n}\n\n// 发送成功的通用返回\ntype SendOK struct {\n}\n\nfunc (m *SendOK) Reset()                    { *m = SendOK{} }\nfunc (*SendOK) ProtoMessage()               {}\nfunc (*SendOK) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{22} }\n\n// 解注册服务器\ntype RemoveService struct {\n\tServiceName string `protobuf:\"bytes,1,opt,name=serviceName,proto3\" json:\"serviceName,omitempty\"`\n\tServiceType string `protobuf:\"bytes,2,opt,name=serviceType,proto3\" json:\"serviceType,omitempty\"`\n}\n\nfunc (m *RemoveService) Reset()                    { *m = RemoveService{} }\nfunc (*RemoveService) ProtoMessage()               {}\nfunc (*RemoveService) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{23} }\n\nfunc (m *RemoveService) GetServiceName() string {\n\tif m != nil {\n\t\treturn m.ServiceName\n\t}\n\treturn \"\"\n}\n\nfunc (m *RemoveService) GetServiceType() string {\n\tif m != nil {\n\t\treturn m.ServiceType\n\t}\n\treturn \"\"\n}\n\n// 分配服务器\ntype ApplyService struct {\n\tServiceType string `protobuf:\"bytes,1,opt,name=serviceType,proto3\" json:\"serviceType,omitempty\"`\n}\n\nfunc (m *ApplyService) Reset()                    { *m = ApplyService{} }\nfunc (*ApplyService) ProtoMessage()               {}\nfunc (*ApplyService) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{24} }\n\nfunc (m *ApplyService) GetServiceType() string {\n\tif m != nil {\n\t\treturn m.ServiceType\n\t}\n\treturn \"\"\n}\n\n// 分配服务器,返回\ntype ApplyServiceResult struct {\n\tServiceType string          `protobuf:\"bytes,1,opt,name=serviceType,proto3\" json:\"serviceType,omitempty\"`\n\tServiceName string          `protobuf:\"bytes,2,opt,name=serviceName,proto3\" json:\"serviceName,omitempty\"`\n\tPid         *actor.PID      `protobuf:\"bytes,3,opt,name=pid\" json:\"pid,omitempty\"`\n\tValues      []*ServiceValue `protobuf:\"bytes,4,rep,name=values\" json:\"values,omitempty\"`\n\tResult      GAErrorCode     `protobuf:\"varint,5,opt,name=result,proto3,enum=msgs.GAErrorCode\" json:\"result,omitempty\"`\n}\n\nfunc (m *ApplyServiceResult) Reset()                    { *m = ApplyServiceResult{} }\nfunc (*ApplyServiceResult) ProtoMessage()               {}\nfunc (*ApplyServiceResult) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{25} }\n\nfunc (m *ApplyServiceResult) GetServiceType() string {\n\tif m != nil {\n\t\treturn m.ServiceType\n\t}\n\treturn \"\"\n}\n\nfunc (m *ApplyServiceResult) GetServiceName() string {\n\tif m != nil {\n\t\treturn m.ServiceName\n\t}\n\treturn \"\"\n}\n\nfunc (m *ApplyServiceResult) GetPid() *actor.PID {\n\tif m != nil {\n\t\treturn m.Pid\n\t}\n\treturn nil\n}\n\nfunc (m *ApplyServiceResult) GetValues() []*ServiceValue {\n\tif m != nil {\n\t\treturn m.Values\n\t}\n\treturn nil\n}\n\nfunc (m *ApplyServiceResult) GetResult() GAErrorCode {\n\tif m != nil {\n\t\treturn m.Result\n\t}\n\treturn OK\n}\n\n// 分配所有服务器\ntype GetTypeServices struct {\n\tServiceType string `protobuf:\"bytes,1,opt,name=serviceType,proto3\" json:\"serviceType,omitempty\"`\n}\n\nfunc (m *GetTypeServices) Reset()                    { *m = GetTypeServices{} }\nfunc (*GetTypeServices) ProtoMessage()               {}\nfunc (*GetTypeServices) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{26} }\n\nfunc (m *GetTypeServices) GetServiceType() string {\n\tif m != nil {\n\t\treturn m.ServiceType\n\t}\n\treturn \"\"\n}\n\ntype GetTypeServicesResult struct {\n\tPids []*actor.PID `protobuf:\"bytes,1,rep,name=pids\" json:\"pids,omitempty\"`\n}\n\nfunc (m *GetTypeServicesResult) Reset()                    { *m = GetTypeServicesResult{} }\nfunc (*GetTypeServicesResult) ProtoMessage()               {}\nfunc (*GetTypeServicesResult) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{27} }\n\nfunc (m *GetTypeServicesResult) GetPids() []*actor.PID {\n\tif m != nil {\n\t\treturn m.Pids\n\t}\n\treturn nil\n}\n\n// 长传更新服务器信息\ntype UploadService struct {\n\tServiceName string       `protobuf:\"bytes,1,opt,name=serviceName,proto3\" json:\"serviceName,omitempty\"`\n\tLoad        uint32       `protobuf:\"varint,2,opt,name=load,proto3\" json:\"load,omitempty\"`\n\tState       ServiceState `protobuf:\"varint,3,opt,name=state,proto3,enum=msgs.ServiceState\" json:\"state,omitempty\"`\n}\n\nfunc (m *UploadService) Reset()                    { *m = UploadService{} }\nfunc (*UploadService) ProtoMessage()               {}\nfunc (*UploadService) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{28} }\n\nfunc (m *UploadService) GetServiceName() string {\n\tif m != nil {\n\t\treturn m.ServiceName\n\t}\n\treturn \"\"\n}\n\nfunc (m *UploadService) GetLoad() uint32 {\n\tif m != nil {\n\t\treturn m.Load\n\t}\n\treturn 0\n}\n\nfunc (m *UploadService) GetState() ServiceState {\n\tif m != nil {\n\t\treturn m.State\n\t}\n\treturn ServiceStateFree\n}\n\n// 登录\ntype UserLogin struct {\n\tAccount string `protobuf:\"bytes,1,opt,name=account,proto3\" json:\"account,omitempty\"`\n\tUid     uint64 `protobuf:\"varint,2,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n}\n\nfunc (m *UserLogin) Reset()                    { *m = UserLogin{} }\nfunc (*UserLogin) ProtoMessage()               {}\nfunc (*UserLogin) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{29} }\n\nfunc (m *UserLogin) GetAccount() string {\n\tif m != nil {\n\t\treturn m.Account\n\t}\n\treturn \"\"\n}\n\nfunc (m *UserLogin) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\n// 获取玩家session信息\ntype GetSessionInfo struct {\n\tUid uint64 `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n}\n\nfunc (m *GetSessionInfo) Reset()                    { *m = GetSessionInfo{} }\nfunc (*GetSessionInfo) ProtoMessage()               {}\nfunc (*GetSessionInfo) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{30} }\n\nfunc (m *GetSessionInfo) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\ntype GetSessionInfoByName struct {\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n}\n\nfunc (m *GetSessionInfoByName) Reset()                    { *m = GetSessionInfoByName{} }\nfunc (*GetSessionInfoByName) ProtoMessage()               {}\nfunc (*GetSessionInfoByName) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{31} }\n\nfunc (m *GetSessionInfoByName) GetName() string {\n\tif m != nil {\n\t\treturn m.Name\n\t}\n\treturn \"\"\n}\n\ntype GetSessionInfoResult struct {\n\tUserInfo *UserBaseInfo `protobuf:\"bytes,1,opt,name=userInfo\" json:\"userInfo,omitempty\"`\n\tAgentPID *actor.PID    `protobuf:\"bytes,2,opt,name=agentPID\" json:\"agentPID,omitempty\"`\n\tResult   GAErrorCode   `protobuf:\"varint,3,opt,name=result,proto3,enum=msgs.GAErrorCode\" json:\"result,omitempty\"`\n}\n\nfunc (m *GetSessionInfoResult) Reset()                    { *m = GetSessionInfoResult{} }\nfunc (*GetSessionInfoResult) ProtoMessage()               {}\nfunc (*GetSessionInfoResult) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{32} }\n\nfunc (m *GetSessionInfoResult) GetUserInfo() *UserBaseInfo {\n\tif m != nil {\n\t\treturn m.UserInfo\n\t}\n\treturn nil\n}\n\nfunc (m *GetSessionInfoResult) GetAgentPID() *actor.PID {\n\tif m != nil {\n\t\treturn m.AgentPID\n\t}\n\treturn nil\n}\n\nfunc (m *GetSessionInfoResult) GetResult() GAErrorCode {\n\tif m != nil {\n\t\treturn m.Result\n\t}\n\treturn OK\n}\n\n// 玩家断线\ntype ClientDisconnect struct {\n}\n\nfunc (m *ClientDisconnect) Reset()                    { *m = ClientDisconnect{} }\nfunc (*ClientDisconnect) ProtoMessage()               {}\nfunc (*ClientDisconnect) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{33} }\n\n// gate收到消息\ntype ReceviceClientMsg struct {\n\tRawdata []byte `protobuf:\"bytes,1,opt,name=rawdata,proto3\" json:\"rawdata,omitempty\"`\n}\n\nfunc (m *ReceviceClientMsg) Reset()                    { *m = ReceviceClientMsg{} }\nfunc (*ReceviceClientMsg) ProtoMessage()               {}\nfunc (*ReceviceClientMsg) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{34} }\n\nfunc (m *ReceviceClientMsg) GetRawdata() []byte {\n\tif m != nil {\n\t\treturn m.Rawdata\n\t}\n\treturn nil\n}\n\n// 玩家离开\ntype UserLeave struct {\n\tUid    uint64     `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tFrom   ServerType `protobuf:\"varint,2,opt,name=from,proto3,enum=msgs.ServerType\" json:\"from,omitempty\"`\n\tReason string     `protobuf:\"bytes,3,opt,name=reason,proto3\" json:\"reason,omitempty\"`\n}\n\nfunc (m *UserLeave) Reset()                    { *m = UserLeave{} }\nfunc (*UserLeave) ProtoMessage()               {}\nfunc (*UserLeave) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{35} }\n\nfunc (m *UserLeave) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\nfunc (m *UserLeave) GetFrom() ServerType {\n\tif m != nil {\n\t\treturn m.From\n\t}\n\treturn ST_NONE\n}\n\nfunc (m *UserLeave) GetReason() string {\n\tif m != nil {\n\t\treturn m.Reason\n\t}\n\treturn \"\"\n}\n\n// 踢下线\ntype Kick struct {\n\tUid    uint64 `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tReason string `protobuf:\"bytes,2,opt,name=reason,proto3\" json:\"reason,omitempty\"`\n}\n\nfunc (m *Kick) Reset()                    { *m = Kick{} }\nfunc (*Kick) ProtoMessage()               {}\nfunc (*Kick) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{36} }\n\nfunc (m *Kick) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\nfunc (m *Kick) GetReason() string {\n\tif m != nil {\n\t\treturn m.Reason\n\t}\n\treturn \"\"\n}\n\n// 服务器check\ntype ServerCheckLogin struct {\n\tUid      uint64     `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tKey      string     `protobuf:\"bytes,2,opt,name=key,proto3\" json:\"key,omitempty\"`\n\tAgentPID *actor.PID `protobuf:\"bytes,3,opt,name=agentPID\" json:\"agentPID,omitempty\"`\n}\n\nfunc (m *ServerCheckLogin) Reset()                    { *m = ServerCheckLogin{} }\nfunc (*ServerCheckLogin) ProtoMessage()               {}\nfunc (*ServerCheckLogin) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{37} }\n\nfunc (m *ServerCheckLogin) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\nfunc (m *ServerCheckLogin) GetKey() string {\n\tif m != nil {\n\t\treturn m.Key\n\t}\n\treturn \"\"\n}\n\nfunc (m *ServerCheckLogin) GetAgentPID() *actor.PID {\n\tif m != nil {\n\t\treturn m.AgentPID\n\t}\n\treturn nil\n}\n\n// 服务器绑定信息\ntype UserBindServer struct {\n\tChannel ChannelType `protobuf:\"varint,1,opt,name=channel,proto3,enum=msgs.ChannelType\" json:\"channel,omitempty\"`\n\tPid     *actor.PID  `protobuf:\"bytes,2,opt,name=pid\" json:\"pid,omitempty\"`\n}\n\nfunc (m *UserBindServer) Reset()                    { *m = UserBindServer{} }\nfunc (*UserBindServer) ProtoMessage()               {}\nfunc (*UserBindServer) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{38} }\n\nfunc (m *UserBindServer) GetChannel() ChannelType {\n\tif m != nil {\n\t\treturn m.Channel\n\t}\n\treturn Login\n}\n\nfunc (m *UserBindServer) GetPid() *actor.PID {\n\tif m != nil {\n\t\treturn m.Pid\n\t}\n\treturn nil\n}\n\n// 人物基本信息\ntype UserBaseInfo struct {\n\tAccount string `protobuf:\"bytes,1,opt,name=account,proto3\" json:\"account,omitempty\"`\n\tName    string `protobuf:\"bytes,2,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tUid     uint64 `protobuf:\"varint,3,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tLv      uint64 `protobuf:\"varint,4,opt,name=lv,proto3\" json:\"lv,omitempty\"`\n\tExp     uint64 `protobuf:\"varint,5,opt,name=exp,proto3\" json:\"exp,omitempty\"`\n\tExptime uint64 `protobuf:\"varint,6,opt,name=exptime,proto3\" json:\"exptime,omitempty\"`\n}\n\nfunc (m *UserBaseInfo) Reset()                    { *m = UserBaseInfo{} }\nfunc (*UserBaseInfo) ProtoMessage()               {}\nfunc (*UserBaseInfo) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{39} }\n\nfunc (m *UserBaseInfo) GetAccount() string {\n\tif m != nil {\n\t\treturn m.Account\n\t}\n\treturn \"\"\n}\n\nfunc (m *UserBaseInfo) GetName() string {\n\tif m != nil {\n\t\treturn m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *UserBaseInfo) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\nfunc (m *UserBaseInfo) GetLv() uint64 {\n\tif m != nil {\n\t\treturn m.Lv\n\t}\n\treturn 0\n}\n\nfunc (m *UserBaseInfo) GetExp() uint64 {\n\tif m != nil {\n\t\treturn m.Exp\n\t}\n\treturn 0\n}\n\nfunc (m *UserBaseInfo) GetExptime() uint64 {\n\tif m != nil {\n\t\treturn m.Exptime\n\t}\n\treturn 0\n}\n\n// 验证结果\ntype CheckLoginResult struct {\n\tResult      GAErrorCode       `protobuf:\"varint,1,opt,name=result,proto3,enum=msgs.GAErrorCode\" json:\"result,omitempty\"`\n\tBaseInfo    *UserBaseInfo     `protobuf:\"bytes,2,opt,name=baseInfo\" json:\"baseInfo,omitempty\"`\n\tBindServers []*UserBindServer `protobuf:\"bytes,3,rep,name=bindServers\" json:\"bindServers,omitempty\"`\n}\n\nfunc (m *CheckLoginResult) Reset()                    { *m = CheckLoginResult{} }\nfunc (*CheckLoginResult) ProtoMessage()               {}\nfunc (*CheckLoginResult) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{40} }\n\nfunc (m *CheckLoginResult) GetResult() GAErrorCode {\n\tif m != nil {\n\t\treturn m.Result\n\t}\n\treturn OK\n}\n\nfunc (m *CheckLoginResult) GetBaseInfo() *UserBaseInfo {\n\tif m != nil {\n\t\treturn m.BaseInfo\n\t}\n\treturn nil\n}\n\nfunc (m *CheckLoginResult) GetBindServers() []*UserBindServer {\n\tif m != nil {\n\t\treturn m.BindServers\n\t}\n\treturn nil\n}\n\n// 创建玩家\ntype CreatePlayer struct {\n\tUid      uint64     `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tAgentPID *actor.PID `protobuf:\"bytes,2,opt,name=agentPID\" json:\"agentPID,omitempty\"`\n\tSender   *actor.PID `protobuf:\"bytes,3,opt,name=sender\" json:\"sender,omitempty\"`\n\tGatePID  *actor.PID `protobuf:\"bytes,4,opt,name=gatePID\" json:\"gatePID,omitempty\"`\n\tKey      string     `protobuf:\"bytes,5,opt,name=key,proto3\" json:\"key,omitempty\"`\n}\n\nfunc (m *CreatePlayer) Reset()                    { *m = CreatePlayer{} }\nfunc (*CreatePlayer) ProtoMessage()               {}\nfunc (*CreatePlayer) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{41} }\n\nfunc (m *CreatePlayer) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\nfunc (m *CreatePlayer) GetAgentPID() *actor.PID {\n\tif m != nil {\n\t\treturn m.AgentPID\n\t}\n\treturn nil\n}\n\nfunc (m *CreatePlayer) GetSender() *actor.PID {\n\tif m != nil {\n\t\treturn m.Sender\n\t}\n\treturn nil\n}\n\nfunc (m *CreatePlayer) GetGatePID() *actor.PID {\n\tif m != nil {\n\t\treturn m.GatePID\n\t}\n\treturn nil\n}\n\nfunc (m *CreatePlayer) GetKey() string {\n\tif m != nil {\n\t\treturn m.Key\n\t}\n\treturn \"\"\n}\n\ntype CreatePlayerResult struct {\n\tResult    GAErrorCode   `protobuf:\"varint,1,opt,name=result,proto3,enum=msgs.GAErrorCode\" json:\"result,omitempty\"`\n\tBaseInfo  *UserBaseInfo `protobuf:\"bytes,2,opt,name=baseInfo\" json:\"baseInfo,omitempty\"`\n\tPlayerPID *actor.PID    `protobuf:\"bytes,3,opt,name=playerPID\" json:\"playerPID,omitempty\"`\n\tTransData *CreatePlayer `protobuf:\"bytes,4,opt,name=transData\" json:\"transData,omitempty\"`\n\tRoomPID   *actor.PID    `protobuf:\"bytes,5,opt,name=roomPID\" json:\"roomPID,omitempty\"`\n}\n\nfunc (m *CreatePlayerResult) Reset()                    { *m = CreatePlayerResult{} }\nfunc (*CreatePlayerResult) ProtoMessage()               {}\nfunc (*CreatePlayerResult) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{42} }\n\nfunc (m *CreatePlayerResult) GetResult() GAErrorCode {\n\tif m != nil {\n\t\treturn m.Result\n\t}\n\treturn OK\n}\n\nfunc (m *CreatePlayerResult) GetBaseInfo() *UserBaseInfo {\n\tif m != nil {\n\t\treturn m.BaseInfo\n\t}\n\treturn nil\n}\n\nfunc (m *CreatePlayerResult) GetPlayerPID() *actor.PID {\n\tif m != nil {\n\t\treturn m.PlayerPID\n\t}\n\treturn nil\n}\n\nfunc (m *CreatePlayerResult) GetTransData() *CreatePlayer {\n\tif m != nil {\n\t\treturn m.TransData\n\t}\n\treturn nil\n}\n\nfunc (m *CreatePlayerResult) GetRoomPID() *actor.PID {\n\tif m != nil {\n\t\treturn m.RoomPID\n\t}\n\treturn nil\n}\n\n// 掉线\ntype PlayerOutline struct {\n\tReason string `protobuf:\"bytes,1,opt,name=reason,proto3\" json:\"reason,omitempty\"`\n}\n\nfunc (m *PlayerOutline) Reset()                    { *m = PlayerOutline{} }\nfunc (*PlayerOutline) ProtoMessage()               {}\nfunc (*PlayerOutline) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{43} }\n\nfunc (m *PlayerOutline) GetReason() string {\n\tif m != nil {\n\t\treturn m.Reason\n\t}\n\treturn \"\"\n}\n\n// 心跳\ntype Tick struct {\n}\n\nfunc (m *Tick) Reset()                    { *m = Tick{} }\nfunc (*Tick) ProtoMessage()               {}\nfunc (*Tick) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{44} }\n\n// 定时刷新\ntype TimeFlush struct {\n}\n\nfunc (m *TimeFlush) Reset()                    { *m = TimeFlush{} }\nfunc (*TimeFlush) ProtoMessage()               {}\nfunc (*TimeFlush) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{45} }\n\ntype BattleRoomInfo struct {\n\tUid   uint64   `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tRtype int32    `protobuf:\"varint,2,opt,name=rtype,proto3\" json:\"rtype,omitempty\"`\n\tBoss  int32    `protobuf:\"varint,3,opt,name=boss,proto3\" json:\"boss,omitempty\"`\n\tKey   string   `protobuf:\"bytes,4,opt,name=key,proto3\" json:\"key,omitempty\"`\n\tHero  int32    `protobuf:\"varint,5,opt,name=hero,proto3\" json:\"hero,omitempty\"`\n\tCard  []string `protobuf:\"bytes,6,rep,name=card\" json:\"card,omitempty\"`\n\tEquip []int32  `protobuf:\"varint,7,rep,packed,name=equip\" json:\"equip,omitempty\"`\n\tName  string   `protobuf:\"bytes,8,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tLv    int32    `protobuf:\"varint,9,opt,name=lv,proto3\" json:\"lv,omitempty\"`\n\tAi    int32    `protobuf:\"varint,10,opt,name=ai,proto3\" json:\"ai,omitempty\"`\n}\n\nfunc (m *BattleRoomInfo) Reset()                    { *m = BattleRoomInfo{} }\nfunc (*BattleRoomInfo) ProtoMessage()               {}\nfunc (*BattleRoomInfo) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{46} }\n\nfunc (m *BattleRoomInfo) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\nfunc (m *BattleRoomInfo) GetRtype() int32 {\n\tif m != nil {\n\t\treturn m.Rtype\n\t}\n\treturn 0\n}\n\nfunc (m *BattleRoomInfo) GetBoss() int32 {\n\tif m != nil {\n\t\treturn m.Boss\n\t}\n\treturn 0\n}\n\nfunc (m *BattleRoomInfo) GetKey() string {\n\tif m != nil {\n\t\treturn m.Key\n\t}\n\treturn \"\"\n}\n\nfunc (m *BattleRoomInfo) GetHero() int32 {\n\tif m != nil {\n\t\treturn m.Hero\n\t}\n\treturn 0\n}\n\nfunc (m *BattleRoomInfo) GetCard() []string {\n\tif m != nil {\n\t\treturn m.Card\n\t}\n\treturn nil\n}\n\nfunc (m *BattleRoomInfo) GetEquip() []int32 {\n\tif m != nil {\n\t\treturn m.Equip\n\t}\n\treturn nil\n}\n\nfunc (m *BattleRoomInfo) GetName() string {\n\tif m != nil {\n\t\treturn m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *BattleRoomInfo) GetLv() int32 {\n\tif m != nil {\n\t\treturn m.Lv\n\t}\n\treturn 0\n}\n\nfunc (m *BattleRoomInfo) GetAi() int32 {\n\tif m != nil {\n\t\treturn m.Ai\n\t}\n\treturn 0\n}\n\ntype GetLobbyInfo struct {\n}\n\nfunc (m *GetLobbyInfo) Reset()                    { *m = GetLobbyInfo{} }\nfunc (*GetLobbyInfo) ProtoMessage()               {}\nfunc (*GetLobbyInfo) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{47} }\n\ntype LobbyQueueData struct {\n\tType int32 `protobuf:\"varint,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tNum  int32 `protobuf:\"varint,2,opt,name=num,proto3\" json:\"num,omitempty\"`\n}\n\nfunc (m *LobbyQueueData) Reset()                    { *m = LobbyQueueData{} }\nfunc (*LobbyQueueData) ProtoMessage()               {}\nfunc (*LobbyQueueData) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{48} }\n\nfunc (m *LobbyQueueData) GetType() int32 {\n\tif m != nil {\n\t\treturn m.Type\n\t}\n\treturn 0\n}\n\nfunc (m *LobbyQueueData) GetNum() int32 {\n\tif m != nil {\n\t\treturn m.Num\n\t}\n\treturn 0\n}\n\ntype BattleServerData struct {\n\tAddr  string `protobuf:\"bytes,1,opt,name=addr,proto3\" json:\"addr,omitempty\"`\n\tNum   int32  `protobuf:\"varint,2,opt,name=num,proto3\" json:\"num,omitempty\"`\n\tState int32  `protobuf:\"varint,3,opt,name=state,proto3\" json:\"state,omitempty\"`\n}\n\nfunc (m *BattleServerData) Reset()                    { *m = BattleServerData{} }\nfunc (*BattleServerData) ProtoMessage()               {}\nfunc (*BattleServerData) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{49} }\n\nfunc (m *BattleServerData) GetAddr() string {\n\tif m != nil {\n\t\treturn m.Addr\n\t}\n\treturn \"\"\n}\n\nfunc (m *BattleServerData) GetNum() int32 {\n\tif m != nil {\n\t\treturn m.Num\n\t}\n\treturn 0\n}\n\nfunc (m *BattleServerData) GetState() int32 {\n\tif m != nil {\n\t\treturn m.State\n\t}\n\treturn 0\n}\n\ntype GetLobbyInfoResult struct {\n\tQueuedata        []*LobbyQueueData   `protobuf:\"bytes,1,rep,name=queuedata\" json:\"queuedata,omitempty\"`\n\tBattleServerData []*BattleServerData `protobuf:\"bytes,2,rep,name=battleServerData\" json:\"battleServerData,omitempty\"`\n}\n\nfunc (m *GetLobbyInfoResult) Reset()                    { *m = GetLobbyInfoResult{} }\nfunc (*GetLobbyInfoResult) ProtoMessage()               {}\nfunc (*GetLobbyInfoResult) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{50} }\n\nfunc (m *GetLobbyInfoResult) GetQueuedata() []*LobbyQueueData {\n\tif m != nil {\n\t\treturn m.Queuedata\n\t}\n\treturn nil\n}\n\nfunc (m *GetLobbyInfoResult) GetBattleServerData() []*BattleServerData {\n\tif m != nil {\n\t\treturn m.BattleServerData\n\t}\n\treturn nil\n}\n\ntype GetBattleServer struct {\n\tUid   uint64 `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tRtype int32  `protobuf:\"varint,2,opt,name=rtype,proto3\" json:\"rtype,omitempty\"`\n\tBoss  int32  `protobuf:\"varint,3,opt,name=boss,proto3\" json:\"boss,omitempty\"`\n\t// bytes roomInfo = 4;\n\tOppuid  uint64     `protobuf:\"varint,4,opt,name=oppuid,proto3\" json:\"oppuid,omitempty\"`\n\tSelfPID *actor.PID `protobuf:\"bytes,5,opt,name=selfPID\" json:\"selfPID,omitempty\"`\n}\n\nfunc (m *GetBattleServer) Reset()                    { *m = GetBattleServer{} }\nfunc (*GetBattleServer) ProtoMessage()               {}\nfunc (*GetBattleServer) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{51} }\n\nfunc (m *GetBattleServer) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\nfunc (m *GetBattleServer) GetRtype() int32 {\n\tif m != nil {\n\t\treturn m.Rtype\n\t}\n\treturn 0\n}\n\nfunc (m *GetBattleServer) GetBoss() int32 {\n\tif m != nil {\n\t\treturn m.Boss\n\t}\n\treturn 0\n}\n\nfunc (m *GetBattleServer) GetOppuid() uint64 {\n\tif m != nil {\n\t\treturn m.Oppuid\n\t}\n\treturn 0\n}\n\nfunc (m *GetBattleServer) GetSelfPID() *actor.PID {\n\tif m != nil {\n\t\treturn m.SelfPID\n\t}\n\treturn nil\n}\n\ntype GetBattleServerResult struct {\n\tBattlePID *actor.PID  `protobuf:\"bytes,1,opt,name=battlePID\" json:\"battlePID,omitempty\"`\n\tRoomId    string      `protobuf:\"bytes,2,opt,name=roomId,proto3\" json:\"roomId,omitempty\"`\n\tResult    GAErrorCode `protobuf:\"varint,3,opt,name=result,proto3,enum=msgs.GAErrorCode\" json:\"result,omitempty\"`\n}\n\nfunc (m *GetBattleServerResult) Reset()                    { *m = GetBattleServerResult{} }\nfunc (*GetBattleServerResult) ProtoMessage()               {}\nfunc (*GetBattleServerResult) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{52} }\n\nfunc (m *GetBattleServerResult) GetBattlePID() *actor.PID {\n\tif m != nil {\n\t\treturn m.BattlePID\n\t}\n\treturn nil\n}\n\nfunc (m *GetBattleServerResult) GetRoomId() string {\n\tif m != nil {\n\t\treturn m.RoomId\n\t}\n\treturn \"\"\n}\n\nfunc (m *GetBattleServerResult) GetResult() GAErrorCode {\n\tif m != nil {\n\t\treturn m.Result\n\t}\n\treturn OK\n}\n\ntype JoinBattleQueue struct {\n\tUid      uint64     `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tRtype    int32      `protobuf:\"varint,2,opt,name=rtype,proto3\" json:\"rtype,omitempty\"`\n\tRoomInfo []byte     `protobuf:\"bytes,3,opt,name=roomInfo,proto3\" json:\"roomInfo,omitempty\"`\n\tSender   *actor.PID `protobuf:\"bytes,4,opt,name=sender\" json:\"sender,omitempty\"`\n\tAiNum    int32      `protobuf:\"varint,5,opt,name=aiNum,proto3\" json:\"aiNum,omitempty\"`\n}\n\nfunc (m *JoinBattleQueue) Reset()                    { *m = JoinBattleQueue{} }\nfunc (*JoinBattleQueue) ProtoMessage()               {}\nfunc (*JoinBattleQueue) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{53} }\n\nfunc (m *JoinBattleQueue) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\nfunc (m *JoinBattleQueue) GetRtype() int32 {\n\tif m != nil {\n\t\treturn m.Rtype\n\t}\n\treturn 0\n}\n\nfunc (m *JoinBattleQueue) GetRoomInfo() []byte {\n\tif m != nil {\n\t\treturn m.RoomInfo\n\t}\n\treturn nil\n}\n\nfunc (m *JoinBattleQueue) GetSender() *actor.PID {\n\tif m != nil {\n\t\treturn m.Sender\n\t}\n\treturn nil\n}\n\nfunc (m *JoinBattleQueue) GetAiNum() int32 {\n\tif m != nil {\n\t\treturn m.AiNum\n\t}\n\treturn 0\n}\n\ntype JoinBattleQueueResult struct {\n\tWaittime uint64      `protobuf:\"varint,1,opt,name=waittime,proto3\" json:\"waittime,omitempty\"`\n\tResult   GAErrorCode `protobuf:\"varint,2,opt,name=result,proto3,enum=msgs.GAErrorCode\" json:\"result,omitempty\"`\n}\n\nfunc (m *JoinBattleQueueResult) Reset()                    { *m = JoinBattleQueueResult{} }\nfunc (*JoinBattleQueueResult) ProtoMessage()               {}\nfunc (*JoinBattleQueueResult) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{54} }\n\nfunc (m *JoinBattleQueueResult) GetWaittime() uint64 {\n\tif m != nil {\n\t\treturn m.Waittime\n\t}\n\treturn 0\n}\n\nfunc (m *JoinBattleQueueResult) GetResult() GAErrorCode {\n\tif m != nil {\n\t\treturn m.Result\n\t}\n\treturn OK\n}\n\ntype LeaveBattleQueue struct {\n\tUid uint64 `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n}\n\nfunc (m *LeaveBattleQueue) Reset()                    { *m = LeaveBattleQueue{} }\nfunc (*LeaveBattleQueue) ProtoMessage()               {}\nfunc (*LeaveBattleQueue) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{55} }\n\nfunc (m *LeaveBattleQueue) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\ntype MatchBattle struct {\n\tBattleAddr string      `protobuf:\"bytes,1,opt,name=battleAddr,proto3\" json:\"battleAddr,omitempty\"`\n\tRoomId     string      `protobuf:\"bytes,2,opt,name=roomId,proto3\" json:\"roomId,omitempty\"`\n\tUid        uint64      `protobuf:\"varint,3,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tRtype      int32       `protobuf:\"varint,4,opt,name=rtype,proto3\" json:\"rtype,omitempty\"`\n\tRoomInfo   []byte      `protobuf:\"bytes,5,opt,name=roomInfo,proto3\" json:\"roomInfo,omitempty\"`\n\tResult     GAErrorCode `protobuf:\"varint,6,opt,name=result,proto3,enum=msgs.GAErrorCode\" json:\"result,omitempty\"`\n\tRoomPID    *actor.PID  `protobuf:\"bytes,7,opt,name=roomPID\" json:\"roomPID,omitempty\"`\n}\n\nfunc (m *MatchBattle) Reset()                    { *m = MatchBattle{} }\nfunc (*MatchBattle) ProtoMessage()               {}\nfunc (*MatchBattle) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{56} }\n\nfunc (m *MatchBattle) GetBattleAddr() string {\n\tif m != nil {\n\t\treturn m.BattleAddr\n\t}\n\treturn \"\"\n}\n\nfunc (m *MatchBattle) GetRoomId() string {\n\tif m != nil {\n\t\treturn m.RoomId\n\t}\n\treturn \"\"\n}\n\nfunc (m *MatchBattle) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\nfunc (m *MatchBattle) GetRtype() int32 {\n\tif m != nil {\n\t\treturn m.Rtype\n\t}\n\treturn 0\n}\n\nfunc (m *MatchBattle) GetRoomInfo() []byte {\n\tif m != nil {\n\t\treturn m.RoomInfo\n\t}\n\treturn nil\n}\n\nfunc (m *MatchBattle) GetResult() GAErrorCode {\n\tif m != nil {\n\t\treturn m.Result\n\t}\n\treturn OK\n}\n\nfunc (m *MatchBattle) GetRoomPID() *actor.PID {\n\tif m != nil {\n\t\treturn m.RoomPID\n\t}\n\treturn nil\n}\n\ntype CreateBattlePlayer struct {\n\tUid       uint64     `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tName      string     `protobuf:\"bytes,2,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tSkin      int32      `protobuf:\"varint,3,opt,name=skin,proto3\" json:\"skin,omitempty\"`\n\tAgentPID  *actor.PID `protobuf:\"bytes,4,opt,name=agentPID\" json:\"agentPID,omitempty\"`\n\tPlayerPID *actor.PID `protobuf:\"bytes,5,opt,name=playerPID\" json:\"playerPID,omitempty\"`\n}\n\nfunc (m *CreateBattlePlayer) Reset()                    { *m = CreateBattlePlayer{} }\nfunc (*CreateBattlePlayer) ProtoMessage()               {}\nfunc (*CreateBattlePlayer) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{57} }\n\nfunc (m *CreateBattlePlayer) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\nfunc (m *CreateBattlePlayer) GetName() string {\n\tif m != nil {\n\t\treturn m.Name\n\t}\n\treturn \"\"\n}\n\nfunc (m *CreateBattlePlayer) GetSkin() int32 {\n\tif m != nil {\n\t\treturn m.Skin\n\t}\n\treturn 0\n}\n\nfunc (m *CreateBattlePlayer) GetAgentPID() *actor.PID {\n\tif m != nil {\n\t\treturn m.AgentPID\n\t}\n\treturn nil\n}\n\nfunc (m *CreateBattlePlayer) GetPlayerPID() *actor.PID {\n\tif m != nil {\n\t\treturn m.PlayerPID\n\t}\n\treturn nil\n}\n\ntype CreateBattle struct {\n\tRoomId  string                `protobuf:\"bytes,1,opt,name=roomId,proto3\" json:\"roomId,omitempty\"`\n\tStageId int32                 `protobuf:\"varint,2,opt,name=stageId,proto3\" json:\"stageId,omitempty\"`\n\tRtype   int32                 `protobuf:\"varint,3,opt,name=rtype,proto3\" json:\"rtype,omitempty\"`\n\tPlayers []*CreateBattlePlayer `protobuf:\"bytes,4,rep,name=players\" json:\"players,omitempty\"`\n}\n\nfunc (m *CreateBattle) Reset()                    { *m = CreateBattle{} }\nfunc (*CreateBattle) ProtoMessage()               {}\nfunc (*CreateBattle) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{58} }\n\nfunc (m *CreateBattle) GetRoomId() string {\n\tif m != nil {\n\t\treturn m.RoomId\n\t}\n\treturn \"\"\n}\n\nfunc (m *CreateBattle) GetStageId() int32 {\n\tif m != nil {\n\t\treturn m.StageId\n\t}\n\treturn 0\n}\n\nfunc (m *CreateBattle) GetRtype() int32 {\n\tif m != nil {\n\t\treturn m.Rtype\n\t}\n\treturn 0\n}\n\nfunc (m *CreateBattle) GetPlayers() []*CreateBattlePlayer {\n\tif m != nil {\n\t\treturn m.Players\n\t}\n\treturn nil\n}\n\ntype CreateBattleRep struct {\n\tRoomPID *actor.PID  `protobuf:\"bytes,1,opt,name=roomPID\" json:\"roomPID,omitempty\"`\n\tResult  GAErrorCode `protobuf:\"varint,2,opt,name=result,proto3,enum=msgs.GAErrorCode\" json:\"result,omitempty\"`\n}\n\nfunc (m *CreateBattleRep) Reset()                    { *m = CreateBattleRep{} }\nfunc (*CreateBattleRep) ProtoMessage()               {}\nfunc (*CreateBattleRep) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{59} }\n\nfunc (m *CreateBattleRep) GetRoomPID() *actor.PID {\n\tif m != nil {\n\t\treturn m.RoomPID\n\t}\n\treturn nil\n}\n\nfunc (m *CreateBattleRep) GetResult() GAErrorCode {\n\tif m != nil {\n\t\treturn m.Result\n\t}\n\treturn OK\n}\n\ntype JoinBattle struct {\n\tRoomId string              `protobuf:\"bytes,1,opt,name=roomId,proto3\" json:\"roomId,omitempty\"`\n\tPlayer *CreateBattlePlayer `protobuf:\"bytes,2,opt,name=player\" json:\"player,omitempty\"`\n}\n\nfunc (m *JoinBattle) Reset()                    { *m = JoinBattle{} }\nfunc (*JoinBattle) ProtoMessage()               {}\nfunc (*JoinBattle) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{60} }\n\nfunc (m *JoinBattle) GetRoomId() string {\n\tif m != nil {\n\t\treturn m.RoomId\n\t}\n\treturn \"\"\n}\n\nfunc (m *JoinBattle) GetPlayer() *CreateBattlePlayer {\n\tif m != nil {\n\t\treturn m.Player\n\t}\n\treturn nil\n}\n\ntype AttachBattle struct {\n\tRoomPID *actor.PID `protobuf:\"bytes,1,opt,name=roomPID\" json:\"roomPID,omitempty\"`\n}\n\nfunc (m *AttachBattle) Reset()                    { *m = AttachBattle{} }\nfunc (*AttachBattle) ProtoMessage()               {}\nfunc (*AttachBattle) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{61} }\n\nfunc (m *AttachBattle) GetRoomPID() *actor.PID {\n\tif m != nil {\n\t\treturn m.RoomPID\n\t}\n\treturn nil\n}\n\ntype DetachBattle struct {\n}\n\nfunc (m *DetachBattle) Reset()                    { *m = DetachBattle{} }\nfunc (*DetachBattle) ProtoMessage()               {}\nfunc (*DetachBattle) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{62} }\n\ntype RecoverBattle struct {\n\tUid      uint64     `protobuf:\"varint,1,opt,name=uid,proto3\" json:\"uid,omitempty\"`\n\tAgentPID *actor.PID `protobuf:\"bytes,2,opt,name=agentPID\" json:\"agentPID,omitempty\"`\n}\n\nfunc (m *RecoverBattle) Reset()                    { *m = RecoverBattle{} }\nfunc (*RecoverBattle) ProtoMessage()               {}\nfunc (*RecoverBattle) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{63} }\n\nfunc (m *RecoverBattle) GetUid() uint64 {\n\tif m != nil {\n\t\treturn m.Uid\n\t}\n\treturn 0\n}\n\nfunc (m *RecoverBattle) GetAgentPID() *actor.PID {\n\tif m != nil {\n\t\treturn m.AgentPID\n\t}\n\treturn nil\n}\n\ntype RecoverBattleRep struct {\n\tRoomPID *actor.PID  `protobuf:\"bytes,1,opt,name=roomPID\" json:\"roomPID,omitempty\"`\n\tResult  GAErrorCode `protobuf:\"varint,2,opt,name=result,proto3,enum=msgs.GAErrorCode\" json:\"result,omitempty\"`\n}\n\nfunc (m *RecoverBattleRep) Reset()                    { *m = RecoverBattleRep{} }\nfunc (*RecoverBattleRep) ProtoMessage()               {}\nfunc (*RecoverBattleRep) Descriptor() ([]byte, []int) { return fileDescriptorProtos, []int{64} }\n\nfunc (m *RecoverBattleRep) GetRoomPID() *actor.PID {\n\tif m != nil {\n\t\treturn m.RoomPID\n\t}\n\treturn nil\n}\n\nfunc (m *RecoverBattleRep) GetResult() GAErrorCode {\n\tif m != nil {\n\t\treturn m.Result\n\t}\n\treturn OK\n}\n\nfunc init() {\n\tproto.RegisterType((*CheckLogin)(nil), \"msgs.CheckLogin\")\n\tproto.RegisterType((*HeartBeatMsg)(nil), \"msgs.HeartBeatMsg\")\n\tproto.RegisterType((*C2S_ShopBuyMsg)(nil), \"msgs.C2S_ShopBuyMsg\")\n\tproto.RegisterType((*S2C_ShopBuyMsg)(nil), \"msgs.S2C_ShopBuyMsg\")\n\tproto.RegisterType((*FrameMsg)(nil), \"msgs.FrameMsg\")\n\tproto.RegisterType((*FrameMsgJson)(nil), \"msgs.FrameMsgJson\")\n\tproto.RegisterType((*FrameMsgReq)(nil), \"msgs.FrameMsgReq\")\n\tproto.RegisterType((*FrameMsgRep)(nil), \"msgs.FrameMsgRep\")\n\tproto.RegisterType((*UnicastFrameMsg)(nil), \"msgs.UnicastFrameMsg\")\n\tproto.RegisterType((*MulticastFrameMsg)(nil), \"msgs.MulticastFrameMsg\")\n\tproto.RegisterType((*BroadcastFrameMsg)(nil), \"msgs.BroadcastFrameMsg\")\n\tproto.RegisterType((*BroadcastFrameMsgJson)(nil), \"msgs.BroadcastFrameMsgJson\")\n\tproto.RegisterType((*AddAgentToParent)(nil), \"msgs.AddAgentToParent\")\n\tproto.RegisterType((*RemoveAgentFromParent)(nil), \"msgs.RemoveAgentFromParent\")\n\tproto.RegisterType((*NewChild)(nil), \"msgs.NewChild\")\n\tproto.RegisterType((*NewChildResult)(nil), \"msgs.NewChildResult\")\n\tproto.RegisterType((*Connect)(nil), \"msgs.Connect\")\n\tproto.RegisterType((*Connected)(nil), \"msgs.Connected\")\n\tproto.RegisterType((*SpawnAgent)(nil), \"msgs.SpawnAgent\")\n\tproto.RegisterType((*ServiceValue)(nil), \"msgs.ServiceValue\")\n\tproto.RegisterType((*AddService)(nil), \"msgs.AddService\")\n\tproto.RegisterType((*AddServiceRep)(nil), \"msgs.AddServiceRep\")\n\tproto.RegisterType((*SendOK)(nil), \"msgs.SendOK\")\n\tproto.RegisterType((*RemoveService)(nil), \"msgs.RemoveService\")\n\tproto.RegisterType((*ApplyService)(nil), \"msgs.ApplyService\")\n\tproto.RegisterType((*ApplyServiceResult)(nil), \"msgs.ApplyServiceResult\")\n\tproto.RegisterType((*GetTypeServices)(nil), \"msgs.GetTypeServices\")\n\tproto.RegisterType((*GetTypeServicesResult)(nil), \"msgs.GetTypeServicesResult\")\n\tproto.RegisterType((*UploadService)(nil), \"msgs.UploadService\")\n\tproto.RegisterType((*UserLogin)(nil), \"msgs.UserLogin\")\n\tproto.RegisterType((*GetSessionInfo)(nil), \"msgs.GetSessionInfo\")\n\tproto.RegisterType((*GetSessionInfoByName)(nil), \"msgs.GetSessionInfoByName\")\n\tproto.RegisterType((*GetSessionInfoResult)(nil), \"msgs.GetSessionInfoResult\")\n\tproto.RegisterType((*ClientDisconnect)(nil), \"msgs.ClientDisconnect\")\n\tproto.RegisterType((*ReceviceClientMsg)(nil), \"msgs.ReceviceClientMsg\")\n\tproto.RegisterType((*UserLeave)(nil), \"msgs.UserLeave\")\n\tproto.RegisterType((*Kick)(nil), \"msgs.Kick\")\n\tproto.RegisterType((*ServerCheckLogin)(nil), \"msgs.ServerCheckLogin\")\n\tproto.RegisterType((*UserBindServer)(nil), \"msgs.UserBindServer\")\n\tproto.RegisterType((*UserBaseInfo)(nil), \"msgs.UserBaseInfo\")\n\tproto.RegisterType((*CheckLoginResult)(nil), \"msgs.CheckLoginResult\")\n\tproto.RegisterType((*CreatePlayer)(nil), \"msgs.CreatePlayer\")\n\tproto.RegisterType((*CreatePlayerResult)(nil), \"msgs.CreatePlayerResult\")\n\tproto.RegisterType((*PlayerOutline)(nil), \"msgs.PlayerOutline\")\n\tproto.RegisterType((*Tick)(nil), \"msgs.Tick\")\n\tproto.RegisterType((*TimeFlush)(nil), \"msgs.TimeFlush\")\n\tproto.RegisterType((*BattleRoomInfo)(nil), \"msgs.BattleRoomInfo\")\n\tproto.RegisterType((*GetLobbyInfo)(nil), \"msgs.GetLobbyInfo\")\n\tproto.RegisterType((*LobbyQueueData)(nil), \"msgs.LobbyQueueData\")\n\tproto.RegisterType((*BattleServerData)(nil), \"msgs.BattleServerData\")\n\tproto.RegisterType((*GetLobbyInfoResult)(nil), \"msgs.GetLobbyInfoResult\")\n\tproto.RegisterType((*GetBattleServer)(nil), \"msgs.GetBattleServer\")\n\tproto.RegisterType((*GetBattleServerResult)(nil), \"msgs.GetBattleServerResult\")\n\tproto.RegisterType((*JoinBattleQueue)(nil), \"msgs.JoinBattleQueue\")\n\tproto.RegisterType((*JoinBattleQueueResult)(nil), \"msgs.JoinBattleQueueResult\")\n\tproto.RegisterType((*LeaveBattleQueue)(nil), \"msgs.LeaveBattleQueue\")\n\tproto.RegisterType((*MatchBattle)(nil), \"msgs.MatchBattle\")\n\tproto.RegisterType((*CreateBattlePlayer)(nil), \"msgs.CreateBattlePlayer\")\n\tproto.RegisterType((*CreateBattle)(nil), \"msgs.CreateBattle\")\n\tproto.RegisterType((*CreateBattleRep)(nil), \"msgs.CreateBattleRep\")\n\tproto.RegisterType((*JoinBattle)(nil), \"msgs.JoinBattle\")\n\tproto.RegisterType((*AttachBattle)(nil), \"msgs.AttachBattle\")\n\tproto.RegisterType((*DetachBattle)(nil), \"msgs.DetachBattle\")\n\tproto.RegisterType((*RecoverBattle)(nil), \"msgs.RecoverBattle\")\n\tproto.RegisterType((*RecoverBattleRep)(nil), \"msgs.RecoverBattleRep\")\n\tproto.RegisterEnum(\"msgs.ShopMsgType\", ShopMsgType_name, ShopMsgType_value)\n\tproto.RegisterEnum(\"msgs.BagMsgType\", BagMsgType_name, BagMsgType_value)\n\tproto.RegisterEnum(\"msgs.ServiceState\", ServiceState_name, ServiceState_value)\n}\nfunc (x ShopMsgType) String() string {\n\ts, ok := ShopMsgType_name[int32(x)]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(x))\n}\nfunc (x BagMsgType) String() string {\n\ts, ok := BagMsgType_name[int32(x)]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(x))\n}\nfunc (x ServiceState) String() string {\n\ts, ok := ServiceState_name[int32(x)]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(x))\n}\nfunc (this *CheckLogin) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*CheckLogin)\n\tif !ok {\n\t\tthat2, ok := that.(CheckLogin)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\tif this.Key != that1.Key {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *HeartBeatMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*HeartBeatMsg)\n\tif !ok {\n\t\tthat2, ok := that.(HeartBeatMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *C2S_ShopBuyMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*C2S_ShopBuyMsg)\n\tif !ok {\n\t\tthat2, ok := that.(C2S_ShopBuyMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.ItemId != that1.ItemId {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *S2C_ShopBuyMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*S2C_ShopBuyMsg)\n\tif !ok {\n\t\tthat2, ok := that.(S2C_ShopBuyMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.ItemId != that1.ItemId {\n\t\treturn false\n\t}\n\tif this.Result != that1.Result {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *FrameMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*FrameMsg)\n\tif !ok {\n\t\tthat2, ok := that.(FrameMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Channel != that1.Channel {\n\t\treturn false\n\t}\n\tif this.MsgId != that1.MsgId {\n\t\treturn false\n\t}\n\tif !bytes.Equal(this.RawData, that1.RawData) {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *FrameMsgJson) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*FrameMsgJson)\n\tif !ok {\n\t\tthat2, ok := that.(FrameMsgJson)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Channel != that1.Channel {\n\t\treturn false\n\t}\n\tif this.MsgId != that1.MsgId {\n\t\treturn false\n\t}\n\tif !bytes.Equal(this.RawData, that1.RawData) {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *FrameMsgReq) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*FrameMsgReq)\n\tif !ok {\n\t\tthat2, ok := that.(FrameMsgReq)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif !this.Frame.Equal(that1.Frame) {\n\t\treturn false\n\t}\n\tif this.Cno != that1.Cno {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *FrameMsgRep) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*FrameMsgRep)\n\tif !ok {\n\t\tthat2, ok := that.(FrameMsgRep)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.ErrCode != that1.ErrCode {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *UnicastFrameMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*UnicastFrameMsg)\n\tif !ok {\n\t\tthat2, ok := that.(UnicastFrameMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif !this.FrameMsg.Equal(that1.FrameMsg) {\n\t\treturn false\n\t}\n\tif this.Target != that1.Target {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *MulticastFrameMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*MulticastFrameMsg)\n\tif !ok {\n\t\tthat2, ok := that.(MulticastFrameMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif !this.FrameMsg.Equal(that1.FrameMsg) {\n\t\treturn false\n\t}\n\tif len(this.Targets) != len(that1.Targets) {\n\t\treturn false\n\t}\n\tfor i := range this.Targets {\n\t\tif this.Targets[i] != that1.Targets[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\nfunc (this *BroadcastFrameMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*BroadcastFrameMsg)\n\tif !ok {\n\t\tthat2, ok := that.(BroadcastFrameMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif !this.FrameMsg.Equal(that1.FrameMsg) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *BroadcastFrameMsgJson) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*BroadcastFrameMsgJson)\n\tif !ok {\n\t\tthat2, ok := that.(BroadcastFrameMsgJson)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif !this.FrameMsg.Equal(that1.FrameMsg) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *AddAgentToParent) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*AddAgentToParent)\n\tif !ok {\n\t\tthat2, ok := that.(AddAgentToParent)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\tif !this.Sender.Equal(that1.Sender) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *RemoveAgentFromParent) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*RemoveAgentFromParent)\n\tif !ok {\n\t\tthat2, ok := that.(RemoveAgentFromParent)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *NewChild) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*NewChild)\n\tif !ok {\n\t\tthat2, ok := that.(NewChild)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *NewChildResult) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*NewChildResult)\n\tif !ok {\n\t\tthat2, ok := that.(NewChildResult)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif !this.Pid.Equal(that1.Pid) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *Connect) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*Connect)\n\tif !ok {\n\t\tthat2, ok := that.(Connect)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif !this.Sender.Equal(that1.Sender) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *Connected) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*Connected)\n\tif !ok {\n\t\tthat2, ok := that.(Connected)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Message != that1.Message {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *SpawnAgent) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*SpawnAgent)\n\tif !ok {\n\t\tthat2, ok := that.(SpawnAgent)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *ServiceValue) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*ServiceValue)\n\tif !ok {\n\t\tthat2, ok := that.(ServiceValue)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Key != that1.Key {\n\t\treturn false\n\t}\n\tif this.Value != that1.Value {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *AddService) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*AddService)\n\tif !ok {\n\t\tthat2, ok := that.(AddService)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.ServiceName != that1.ServiceName {\n\t\treturn false\n\t}\n\tif this.ServiceType != that1.ServiceType {\n\t\treturn false\n\t}\n\tif !this.Pid.Equal(that1.Pid) {\n\t\treturn false\n\t}\n\tif len(this.Values) != len(that1.Values) {\n\t\treturn false\n\t}\n\tfor i := range this.Values {\n\t\tif !this.Values[i].Equal(that1.Values[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\nfunc (this *AddServiceRep) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*AddServiceRep)\n\tif !ok {\n\t\tthat2, ok := that.(AddServiceRep)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Result != that1.Result {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *SendOK) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*SendOK)\n\tif !ok {\n\t\tthat2, ok := that.(SendOK)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *RemoveService) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*RemoveService)\n\tif !ok {\n\t\tthat2, ok := that.(RemoveService)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.ServiceName != that1.ServiceName {\n\t\treturn false\n\t}\n\tif this.ServiceType != that1.ServiceType {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *ApplyService) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*ApplyService)\n\tif !ok {\n\t\tthat2, ok := that.(ApplyService)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.ServiceType != that1.ServiceType {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *ApplyServiceResult) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*ApplyServiceResult)\n\tif !ok {\n\t\tthat2, ok := that.(ApplyServiceResult)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.ServiceType != that1.ServiceType {\n\t\treturn false\n\t}\n\tif this.ServiceName != that1.ServiceName {\n\t\treturn false\n\t}\n\tif !this.Pid.Equal(that1.Pid) {\n\t\treturn false\n\t}\n\tif len(this.Values) != len(that1.Values) {\n\t\treturn false\n\t}\n\tfor i := range this.Values {\n\t\tif !this.Values[i].Equal(that1.Values[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif this.Result != that1.Result {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *GetTypeServices) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*GetTypeServices)\n\tif !ok {\n\t\tthat2, ok := that.(GetTypeServices)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.ServiceType != that1.ServiceType {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *GetTypeServicesResult) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*GetTypeServicesResult)\n\tif !ok {\n\t\tthat2, ok := that.(GetTypeServicesResult)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif len(this.Pids) != len(that1.Pids) {\n\t\treturn false\n\t}\n\tfor i := range this.Pids {\n\t\tif !this.Pids[i].Equal(that1.Pids[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\nfunc (this *UploadService) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*UploadService)\n\tif !ok {\n\t\tthat2, ok := that.(UploadService)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.ServiceName != that1.ServiceName {\n\t\treturn false\n\t}\n\tif this.Load != that1.Load {\n\t\treturn false\n\t}\n\tif this.State != that1.State {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *UserLogin) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*UserLogin)\n\tif !ok {\n\t\tthat2, ok := that.(UserLogin)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Account != that1.Account {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *GetSessionInfo) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*GetSessionInfo)\n\tif !ok {\n\t\tthat2, ok := that.(GetSessionInfo)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *GetSessionInfoByName) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*GetSessionInfoByName)\n\tif !ok {\n\t\tthat2, ok := that.(GetSessionInfoByName)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Name != that1.Name {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *GetSessionInfoResult) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*GetSessionInfoResult)\n\tif !ok {\n\t\tthat2, ok := that.(GetSessionInfoResult)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif !this.UserInfo.Equal(that1.UserInfo) {\n\t\treturn false\n\t}\n\tif !this.AgentPID.Equal(that1.AgentPID) {\n\t\treturn false\n\t}\n\tif this.Result != that1.Result {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *ClientDisconnect) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*ClientDisconnect)\n\tif !ok {\n\t\tthat2, ok := that.(ClientDisconnect)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *ReceviceClientMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*ReceviceClientMsg)\n\tif !ok {\n\t\tthat2, ok := that.(ReceviceClientMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif !bytes.Equal(this.Rawdata, that1.Rawdata) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *UserLeave) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*UserLeave)\n\tif !ok {\n\t\tthat2, ok := that.(UserLeave)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\tif this.From != that1.From {\n\t\treturn false\n\t}\n\tif this.Reason != that1.Reason {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *Kick) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*Kick)\n\tif !ok {\n\t\tthat2, ok := that.(Kick)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\tif this.Reason != that1.Reason {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *ServerCheckLogin) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*ServerCheckLogin)\n\tif !ok {\n\t\tthat2, ok := that.(ServerCheckLogin)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\tif this.Key != that1.Key {\n\t\treturn false\n\t}\n\tif !this.AgentPID.Equal(that1.AgentPID) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *UserBindServer) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*UserBindServer)\n\tif !ok {\n\t\tthat2, ok := that.(UserBindServer)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Channel != that1.Channel {\n\t\treturn false\n\t}\n\tif !this.Pid.Equal(that1.Pid) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *UserBaseInfo) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*UserBaseInfo)\n\tif !ok {\n\t\tthat2, ok := that.(UserBaseInfo)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Account != that1.Account {\n\t\treturn false\n\t}\n\tif this.Name != that1.Name {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\tif this.Lv != that1.Lv {\n\t\treturn false\n\t}\n\tif this.Exp != that1.Exp {\n\t\treturn false\n\t}\n\tif this.Exptime != that1.Exptime {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *CheckLoginResult) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*CheckLoginResult)\n\tif !ok {\n\t\tthat2, ok := that.(CheckLoginResult)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Result != that1.Result {\n\t\treturn false\n\t}\n\tif !this.BaseInfo.Equal(that1.BaseInfo) {\n\t\treturn false\n\t}\n\tif len(this.BindServers) != len(that1.BindServers) {\n\t\treturn false\n\t}\n\tfor i := range this.BindServers {\n\t\tif !this.BindServers[i].Equal(that1.BindServers[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\nfunc (this *CreatePlayer) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*CreatePlayer)\n\tif !ok {\n\t\tthat2, ok := that.(CreatePlayer)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\tif !this.AgentPID.Equal(that1.AgentPID) {\n\t\treturn false\n\t}\n\tif !this.Sender.Equal(that1.Sender) {\n\t\treturn false\n\t}\n\tif !this.GatePID.Equal(that1.GatePID) {\n\t\treturn false\n\t}\n\tif this.Key != that1.Key {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *CreatePlayerResult) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*CreatePlayerResult)\n\tif !ok {\n\t\tthat2, ok := that.(CreatePlayerResult)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Result != that1.Result {\n\t\treturn false\n\t}\n\tif !this.BaseInfo.Equal(that1.BaseInfo) {\n\t\treturn false\n\t}\n\tif !this.PlayerPID.Equal(that1.PlayerPID) {\n\t\treturn false\n\t}\n\tif !this.TransData.Equal(that1.TransData) {\n\t\treturn false\n\t}\n\tif !this.RoomPID.Equal(that1.RoomPID) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *PlayerOutline) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*PlayerOutline)\n\tif !ok {\n\t\tthat2, ok := that.(PlayerOutline)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Reason != that1.Reason {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *Tick) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*Tick)\n\tif !ok {\n\t\tthat2, ok := that.(Tick)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *TimeFlush) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*TimeFlush)\n\tif !ok {\n\t\tthat2, ok := that.(TimeFlush)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *BattleRoomInfo) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*BattleRoomInfo)\n\tif !ok {\n\t\tthat2, ok := that.(BattleRoomInfo)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\tif this.Rtype != that1.Rtype {\n\t\treturn false\n\t}\n\tif this.Boss != that1.Boss {\n\t\treturn false\n\t}\n\tif this.Key != that1.Key {\n\t\treturn false\n\t}\n\tif this.Hero != that1.Hero {\n\t\treturn false\n\t}\n\tif len(this.Card) != len(that1.Card) {\n\t\treturn false\n\t}\n\tfor i := range this.Card {\n\t\tif this.Card[i] != that1.Card[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(this.Equip) != len(that1.Equip) {\n\t\treturn false\n\t}\n\tfor i := range this.Equip {\n\t\tif this.Equip[i] != that1.Equip[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\tif this.Name != that1.Name {\n\t\treturn false\n\t}\n\tif this.Lv != that1.Lv {\n\t\treturn false\n\t}\n\tif this.Ai != that1.Ai {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *GetLobbyInfo) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*GetLobbyInfo)\n\tif !ok {\n\t\tthat2, ok := that.(GetLobbyInfo)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *LobbyQueueData) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*LobbyQueueData)\n\tif !ok {\n\t\tthat2, ok := that.(LobbyQueueData)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Type != that1.Type {\n\t\treturn false\n\t}\n\tif this.Num != that1.Num {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *BattleServerData) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*BattleServerData)\n\tif !ok {\n\t\tthat2, ok := that.(BattleServerData)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Addr != that1.Addr {\n\t\treturn false\n\t}\n\tif this.Num != that1.Num {\n\t\treturn false\n\t}\n\tif this.State != that1.State {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *GetLobbyInfoResult) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*GetLobbyInfoResult)\n\tif !ok {\n\t\tthat2, ok := that.(GetLobbyInfoResult)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif len(this.Queuedata) != len(that1.Queuedata) {\n\t\treturn false\n\t}\n\tfor i := range this.Queuedata {\n\t\tif !this.Queuedata[i].Equal(that1.Queuedata[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(this.BattleServerData) != len(that1.BattleServerData) {\n\t\treturn false\n\t}\n\tfor i := range this.BattleServerData {\n\t\tif !this.BattleServerData[i].Equal(that1.BattleServerData[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\nfunc (this *GetBattleServer) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*GetBattleServer)\n\tif !ok {\n\t\tthat2, ok := that.(GetBattleServer)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\tif this.Rtype != that1.Rtype {\n\t\treturn false\n\t}\n\tif this.Boss != that1.Boss {\n\t\treturn false\n\t}\n\tif this.Oppuid != that1.Oppuid {\n\t\treturn false\n\t}\n\tif !this.SelfPID.Equal(that1.SelfPID) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *GetBattleServerResult) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*GetBattleServerResult)\n\tif !ok {\n\t\tthat2, ok := that.(GetBattleServerResult)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif !this.BattlePID.Equal(that1.BattlePID) {\n\t\treturn false\n\t}\n\tif this.RoomId != that1.RoomId {\n\t\treturn false\n\t}\n\tif this.Result != that1.Result {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *JoinBattleQueue) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*JoinBattleQueue)\n\tif !ok {\n\t\tthat2, ok := that.(JoinBattleQueue)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\tif this.Rtype != that1.Rtype {\n\t\treturn false\n\t}\n\tif !bytes.Equal(this.RoomInfo, that1.RoomInfo) {\n\t\treturn false\n\t}\n\tif !this.Sender.Equal(that1.Sender) {\n\t\treturn false\n\t}\n\tif this.AiNum != that1.AiNum {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *JoinBattleQueueResult) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*JoinBattleQueueResult)\n\tif !ok {\n\t\tthat2, ok := that.(JoinBattleQueueResult)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Waittime != that1.Waittime {\n\t\treturn false\n\t}\n\tif this.Result != that1.Result {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *LeaveBattleQueue) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*LeaveBattleQueue)\n\tif !ok {\n\t\tthat2, ok := that.(LeaveBattleQueue)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *MatchBattle) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*MatchBattle)\n\tif !ok {\n\t\tthat2, ok := that.(MatchBattle)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.BattleAddr != that1.BattleAddr {\n\t\treturn false\n\t}\n\tif this.RoomId != that1.RoomId {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\tif this.Rtype != that1.Rtype {\n\t\treturn false\n\t}\n\tif !bytes.Equal(this.RoomInfo, that1.RoomInfo) {\n\t\treturn false\n\t}\n\tif this.Result != that1.Result {\n\t\treturn false\n\t}\n\tif !this.RoomPID.Equal(that1.RoomPID) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *CreateBattlePlayer) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*CreateBattlePlayer)\n\tif !ok {\n\t\tthat2, ok := that.(CreateBattlePlayer)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\tif this.Name != that1.Name {\n\t\treturn false\n\t}\n\tif this.Skin != that1.Skin {\n\t\treturn false\n\t}\n\tif !this.AgentPID.Equal(that1.AgentPID) {\n\t\treturn false\n\t}\n\tif !this.PlayerPID.Equal(that1.PlayerPID) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *CreateBattle) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*CreateBattle)\n\tif !ok {\n\t\tthat2, ok := that.(CreateBattle)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.RoomId != that1.RoomId {\n\t\treturn false\n\t}\n\tif this.StageId != that1.StageId {\n\t\treturn false\n\t}\n\tif this.Rtype != that1.Rtype {\n\t\treturn false\n\t}\n\tif len(this.Players) != len(that1.Players) {\n\t\treturn false\n\t}\n\tfor i := range this.Players {\n\t\tif !this.Players[i].Equal(that1.Players[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\nfunc (this *CreateBattleRep) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*CreateBattleRep)\n\tif !ok {\n\t\tthat2, ok := that.(CreateBattleRep)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif !this.RoomPID.Equal(that1.RoomPID) {\n\t\treturn false\n\t}\n\tif this.Result != that1.Result {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *JoinBattle) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*JoinBattle)\n\tif !ok {\n\t\tthat2, ok := that.(JoinBattle)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.RoomId != that1.RoomId {\n\t\treturn false\n\t}\n\tif !this.Player.Equal(that1.Player) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *AttachBattle) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*AttachBattle)\n\tif !ok {\n\t\tthat2, ok := that.(AttachBattle)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif !this.RoomPID.Equal(that1.RoomPID) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *DetachBattle) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*DetachBattle)\n\tif !ok {\n\t\tthat2, ok := that.(DetachBattle)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *RecoverBattle) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*RecoverBattle)\n\tif !ok {\n\t\tthat2, ok := that.(RecoverBattle)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Uid != that1.Uid {\n\t\treturn false\n\t}\n\tif !this.AgentPID.Equal(that1.AgentPID) {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *RecoverBattleRep) Equal(that interface{}) bool {\n\tif that == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tthat1, ok := that.(*RecoverBattleRep)\n\tif !ok {\n\t\tthat2, ok := that.(RecoverBattleRep)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\tif this == nil {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif !this.RoomPID.Equal(that1.RoomPID) {\n\t\treturn false\n\t}\n\tif this.Result != that1.Result {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *CheckLogin) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.CheckLogin{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"Key: \"+fmt.Sprintf(\"%#v\", this.Key)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *HeartBeatMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 4)\n\ts = append(s, \"&msgs.HeartBeatMsg{\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *C2S_ShopBuyMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.C2S_ShopBuyMsg{\")\n\ts = append(s, \"ItemId: \"+fmt.Sprintf(\"%#v\", this.ItemId)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *S2C_ShopBuyMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.S2C_ShopBuyMsg{\")\n\ts = append(s, \"ItemId: \"+fmt.Sprintf(\"%#v\", this.ItemId)+\",\\n\")\n\ts = append(s, \"Result: \"+fmt.Sprintf(\"%#v\", this.Result)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *FrameMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 8)\n\ts = append(s, \"&msgs.FrameMsg{\")\n\ts = append(s, \"Channel: \"+fmt.Sprintf(\"%#v\", this.Channel)+\",\\n\")\n\ts = append(s, \"MsgId: \"+fmt.Sprintf(\"%#v\", this.MsgId)+\",\\n\")\n\ts = append(s, \"RawData: \"+fmt.Sprintf(\"%#v\", this.RawData)+\",\\n\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *FrameMsgJson) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 8)\n\ts = append(s, \"&msgs.FrameMsgJson{\")\n\ts = append(s, \"Channel: \"+fmt.Sprintf(\"%#v\", this.Channel)+\",\\n\")\n\ts = append(s, \"MsgId: \"+fmt.Sprintf(\"%#v\", this.MsgId)+\",\\n\")\n\ts = append(s, \"RawData: \"+fmt.Sprintf(\"%#v\", this.RawData)+\",\\n\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *FrameMsgReq) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.FrameMsgReq{\")\n\tif this.Frame != nil {\n\t\ts = append(s, \"Frame: \"+fmt.Sprintf(\"%#v\", this.Frame)+\",\\n\")\n\t}\n\ts = append(s, \"Cno: \"+fmt.Sprintf(\"%#v\", this.Cno)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *FrameMsgRep) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.FrameMsgRep{\")\n\ts = append(s, \"ErrCode: \"+fmt.Sprintf(\"%#v\", this.ErrCode)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *UnicastFrameMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.UnicastFrameMsg{\")\n\tif this.FrameMsg != nil {\n\t\ts = append(s, \"FrameMsg: \"+fmt.Sprintf(\"%#v\", this.FrameMsg)+\",\\n\")\n\t}\n\ts = append(s, \"Target: \"+fmt.Sprintf(\"%#v\", this.Target)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *MulticastFrameMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.MulticastFrameMsg{\")\n\tif this.FrameMsg != nil {\n\t\ts = append(s, \"FrameMsg: \"+fmt.Sprintf(\"%#v\", this.FrameMsg)+\",\\n\")\n\t}\n\ts = append(s, \"Targets: \"+fmt.Sprintf(\"%#v\", this.Targets)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *BroadcastFrameMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.BroadcastFrameMsg{\")\n\tif this.FrameMsg != nil {\n\t\ts = append(s, \"FrameMsg: \"+fmt.Sprintf(\"%#v\", this.FrameMsg)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *BroadcastFrameMsgJson) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.BroadcastFrameMsgJson{\")\n\tif this.FrameMsg != nil {\n\t\ts = append(s, \"FrameMsg: \"+fmt.Sprintf(\"%#v\", this.FrameMsg)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *AddAgentToParent) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.AddAgentToParent{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\tif this.Sender != nil {\n\t\ts = append(s, \"Sender: \"+fmt.Sprintf(\"%#v\", this.Sender)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *RemoveAgentFromParent) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.RemoveAgentFromParent{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *NewChild) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 4)\n\ts = append(s, \"&msgs.NewChild{\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *NewChildResult) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.NewChildResult{\")\n\tif this.Pid != nil {\n\t\ts = append(s, \"Pid: \"+fmt.Sprintf(\"%#v\", this.Pid)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *Connect) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.Connect{\")\n\tif this.Sender != nil {\n\t\ts = append(s, \"Sender: \"+fmt.Sprintf(\"%#v\", this.Sender)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *Connected) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.Connected{\")\n\ts = append(s, \"Message: \"+fmt.Sprintf(\"%#v\", this.Message)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *SpawnAgent) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 4)\n\ts = append(s, \"&msgs.SpawnAgent{\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *ServiceValue) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.ServiceValue{\")\n\ts = append(s, \"Key: \"+fmt.Sprintf(\"%#v\", this.Key)+\",\\n\")\n\ts = append(s, \"Value: \"+fmt.Sprintf(\"%#v\", this.Value)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *AddService) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 8)\n\ts = append(s, \"&msgs.AddService{\")\n\ts = append(s, \"ServiceName: \"+fmt.Sprintf(\"%#v\", this.ServiceName)+\",\\n\")\n\ts = append(s, \"ServiceType: \"+fmt.Sprintf(\"%#v\", this.ServiceType)+\",\\n\")\n\tif this.Pid != nil {\n\t\ts = append(s, \"Pid: \"+fmt.Sprintf(\"%#v\", this.Pid)+\",\\n\")\n\t}\n\tif this.Values != nil {\n\t\ts = append(s, \"Values: \"+fmt.Sprintf(\"%#v\", this.Values)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *AddServiceRep) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.AddServiceRep{\")\n\ts = append(s, \"Result: \"+fmt.Sprintf(\"%#v\", this.Result)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *SendOK) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 4)\n\ts = append(s, \"&msgs.SendOK{\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *RemoveService) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.RemoveService{\")\n\ts = append(s, \"ServiceName: \"+fmt.Sprintf(\"%#v\", this.ServiceName)+\",\\n\")\n\ts = append(s, \"ServiceType: \"+fmt.Sprintf(\"%#v\", this.ServiceType)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *ApplyService) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.ApplyService{\")\n\ts = append(s, \"ServiceType: \"+fmt.Sprintf(\"%#v\", this.ServiceType)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *ApplyServiceResult) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 9)\n\ts = append(s, \"&msgs.ApplyServiceResult{\")\n\ts = append(s, \"ServiceType: \"+fmt.Sprintf(\"%#v\", this.ServiceType)+\",\\n\")\n\ts = append(s, \"ServiceName: \"+fmt.Sprintf(\"%#v\", this.ServiceName)+\",\\n\")\n\tif this.Pid != nil {\n\t\ts = append(s, \"Pid: \"+fmt.Sprintf(\"%#v\", this.Pid)+\",\\n\")\n\t}\n\tif this.Values != nil {\n\t\ts = append(s, \"Values: \"+fmt.Sprintf(\"%#v\", this.Values)+\",\\n\")\n\t}\n\ts = append(s, \"Result: \"+fmt.Sprintf(\"%#v\", this.Result)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *GetTypeServices) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.GetTypeServices{\")\n\ts = append(s, \"ServiceType: \"+fmt.Sprintf(\"%#v\", this.ServiceType)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *GetTypeServicesResult) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.GetTypeServicesResult{\")\n\tif this.Pids != nil {\n\t\ts = append(s, \"Pids: \"+fmt.Sprintf(\"%#v\", this.Pids)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *UploadService) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&msgs.UploadService{\")\n\ts = append(s, \"ServiceName: \"+fmt.Sprintf(\"%#v\", this.ServiceName)+\",\\n\")\n\ts = append(s, \"Load: \"+fmt.Sprintf(\"%#v\", this.Load)+\",\\n\")\n\ts = append(s, \"State: \"+fmt.Sprintf(\"%#v\", this.State)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *UserLogin) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.UserLogin{\")\n\ts = append(s, \"Account: \"+fmt.Sprintf(\"%#v\", this.Account)+\",\\n\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *GetSessionInfo) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.GetSessionInfo{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *GetSessionInfoByName) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.GetSessionInfoByName{\")\n\ts = append(s, \"Name: \"+fmt.Sprintf(\"%#v\", this.Name)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *GetSessionInfoResult) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&msgs.GetSessionInfoResult{\")\n\tif this.UserInfo != nil {\n\t\ts = append(s, \"UserInfo: \"+fmt.Sprintf(\"%#v\", this.UserInfo)+\",\\n\")\n\t}\n\tif this.AgentPID != nil {\n\t\ts = append(s, \"AgentPID: \"+fmt.Sprintf(\"%#v\", this.AgentPID)+\",\\n\")\n\t}\n\ts = append(s, \"Result: \"+fmt.Sprintf(\"%#v\", this.Result)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *ClientDisconnect) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 4)\n\ts = append(s, \"&msgs.ClientDisconnect{\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *ReceviceClientMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.ReceviceClientMsg{\")\n\ts = append(s, \"Rawdata: \"+fmt.Sprintf(\"%#v\", this.Rawdata)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *UserLeave) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&msgs.UserLeave{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"From: \"+fmt.Sprintf(\"%#v\", this.From)+\",\\n\")\n\ts = append(s, \"Reason: \"+fmt.Sprintf(\"%#v\", this.Reason)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *Kick) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.Kick{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"Reason: \"+fmt.Sprintf(\"%#v\", this.Reason)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *ServerCheckLogin) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&msgs.ServerCheckLogin{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"Key: \"+fmt.Sprintf(\"%#v\", this.Key)+\",\\n\")\n\tif this.AgentPID != nil {\n\t\ts = append(s, \"AgentPID: \"+fmt.Sprintf(\"%#v\", this.AgentPID)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *UserBindServer) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.UserBindServer{\")\n\ts = append(s, \"Channel: \"+fmt.Sprintf(\"%#v\", this.Channel)+\",\\n\")\n\tif this.Pid != nil {\n\t\ts = append(s, \"Pid: \"+fmt.Sprintf(\"%#v\", this.Pid)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *UserBaseInfo) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 10)\n\ts = append(s, \"&msgs.UserBaseInfo{\")\n\ts = append(s, \"Account: \"+fmt.Sprintf(\"%#v\", this.Account)+\",\\n\")\n\ts = append(s, \"Name: \"+fmt.Sprintf(\"%#v\", this.Name)+\",\\n\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"Lv: \"+fmt.Sprintf(\"%#v\", this.Lv)+\",\\n\")\n\ts = append(s, \"Exp: \"+fmt.Sprintf(\"%#v\", this.Exp)+\",\\n\")\n\ts = append(s, \"Exptime: \"+fmt.Sprintf(\"%#v\", this.Exptime)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *CheckLoginResult) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&msgs.CheckLoginResult{\")\n\ts = append(s, \"Result: \"+fmt.Sprintf(\"%#v\", this.Result)+\",\\n\")\n\tif this.BaseInfo != nil {\n\t\ts = append(s, \"BaseInfo: \"+fmt.Sprintf(\"%#v\", this.BaseInfo)+\",\\n\")\n\t}\n\tif this.BindServers != nil {\n\t\ts = append(s, \"BindServers: \"+fmt.Sprintf(\"%#v\", this.BindServers)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *CreatePlayer) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 9)\n\ts = append(s, \"&msgs.CreatePlayer{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\tif this.AgentPID != nil {\n\t\ts = append(s, \"AgentPID: \"+fmt.Sprintf(\"%#v\", this.AgentPID)+\",\\n\")\n\t}\n\tif this.Sender != nil {\n\t\ts = append(s, \"Sender: \"+fmt.Sprintf(\"%#v\", this.Sender)+\",\\n\")\n\t}\n\tif this.GatePID != nil {\n\t\ts = append(s, \"GatePID: \"+fmt.Sprintf(\"%#v\", this.GatePID)+\",\\n\")\n\t}\n\ts = append(s, \"Key: \"+fmt.Sprintf(\"%#v\", this.Key)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *CreatePlayerResult) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 9)\n\ts = append(s, \"&msgs.CreatePlayerResult{\")\n\ts = append(s, \"Result: \"+fmt.Sprintf(\"%#v\", this.Result)+\",\\n\")\n\tif this.BaseInfo != nil {\n\t\ts = append(s, \"BaseInfo: \"+fmt.Sprintf(\"%#v\", this.BaseInfo)+\",\\n\")\n\t}\n\tif this.PlayerPID != nil {\n\t\ts = append(s, \"PlayerPID: \"+fmt.Sprintf(\"%#v\", this.PlayerPID)+\",\\n\")\n\t}\n\tif this.TransData != nil {\n\t\ts = append(s, \"TransData: \"+fmt.Sprintf(\"%#v\", this.TransData)+\",\\n\")\n\t}\n\tif this.RoomPID != nil {\n\t\ts = append(s, \"RoomPID: \"+fmt.Sprintf(\"%#v\", this.RoomPID)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *PlayerOutline) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.PlayerOutline{\")\n\ts = append(s, \"Reason: \"+fmt.Sprintf(\"%#v\", this.Reason)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *Tick) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 4)\n\ts = append(s, \"&msgs.Tick{\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *TimeFlush) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 4)\n\ts = append(s, \"&msgs.TimeFlush{\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *BattleRoomInfo) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 14)\n\ts = append(s, \"&msgs.BattleRoomInfo{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"Rtype: \"+fmt.Sprintf(\"%#v\", this.Rtype)+\",\\n\")\n\ts = append(s, \"Boss: \"+fmt.Sprintf(\"%#v\", this.Boss)+\",\\n\")\n\ts = append(s, \"Key: \"+fmt.Sprintf(\"%#v\", this.Key)+\",\\n\")\n\ts = append(s, \"Hero: \"+fmt.Sprintf(\"%#v\", this.Hero)+\",\\n\")\n\ts = append(s, \"Card: \"+fmt.Sprintf(\"%#v\", this.Card)+\",\\n\")\n\ts = append(s, \"Equip: \"+fmt.Sprintf(\"%#v\", this.Equip)+\",\\n\")\n\ts = append(s, \"Name: \"+fmt.Sprintf(\"%#v\", this.Name)+\",\\n\")\n\ts = append(s, \"Lv: \"+fmt.Sprintf(\"%#v\", this.Lv)+\",\\n\")\n\ts = append(s, \"Ai: \"+fmt.Sprintf(\"%#v\", this.Ai)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *GetLobbyInfo) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 4)\n\ts = append(s, \"&msgs.GetLobbyInfo{\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *LobbyQueueData) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.LobbyQueueData{\")\n\ts = append(s, \"Type: \"+fmt.Sprintf(\"%#v\", this.Type)+\",\\n\")\n\ts = append(s, \"Num: \"+fmt.Sprintf(\"%#v\", this.Num)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *BattleServerData) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&msgs.BattleServerData{\")\n\ts = append(s, \"Addr: \"+fmt.Sprintf(\"%#v\", this.Addr)+\",\\n\")\n\ts = append(s, \"Num: \"+fmt.Sprintf(\"%#v\", this.Num)+\",\\n\")\n\ts = append(s, \"State: \"+fmt.Sprintf(\"%#v\", this.State)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *GetLobbyInfoResult) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.GetLobbyInfoResult{\")\n\tif this.Queuedata != nil {\n\t\ts = append(s, \"Queuedata: \"+fmt.Sprintf(\"%#v\", this.Queuedata)+\",\\n\")\n\t}\n\tif this.BattleServerData != nil {\n\t\ts = append(s, \"BattleServerData: \"+fmt.Sprintf(\"%#v\", this.BattleServerData)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *GetBattleServer) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 9)\n\ts = append(s, \"&msgs.GetBattleServer{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"Rtype: \"+fmt.Sprintf(\"%#v\", this.Rtype)+\",\\n\")\n\ts = append(s, \"Boss: \"+fmt.Sprintf(\"%#v\", this.Boss)+\",\\n\")\n\ts = append(s, \"Oppuid: \"+fmt.Sprintf(\"%#v\", this.Oppuid)+\",\\n\")\n\tif this.SelfPID != nil {\n\t\ts = append(s, \"SelfPID: \"+fmt.Sprintf(\"%#v\", this.SelfPID)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *GetBattleServerResult) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 7)\n\ts = append(s, \"&msgs.GetBattleServerResult{\")\n\tif this.BattlePID != nil {\n\t\ts = append(s, \"BattlePID: \"+fmt.Sprintf(\"%#v\", this.BattlePID)+\",\\n\")\n\t}\n\ts = append(s, \"RoomId: \"+fmt.Sprintf(\"%#v\", this.RoomId)+\",\\n\")\n\ts = append(s, \"Result: \"+fmt.Sprintf(\"%#v\", this.Result)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *JoinBattleQueue) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 9)\n\ts = append(s, \"&msgs.JoinBattleQueue{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"Rtype: \"+fmt.Sprintf(\"%#v\", this.Rtype)+\",\\n\")\n\ts = append(s, \"RoomInfo: \"+fmt.Sprintf(\"%#v\", this.RoomInfo)+\",\\n\")\n\tif this.Sender != nil {\n\t\ts = append(s, \"Sender: \"+fmt.Sprintf(\"%#v\", this.Sender)+\",\\n\")\n\t}\n\ts = append(s, \"AiNum: \"+fmt.Sprintf(\"%#v\", this.AiNum)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *JoinBattleQueueResult) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.JoinBattleQueueResult{\")\n\ts = append(s, \"Waittime: \"+fmt.Sprintf(\"%#v\", this.Waittime)+\",\\n\")\n\ts = append(s, \"Result: \"+fmt.Sprintf(\"%#v\", this.Result)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *LeaveBattleQueue) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.LeaveBattleQueue{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *MatchBattle) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 11)\n\ts = append(s, \"&msgs.MatchBattle{\")\n\ts = append(s, \"BattleAddr: \"+fmt.Sprintf(\"%#v\", this.BattleAddr)+\",\\n\")\n\ts = append(s, \"RoomId: \"+fmt.Sprintf(\"%#v\", this.RoomId)+\",\\n\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"Rtype: \"+fmt.Sprintf(\"%#v\", this.Rtype)+\",\\n\")\n\ts = append(s, \"RoomInfo: \"+fmt.Sprintf(\"%#v\", this.RoomInfo)+\",\\n\")\n\ts = append(s, \"Result: \"+fmt.Sprintf(\"%#v\", this.Result)+\",\\n\")\n\tif this.RoomPID != nil {\n\t\ts = append(s, \"RoomPID: \"+fmt.Sprintf(\"%#v\", this.RoomPID)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *CreateBattlePlayer) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 9)\n\ts = append(s, \"&msgs.CreateBattlePlayer{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\ts = append(s, \"Name: \"+fmt.Sprintf(\"%#v\", this.Name)+\",\\n\")\n\ts = append(s, \"Skin: \"+fmt.Sprintf(\"%#v\", this.Skin)+\",\\n\")\n\tif this.AgentPID != nil {\n\t\ts = append(s, \"AgentPID: \"+fmt.Sprintf(\"%#v\", this.AgentPID)+\",\\n\")\n\t}\n\tif this.PlayerPID != nil {\n\t\ts = append(s, \"PlayerPID: \"+fmt.Sprintf(\"%#v\", this.PlayerPID)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *CreateBattle) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 8)\n\ts = append(s, \"&msgs.CreateBattle{\")\n\ts = append(s, \"RoomId: \"+fmt.Sprintf(\"%#v\", this.RoomId)+\",\\n\")\n\ts = append(s, \"StageId: \"+fmt.Sprintf(\"%#v\", this.StageId)+\",\\n\")\n\ts = append(s, \"Rtype: \"+fmt.Sprintf(\"%#v\", this.Rtype)+\",\\n\")\n\tif this.Players != nil {\n\t\ts = append(s, \"Players: \"+fmt.Sprintf(\"%#v\", this.Players)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *CreateBattleRep) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.CreateBattleRep{\")\n\tif this.RoomPID != nil {\n\t\ts = append(s, \"RoomPID: \"+fmt.Sprintf(\"%#v\", this.RoomPID)+\",\\n\")\n\t}\n\ts = append(s, \"Result: \"+fmt.Sprintf(\"%#v\", this.Result)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *JoinBattle) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.JoinBattle{\")\n\ts = append(s, \"RoomId: \"+fmt.Sprintf(\"%#v\", this.RoomId)+\",\\n\")\n\tif this.Player != nil {\n\t\ts = append(s, \"Player: \"+fmt.Sprintf(\"%#v\", this.Player)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *AttachBattle) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&msgs.AttachBattle{\")\n\tif this.RoomPID != nil {\n\t\ts = append(s, \"RoomPID: \"+fmt.Sprintf(\"%#v\", this.RoomPID)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *DetachBattle) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 4)\n\ts = append(s, \"&msgs.DetachBattle{\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *RecoverBattle) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.RecoverBattle{\")\n\ts = append(s, \"Uid: \"+fmt.Sprintf(\"%#v\", this.Uid)+\",\\n\")\n\tif this.AgentPID != nil {\n\t\ts = append(s, \"AgentPID: \"+fmt.Sprintf(\"%#v\", this.AgentPID)+\",\\n\")\n\t}\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *RecoverBattleRep) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&msgs.RecoverBattleRep{\")\n\tif this.RoomPID != nil {\n\t\ts = append(s, \"RoomPID: \"+fmt.Sprintf(\"%#v\", this.RoomPID)+\",\\n\")\n\t}\n\ts = append(s, \"Result: \"+fmt.Sprintf(\"%#v\", this.Result)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc valueToGoStringProtos(v interface{}, typ string) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"func(v %v) *%v { return &v } ( %#v )\", typ, typ, pv)\n}\nfunc (m *CheckLogin) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CheckLogin) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\tif len(m.Key) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Key)))\n\t\ti += copy(dAtA[i:], m.Key)\n\t}\n\treturn i, nil\n}\n\nfunc (m *HeartBeatMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HeartBeatMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn i, nil\n}\n\nfunc (m *C2S_ShopBuyMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *C2S_ShopBuyMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ItemId != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.ItemId))\n\t}\n\treturn i, nil\n}\n\nfunc (m *S2C_ShopBuyMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *S2C_ShopBuyMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ItemId != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.ItemId))\n\t}\n\tif m.Result != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Result))\n\t}\n\treturn i, nil\n}\n\nfunc (m *FrameMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FrameMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Channel != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Channel))\n\t}\n\tif m.MsgId != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.MsgId))\n\t}\n\tif len(m.RawData) > 0 {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.RawData)))\n\t\ti += copy(dAtA[i:], m.RawData)\n\t}\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x20\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\treturn i, nil\n}\n\nfunc (m *FrameMsgJson) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FrameMsgJson) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Channel != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Channel))\n\t}\n\tif len(m.MsgId) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.MsgId)))\n\t\ti += copy(dAtA[i:], m.MsgId)\n\t}\n\tif len(m.RawData) > 0 {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.RawData)))\n\t\ti += copy(dAtA[i:], m.RawData)\n\t}\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x20\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\treturn i, nil\n}\n\nfunc (m *FrameMsgReq) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FrameMsgReq) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Frame != nil {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Frame.Size()))\n\t\tn1, err := m.Frame.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n1\n\t}\n\tif m.Cno != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Cno))\n\t}\n\treturn i, nil\n}\n\nfunc (m *FrameMsgRep) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FrameMsgRep) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ErrCode != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.ErrCode))\n\t}\n\treturn i, nil\n}\n\nfunc (m *UnicastFrameMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UnicastFrameMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.FrameMsg != nil {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.FrameMsg.Size()))\n\t\tn2, err := m.FrameMsg.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n2\n\t}\n\tif m.Target != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Target))\n\t}\n\treturn i, nil\n}\n\nfunc (m *MulticastFrameMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MulticastFrameMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.FrameMsg != nil {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.FrameMsg.Size()))\n\t\tn3, err := m.FrameMsg.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n3\n\t}\n\tif len(m.Targets) > 0 {\n\t\tdAtA5 := make([]byte, len(m.Targets)*10)\n\t\tvar j4 int\n\t\tfor _, num := range m.Targets {\n\t\t\tfor num >= 1<<7 {\n\t\t\t\tdAtA5[j4] = uint8(uint64(num)&0x7f | 0x80)\n\t\t\t\tnum >>= 7\n\t\t\t\tj4++\n\t\t\t}\n\t\t\tdAtA5[j4] = uint8(num)\n\t\t\tj4++\n\t\t}\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(j4))\n\t\ti += copy(dAtA[i:], dAtA5[:j4])\n\t}\n\treturn i, nil\n}\n\nfunc (m *BroadcastFrameMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *BroadcastFrameMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.FrameMsg != nil {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.FrameMsg.Size()))\n\t\tn6, err := m.FrameMsg.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n6\n\t}\n\treturn i, nil\n}\n\nfunc (m *BroadcastFrameMsgJson) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *BroadcastFrameMsgJson) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.FrameMsg != nil {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.FrameMsg.Size()))\n\t\tn7, err := m.FrameMsg.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n7\n\t}\n\treturn i, nil\n}\n\nfunc (m *AddAgentToParent) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AddAgentToParent) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\tif m.Sender != nil {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Sender.Size()))\n\t\tn8, err := m.Sender.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n8\n\t}\n\treturn i, nil\n}\n\nfunc (m *RemoveAgentFromParent) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RemoveAgentFromParent) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\treturn i, nil\n}\n\nfunc (m *NewChild) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NewChild) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn i, nil\n}\n\nfunc (m *NewChildResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NewChildResult) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Pid != nil {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Pid.Size()))\n\t\tn9, err := m.Pid.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n9\n\t}\n\treturn i, nil\n}\n\nfunc (m *Connect) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Connect) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Sender != nil {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Sender.Size()))\n\t\tn10, err := m.Sender.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n10\n\t}\n\treturn i, nil\n}\n\nfunc (m *Connected) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Connected) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Message) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Message)))\n\t\ti += copy(dAtA[i:], m.Message)\n\t}\n\treturn i, nil\n}\n\nfunc (m *SpawnAgent) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SpawnAgent) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn i, nil\n}\n\nfunc (m *ServiceValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceValue) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Key) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Key)))\n\t\ti += copy(dAtA[i:], m.Key)\n\t}\n\tif len(m.Value) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Value)))\n\t\ti += copy(dAtA[i:], m.Value)\n\t}\n\treturn i, nil\n}\n\nfunc (m *AddService) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AddService) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ServiceName) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.ServiceName)))\n\t\ti += copy(dAtA[i:], m.ServiceName)\n\t}\n\tif len(m.ServiceType) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.ServiceType)))\n\t\ti += copy(dAtA[i:], m.ServiceType)\n\t}\n\tif m.Pid != nil {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Pid.Size()))\n\t\tn11, err := m.Pid.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n11\n\t}\n\tif len(m.Values) > 0 {\n\t\tfor _, msg := range m.Values {\n\t\t\tdAtA[i] = 0x22\n\t\t\ti++\n\t\t\ti = encodeVarintProtos(dAtA, i, uint64(msg.Size()))\n\t\t\tn, err := msg.MarshalTo(dAtA[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti += n\n\t\t}\n\t}\n\treturn i, nil\n}\n\nfunc (m *AddServiceRep) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AddServiceRep) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Result != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Result))\n\t}\n\treturn i, nil\n}\n\nfunc (m *SendOK) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SendOK) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn i, nil\n}\n\nfunc (m *RemoveService) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RemoveService) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ServiceName) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.ServiceName)))\n\t\ti += copy(dAtA[i:], m.ServiceName)\n\t}\n\tif len(m.ServiceType) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.ServiceType)))\n\t\ti += copy(dAtA[i:], m.ServiceType)\n\t}\n\treturn i, nil\n}\n\nfunc (m *ApplyService) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ApplyService) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ServiceType) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.ServiceType)))\n\t\ti += copy(dAtA[i:], m.ServiceType)\n\t}\n\treturn i, nil\n}\n\nfunc (m *ApplyServiceResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ApplyServiceResult) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ServiceType) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.ServiceType)))\n\t\ti += copy(dAtA[i:], m.ServiceType)\n\t}\n\tif len(m.ServiceName) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.ServiceName)))\n\t\ti += copy(dAtA[i:], m.ServiceName)\n\t}\n\tif m.Pid != nil {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Pid.Size()))\n\t\tn12, err := m.Pid.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n12\n\t}\n\tif len(m.Values) > 0 {\n\t\tfor _, msg := range m.Values {\n\t\t\tdAtA[i] = 0x22\n\t\t\ti++\n\t\t\ti = encodeVarintProtos(dAtA, i, uint64(msg.Size()))\n\t\t\tn, err := msg.MarshalTo(dAtA[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti += n\n\t\t}\n\t}\n\tif m.Result != 0 {\n\t\tdAtA[i] = 0x28\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Result))\n\t}\n\treturn i, nil\n}\n\nfunc (m *GetTypeServices) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GetTypeServices) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ServiceType) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.ServiceType)))\n\t\ti += copy(dAtA[i:], m.ServiceType)\n\t}\n\treturn i, nil\n}\n\nfunc (m *GetTypeServicesResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GetTypeServicesResult) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Pids) > 0 {\n\t\tfor _, msg := range m.Pids {\n\t\t\tdAtA[i] = 0xa\n\t\t\ti++\n\t\t\ti = encodeVarintProtos(dAtA, i, uint64(msg.Size()))\n\t\t\tn, err := msg.MarshalTo(dAtA[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti += n\n\t\t}\n\t}\n\treturn i, nil\n}\n\nfunc (m *UploadService) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UploadService) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ServiceName) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.ServiceName)))\n\t\ti += copy(dAtA[i:], m.ServiceName)\n\t}\n\tif m.Load != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Load))\n\t}\n\tif m.State != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.State))\n\t}\n\treturn i, nil\n}\n\nfunc (m *UserLogin) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserLogin) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Account) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Account)))\n\t\ti += copy(dAtA[i:], m.Account)\n\t}\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\treturn i, nil\n}\n\nfunc (m *GetSessionInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GetSessionInfo) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\treturn i, nil\n}\n\nfunc (m *GetSessionInfoByName) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GetSessionInfoByName) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Name) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Name)))\n\t\ti += copy(dAtA[i:], m.Name)\n\t}\n\treturn i, nil\n}\n\nfunc (m *GetSessionInfoResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GetSessionInfoResult) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.UserInfo != nil {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.UserInfo.Size()))\n\t\tn13, err := m.UserInfo.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n13\n\t}\n\tif m.AgentPID != nil {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.AgentPID.Size()))\n\t\tn14, err := m.AgentPID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n14\n\t}\n\tif m.Result != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Result))\n\t}\n\treturn i, nil\n}\n\nfunc (m *ClientDisconnect) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClientDisconnect) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn i, nil\n}\n\nfunc (m *ReceviceClientMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReceviceClientMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rawdata) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Rawdata)))\n\t\ti += copy(dAtA[i:], m.Rawdata)\n\t}\n\treturn i, nil\n}\n\nfunc (m *UserLeave) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserLeave) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\tif m.From != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.From))\n\t}\n\tif len(m.Reason) > 0 {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Reason)))\n\t\ti += copy(dAtA[i:], m.Reason)\n\t}\n\treturn i, nil\n}\n\nfunc (m *Kick) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Kick) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\tif len(m.Reason) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Reason)))\n\t\ti += copy(dAtA[i:], m.Reason)\n\t}\n\treturn i, nil\n}\n\nfunc (m *ServerCheckLogin) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServerCheckLogin) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\tif len(m.Key) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Key)))\n\t\ti += copy(dAtA[i:], m.Key)\n\t}\n\tif m.AgentPID != nil {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.AgentPID.Size()))\n\t\tn15, err := m.AgentPID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n15\n\t}\n\treturn i, nil\n}\n\nfunc (m *UserBindServer) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserBindServer) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Channel != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Channel))\n\t}\n\tif m.Pid != nil {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Pid.Size()))\n\t\tn16, err := m.Pid.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n16\n\t}\n\treturn i, nil\n}\n\nfunc (m *UserBaseInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserBaseInfo) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Account) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Account)))\n\t\ti += copy(dAtA[i:], m.Account)\n\t}\n\tif len(m.Name) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Name)))\n\t\ti += copy(dAtA[i:], m.Name)\n\t}\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\tif m.Lv != 0 {\n\t\tdAtA[i] = 0x20\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Lv))\n\t}\n\tif m.Exp != 0 {\n\t\tdAtA[i] = 0x28\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Exp))\n\t}\n\tif m.Exptime != 0 {\n\t\tdAtA[i] = 0x30\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Exptime))\n\t}\n\treturn i, nil\n}\n\nfunc (m *CheckLoginResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CheckLoginResult) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Result != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Result))\n\t}\n\tif m.BaseInfo != nil {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.BaseInfo.Size()))\n\t\tn17, err := m.BaseInfo.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n17\n\t}\n\tif len(m.BindServers) > 0 {\n\t\tfor _, msg := range m.BindServers {\n\t\t\tdAtA[i] = 0x1a\n\t\t\ti++\n\t\t\ti = encodeVarintProtos(dAtA, i, uint64(msg.Size()))\n\t\t\tn, err := msg.MarshalTo(dAtA[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti += n\n\t\t}\n\t}\n\treturn i, nil\n}\n\nfunc (m *CreatePlayer) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CreatePlayer) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\tif m.AgentPID != nil {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.AgentPID.Size()))\n\t\tn18, err := m.AgentPID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n18\n\t}\n\tif m.Sender != nil {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Sender.Size()))\n\t\tn19, err := m.Sender.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n19\n\t}\n\tif m.GatePID != nil {\n\t\tdAtA[i] = 0x22\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.GatePID.Size()))\n\t\tn20, err := m.GatePID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n20\n\t}\n\tif len(m.Key) > 0 {\n\t\tdAtA[i] = 0x2a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Key)))\n\t\ti += copy(dAtA[i:], m.Key)\n\t}\n\treturn i, nil\n}\n\nfunc (m *CreatePlayerResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CreatePlayerResult) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Result != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Result))\n\t}\n\tif m.BaseInfo != nil {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.BaseInfo.Size()))\n\t\tn21, err := m.BaseInfo.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n21\n\t}\n\tif m.PlayerPID != nil {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.PlayerPID.Size()))\n\t\tn22, err := m.PlayerPID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n22\n\t}\n\tif m.TransData != nil {\n\t\tdAtA[i] = 0x22\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.TransData.Size()))\n\t\tn23, err := m.TransData.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n23\n\t}\n\tif m.RoomPID != nil {\n\t\tdAtA[i] = 0x2a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.RoomPID.Size()))\n\t\tn24, err := m.RoomPID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n24\n\t}\n\treturn i, nil\n}\n\nfunc (m *PlayerOutline) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PlayerOutline) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Reason) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Reason)))\n\t\ti += copy(dAtA[i:], m.Reason)\n\t}\n\treturn i, nil\n}\n\nfunc (m *Tick) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Tick) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn i, nil\n}\n\nfunc (m *TimeFlush) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TimeFlush) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn i, nil\n}\n\nfunc (m *BattleRoomInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *BattleRoomInfo) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\tif m.Rtype != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Rtype))\n\t}\n\tif m.Boss != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Boss))\n\t}\n\tif len(m.Key) > 0 {\n\t\tdAtA[i] = 0x22\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Key)))\n\t\ti += copy(dAtA[i:], m.Key)\n\t}\n\tif m.Hero != 0 {\n\t\tdAtA[i] = 0x28\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Hero))\n\t}\n\tif len(m.Card) > 0 {\n\t\tfor _, s := range m.Card {\n\t\t\tdAtA[i] = 0x32\n\t\t\ti++\n\t\t\tl = len(s)\n\t\t\tfor l >= 1<<7 {\n\t\t\t\tdAtA[i] = uint8(uint64(l)&0x7f | 0x80)\n\t\t\t\tl >>= 7\n\t\t\t\ti++\n\t\t\t}\n\t\t\tdAtA[i] = uint8(l)\n\t\t\ti++\n\t\t\ti += copy(dAtA[i:], s)\n\t\t}\n\t}\n\tif len(m.Equip) > 0 {\n\t\tdAtA26 := make([]byte, len(m.Equip)*10)\n\t\tvar j25 int\n\t\tfor _, num1 := range m.Equip {\n\t\t\tnum := uint64(num1)\n\t\t\tfor num >= 1<<7 {\n\t\t\t\tdAtA26[j25] = uint8(uint64(num)&0x7f | 0x80)\n\t\t\t\tnum >>= 7\n\t\t\t\tj25++\n\t\t\t}\n\t\t\tdAtA26[j25] = uint8(num)\n\t\t\tj25++\n\t\t}\n\t\tdAtA[i] = 0x3a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(j25))\n\t\ti += copy(dAtA[i:], dAtA26[:j25])\n\t}\n\tif len(m.Name) > 0 {\n\t\tdAtA[i] = 0x42\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Name)))\n\t\ti += copy(dAtA[i:], m.Name)\n\t}\n\tif m.Lv != 0 {\n\t\tdAtA[i] = 0x48\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Lv))\n\t}\n\tif m.Ai != 0 {\n\t\tdAtA[i] = 0x50\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Ai))\n\t}\n\treturn i, nil\n}\n\nfunc (m *GetLobbyInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GetLobbyInfo) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn i, nil\n}\n\nfunc (m *LobbyQueueData) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LobbyQueueData) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Type != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Type))\n\t}\n\tif m.Num != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Num))\n\t}\n\treturn i, nil\n}\n\nfunc (m *BattleServerData) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *BattleServerData) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Addr) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Addr)))\n\t\ti += copy(dAtA[i:], m.Addr)\n\t}\n\tif m.Num != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Num))\n\t}\n\tif m.State != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.State))\n\t}\n\treturn i, nil\n}\n\nfunc (m *GetLobbyInfoResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GetLobbyInfoResult) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Queuedata) > 0 {\n\t\tfor _, msg := range m.Queuedata {\n\t\t\tdAtA[i] = 0xa\n\t\t\ti++\n\t\t\ti = encodeVarintProtos(dAtA, i, uint64(msg.Size()))\n\t\t\tn, err := msg.MarshalTo(dAtA[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti += n\n\t\t}\n\t}\n\tif len(m.BattleServerData) > 0 {\n\t\tfor _, msg := range m.BattleServerData {\n\t\t\tdAtA[i] = 0x12\n\t\t\ti++\n\t\t\ti = encodeVarintProtos(dAtA, i, uint64(msg.Size()))\n\t\t\tn, err := msg.MarshalTo(dAtA[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti += n\n\t\t}\n\t}\n\treturn i, nil\n}\n\nfunc (m *GetBattleServer) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GetBattleServer) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\tif m.Rtype != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Rtype))\n\t}\n\tif m.Boss != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Boss))\n\t}\n\tif m.Oppuid != 0 {\n\t\tdAtA[i] = 0x20\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Oppuid))\n\t}\n\tif m.SelfPID != nil {\n\t\tdAtA[i] = 0x2a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.SelfPID.Size()))\n\t\tn27, err := m.SelfPID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n27\n\t}\n\treturn i, nil\n}\n\nfunc (m *GetBattleServerResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GetBattleServerResult) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.BattlePID != nil {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.BattlePID.Size()))\n\t\tn28, err := m.BattlePID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n28\n\t}\n\tif len(m.RoomId) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.RoomId)))\n\t\ti += copy(dAtA[i:], m.RoomId)\n\t}\n\tif m.Result != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Result))\n\t}\n\treturn i, nil\n}\n\nfunc (m *JoinBattleQueue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JoinBattleQueue) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\tif m.Rtype != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Rtype))\n\t}\n\tif len(m.RoomInfo) > 0 {\n\t\tdAtA[i] = 0x1a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.RoomInfo)))\n\t\ti += copy(dAtA[i:], m.RoomInfo)\n\t}\n\tif m.Sender != nil {\n\t\tdAtA[i] = 0x22\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Sender.Size()))\n\t\tn29, err := m.Sender.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n29\n\t}\n\tif m.AiNum != 0 {\n\t\tdAtA[i] = 0x28\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.AiNum))\n\t}\n\treturn i, nil\n}\n\nfunc (m *JoinBattleQueueResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JoinBattleQueueResult) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Waittime != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Waittime))\n\t}\n\tif m.Result != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Result))\n\t}\n\treturn i, nil\n}\n\nfunc (m *LeaveBattleQueue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LeaveBattleQueue) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\treturn i, nil\n}\n\nfunc (m *MatchBattle) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MatchBattle) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.BattleAddr) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.BattleAddr)))\n\t\ti += copy(dAtA[i:], m.BattleAddr)\n\t}\n\tif len(m.RoomId) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.RoomId)))\n\t\ti += copy(dAtA[i:], m.RoomId)\n\t}\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\tif m.Rtype != 0 {\n\t\tdAtA[i] = 0x20\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Rtype))\n\t}\n\tif len(m.RoomInfo) > 0 {\n\t\tdAtA[i] = 0x2a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.RoomInfo)))\n\t\ti += copy(dAtA[i:], m.RoomInfo)\n\t}\n\tif m.Result != 0 {\n\t\tdAtA[i] = 0x30\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Result))\n\t}\n\tif m.RoomPID != nil {\n\t\tdAtA[i] = 0x3a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.RoomPID.Size()))\n\t\tn30, err := m.RoomPID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n30\n\t}\n\treturn i, nil\n}\n\nfunc (m *CreateBattlePlayer) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CreateBattlePlayer) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\tif len(m.Name) > 0 {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.Name)))\n\t\ti += copy(dAtA[i:], m.Name)\n\t}\n\tif m.Skin != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Skin))\n\t}\n\tif m.AgentPID != nil {\n\t\tdAtA[i] = 0x22\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.AgentPID.Size()))\n\t\tn31, err := m.AgentPID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n31\n\t}\n\tif m.PlayerPID != nil {\n\t\tdAtA[i] = 0x2a\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.PlayerPID.Size()))\n\t\tn32, err := m.PlayerPID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n32\n\t}\n\treturn i, nil\n}\n\nfunc (m *CreateBattle) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CreateBattle) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.RoomId) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.RoomId)))\n\t\ti += copy(dAtA[i:], m.RoomId)\n\t}\n\tif m.StageId != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.StageId))\n\t}\n\tif m.Rtype != 0 {\n\t\tdAtA[i] = 0x18\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Rtype))\n\t}\n\tif len(m.Players) > 0 {\n\t\tfor _, msg := range m.Players {\n\t\t\tdAtA[i] = 0x22\n\t\t\ti++\n\t\t\ti = encodeVarintProtos(dAtA, i, uint64(msg.Size()))\n\t\t\tn, err := msg.MarshalTo(dAtA[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti += n\n\t\t}\n\t}\n\treturn i, nil\n}\n\nfunc (m *CreateBattleRep) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CreateBattleRep) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RoomPID != nil {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.RoomPID.Size()))\n\t\tn33, err := m.RoomPID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n33\n\t}\n\tif m.Result != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Result))\n\t}\n\treturn i, nil\n}\n\nfunc (m *JoinBattle) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JoinBattle) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.RoomId) > 0 {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(len(m.RoomId)))\n\t\ti += copy(dAtA[i:], m.RoomId)\n\t}\n\tif m.Player != nil {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Player.Size()))\n\t\tn34, err := m.Player.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n34\n\t}\n\treturn i, nil\n}\n\nfunc (m *AttachBattle) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AttachBattle) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RoomPID != nil {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.RoomPID.Size()))\n\t\tn35, err := m.RoomPID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n35\n\t}\n\treturn i, nil\n}\n\nfunc (m *DetachBattle) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DetachBattle) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn i, nil\n}\n\nfunc (m *RecoverBattle) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RecoverBattle) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Uid))\n\t}\n\tif m.AgentPID != nil {\n\t\tdAtA[i] = 0x12\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.AgentPID.Size()))\n\t\tn36, err := m.AgentPID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n36\n\t}\n\treturn i, nil\n}\n\nfunc (m *RecoverBattleRep) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RecoverBattleRep) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RoomPID != nil {\n\t\tdAtA[i] = 0xa\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.RoomPID.Size()))\n\t\tn37, err := m.RoomPID.MarshalTo(dAtA[i:])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti += n37\n\t}\n\tif m.Result != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintProtos(dAtA, i, uint64(m.Result))\n\t}\n\treturn i, nil\n}\n\nfunc encodeFixed64Protos(dAtA []byte, offset int, v uint64) int {\n\tdAtA[offset] = uint8(v)\n\tdAtA[offset+1] = uint8(v >> 8)\n\tdAtA[offset+2] = uint8(v >> 16)\n\tdAtA[offset+3] = uint8(v >> 24)\n\tdAtA[offset+4] = uint8(v >> 32)\n\tdAtA[offset+5] = uint8(v >> 40)\n\tdAtA[offset+6] = uint8(v >> 48)\n\tdAtA[offset+7] = uint8(v >> 56)\n\treturn offset + 8\n}\nfunc encodeFixed32Protos(dAtA []byte, offset int, v uint32) int {\n\tdAtA[offset] = uint8(v)\n\tdAtA[offset+1] = uint8(v >> 8)\n\tdAtA[offset+2] = uint8(v >> 16)\n\tdAtA[offset+3] = uint8(v >> 24)\n\treturn offset + 4\n}\nfunc encodeVarintProtos(dAtA []byte, offset int, v uint64) int {\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn offset + 1\n}\nfunc (m *CheckLogin) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\tl = len(m.Key)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HeartBeatMsg) Size() (n int) {\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *C2S_ShopBuyMsg) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.ItemId != 0 {\n\t\tn += 1 + sovProtos(uint64(m.ItemId))\n\t}\n\treturn n\n}\n\nfunc (m *S2C_ShopBuyMsg) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.ItemId != 0 {\n\t\tn += 1 + sovProtos(uint64(m.ItemId))\n\t}\n\tif m.Result != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Result))\n\t}\n\treturn n\n}\n\nfunc (m *FrameMsg) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Channel != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Channel))\n\t}\n\tif m.MsgId != 0 {\n\t\tn += 1 + sovProtos(uint64(m.MsgId))\n\t}\n\tl = len(m.RawData)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\treturn n\n}\n\nfunc (m *FrameMsgJson) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Channel != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Channel))\n\t}\n\tl = len(m.MsgId)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tl = len(m.RawData)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\treturn n\n}\n\nfunc (m *FrameMsgReq) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Frame != nil {\n\t\tl = m.Frame.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Cno != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Cno))\n\t}\n\treturn n\n}\n\nfunc (m *FrameMsgRep) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.ErrCode != 0 {\n\t\tn += 1 + sovProtos(uint64(m.ErrCode))\n\t}\n\treturn n\n}\n\nfunc (m *UnicastFrameMsg) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.FrameMsg != nil {\n\t\tl = m.FrameMsg.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Target != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Target))\n\t}\n\treturn n\n}\n\nfunc (m *MulticastFrameMsg) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.FrameMsg != nil {\n\t\tl = m.FrameMsg.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif len(m.Targets) > 0 {\n\t\tl = 0\n\t\tfor _, e := range m.Targets {\n\t\t\tl += sovProtos(uint64(e))\n\t\t}\n\t\tn += 1 + sovProtos(uint64(l)) + l\n\t}\n\treturn n\n}\n\nfunc (m *BroadcastFrameMsg) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.FrameMsg != nil {\n\t\tl = m.FrameMsg.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *BroadcastFrameMsgJson) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.FrameMsg != nil {\n\t\tl = m.FrameMsg.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *AddAgentToParent) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\tif m.Sender != nil {\n\t\tl = m.Sender.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RemoveAgentFromParent) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\treturn n\n}\n\nfunc (m *NewChild) Size() (n int) {\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *NewChildResult) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Pid != nil {\n\t\tl = m.Pid.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Connect) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Sender != nil {\n\t\tl = m.Sender.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Connected) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.Message)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *SpawnAgent) Size() (n int) {\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *ServiceValue) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tl = len(m.Value)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *AddService) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.ServiceName)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tl = len(m.ServiceType)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Pid != nil {\n\t\tl = m.Pid.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif len(m.Values) > 0 {\n\t\tfor _, e := range m.Values {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovProtos(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *AddServiceRep) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Result != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Result))\n\t}\n\treturn n\n}\n\nfunc (m *SendOK) Size() (n int) {\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *RemoveService) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.ServiceName)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tl = len(m.ServiceType)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ApplyService) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.ServiceType)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ApplyServiceResult) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.ServiceType)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tl = len(m.ServiceName)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Pid != nil {\n\t\tl = m.Pid.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif len(m.Values) > 0 {\n\t\tfor _, e := range m.Values {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovProtos(uint64(l))\n\t\t}\n\t}\n\tif m.Result != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Result))\n\t}\n\treturn n\n}\n\nfunc (m *GetTypeServices) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.ServiceType)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *GetTypeServicesResult) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif len(m.Pids) > 0 {\n\t\tfor _, e := range m.Pids {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovProtos(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *UploadService) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.ServiceName)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Load != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Load))\n\t}\n\tif m.State != 0 {\n\t\tn += 1 + sovProtos(uint64(m.State))\n\t}\n\treturn n\n}\n\nfunc (m *UserLogin) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.Account)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\treturn n\n}\n\nfunc (m *GetSessionInfo) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\treturn n\n}\n\nfunc (m *GetSessionInfoByName) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *GetSessionInfoResult) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.UserInfo != nil {\n\t\tl = m.UserInfo.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.AgentPID != nil {\n\t\tl = m.AgentPID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Result != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Result))\n\t}\n\treturn n\n}\n\nfunc (m *ClientDisconnect) Size() (n int) {\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *ReceviceClientMsg) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.Rawdata)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *UserLeave) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\tif m.From != 0 {\n\t\tn += 1 + sovProtos(uint64(m.From))\n\t}\n\tl = len(m.Reason)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Kick) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\tl = len(m.Reason)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ServerCheckLogin) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\tl = len(m.Key)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.AgentPID != nil {\n\t\tl = m.AgentPID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *UserBindServer) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Channel != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Channel))\n\t}\n\tif m.Pid != nil {\n\t\tl = m.Pid.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *UserBaseInfo) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.Account)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tl = len(m.Name)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\tif m.Lv != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Lv))\n\t}\n\tif m.Exp != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Exp))\n\t}\n\tif m.Exptime != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Exptime))\n\t}\n\treturn n\n}\n\nfunc (m *CheckLoginResult) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Result != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Result))\n\t}\n\tif m.BaseInfo != nil {\n\t\tl = m.BaseInfo.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif len(m.BindServers) > 0 {\n\t\tfor _, e := range m.BindServers {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovProtos(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CreatePlayer) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\tif m.AgentPID != nil {\n\t\tl = m.AgentPID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Sender != nil {\n\t\tl = m.Sender.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.GatePID != nil {\n\t\tl = m.GatePID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tl = len(m.Key)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CreatePlayerResult) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Result != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Result))\n\t}\n\tif m.BaseInfo != nil {\n\t\tl = m.BaseInfo.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.PlayerPID != nil {\n\t\tl = m.PlayerPID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.TransData != nil {\n\t\tl = m.TransData.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.RoomPID != nil {\n\t\tl = m.RoomPID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PlayerOutline) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.Reason)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Tick) Size() (n int) {\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *TimeFlush) Size() (n int) {\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *BattleRoomInfo) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\tif m.Rtype != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Rtype))\n\t}\n\tif m.Boss != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Boss))\n\t}\n\tl = len(m.Key)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Hero != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Hero))\n\t}\n\tif len(m.Card) > 0 {\n\t\tfor _, s := range m.Card {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovProtos(uint64(l))\n\t\t}\n\t}\n\tif len(m.Equip) > 0 {\n\t\tl = 0\n\t\tfor _, e := range m.Equip {\n\t\t\tl += sovProtos(uint64(e))\n\t\t}\n\t\tn += 1 + sovProtos(uint64(l)) + l\n\t}\n\tl = len(m.Name)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Lv != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Lv))\n\t}\n\tif m.Ai != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Ai))\n\t}\n\treturn n\n}\n\nfunc (m *GetLobbyInfo) Size() (n int) {\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *LobbyQueueData) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Type != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Type))\n\t}\n\tif m.Num != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Num))\n\t}\n\treturn n\n}\n\nfunc (m *BattleServerData) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.Addr)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Num != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Num))\n\t}\n\tif m.State != 0 {\n\t\tn += 1 + sovProtos(uint64(m.State))\n\t}\n\treturn n\n}\n\nfunc (m *GetLobbyInfoResult) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif len(m.Queuedata) > 0 {\n\t\tfor _, e := range m.Queuedata {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovProtos(uint64(l))\n\t\t}\n\t}\n\tif len(m.BattleServerData) > 0 {\n\t\tfor _, e := range m.BattleServerData {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovProtos(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *GetBattleServer) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\tif m.Rtype != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Rtype))\n\t}\n\tif m.Boss != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Boss))\n\t}\n\tif m.Oppuid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Oppuid))\n\t}\n\tif m.SelfPID != nil {\n\t\tl = m.SelfPID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *GetBattleServerResult) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.BattlePID != nil {\n\t\tl = m.BattlePID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tl = len(m.RoomId)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Result != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Result))\n\t}\n\treturn n\n}\n\nfunc (m *JoinBattleQueue) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\tif m.Rtype != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Rtype))\n\t}\n\tl = len(m.RoomInfo)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Sender != nil {\n\t\tl = m.Sender.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.AiNum != 0 {\n\t\tn += 1 + sovProtos(uint64(m.AiNum))\n\t}\n\treturn n\n}\n\nfunc (m *JoinBattleQueueResult) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Waittime != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Waittime))\n\t}\n\tif m.Result != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Result))\n\t}\n\treturn n\n}\n\nfunc (m *LeaveBattleQueue) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\treturn n\n}\n\nfunc (m *MatchBattle) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.BattleAddr)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tl = len(m.RoomId)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\tif m.Rtype != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Rtype))\n\t}\n\tl = len(m.RoomInfo)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Result != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Result))\n\t}\n\tif m.RoomPID != nil {\n\t\tl = m.RoomPID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CreateBattlePlayer) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\tl = len(m.Name)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Skin != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Skin))\n\t}\n\tif m.AgentPID != nil {\n\t\tl = m.AgentPID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.PlayerPID != nil {\n\t\tl = m.PlayerPID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CreateBattle) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.RoomId)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.StageId != 0 {\n\t\tn += 1 + sovProtos(uint64(m.StageId))\n\t}\n\tif m.Rtype != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Rtype))\n\t}\n\tif len(m.Players) > 0 {\n\t\tfor _, e := range m.Players {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovProtos(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CreateBattleRep) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.RoomPID != nil {\n\t\tl = m.RoomPID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Result != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Result))\n\t}\n\treturn n\n}\n\nfunc (m *JoinBattle) Size() (n int) {\n\tvar l int\n\t_ = l\n\tl = len(m.RoomId)\n\tif l > 0 {\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Player != nil {\n\t\tl = m.Player.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *AttachBattle) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.RoomPID != nil {\n\t\tl = m.RoomPID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *DetachBattle) Size() (n int) {\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *RecoverBattle) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.Uid != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Uid))\n\t}\n\tif m.AgentPID != nil {\n\t\tl = m.AgentPID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RecoverBattleRep) Size() (n int) {\n\tvar l int\n\t_ = l\n\tif m.RoomPID != nil {\n\t\tl = m.RoomPID.Size()\n\t\tn += 1 + l + sovProtos(uint64(l))\n\t}\n\tif m.Result != 0 {\n\t\tn += 1 + sovProtos(uint64(m.Result))\n\t}\n\treturn n\n}\n\nfunc sovProtos(x uint64) (n int) {\n\tfor {\n\t\tn++\n\t\tx >>= 7\n\t\tif x == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn n\n}\nfunc sozProtos(x uint64) (n int) {\n\treturn sovProtos(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CheckLogin) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CheckLogin{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HeartBeatMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HeartBeatMsg{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *C2S_ShopBuyMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&C2S_ShopBuyMsg{`,\n\t\t`ItemId:` + fmt.Sprintf(\"%v\", this.ItemId) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *S2C_ShopBuyMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&S2C_ShopBuyMsg{`,\n\t\t`ItemId:` + fmt.Sprintf(\"%v\", this.ItemId) + `,`,\n\t\t`Result:` + fmt.Sprintf(\"%v\", this.Result) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FrameMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FrameMsg{`,\n\t\t`Channel:` + fmt.Sprintf(\"%v\", this.Channel) + `,`,\n\t\t`MsgId:` + fmt.Sprintf(\"%v\", this.MsgId) + `,`,\n\t\t`RawData:` + fmt.Sprintf(\"%v\", this.RawData) + `,`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FrameMsgJson) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FrameMsgJson{`,\n\t\t`Channel:` + fmt.Sprintf(\"%v\", this.Channel) + `,`,\n\t\t`MsgId:` + fmt.Sprintf(\"%v\", this.MsgId) + `,`,\n\t\t`RawData:` + fmt.Sprintf(\"%v\", this.RawData) + `,`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FrameMsgReq) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FrameMsgReq{`,\n\t\t`Frame:` + strings.Replace(fmt.Sprintf(\"%v\", this.Frame), \"FrameMsg\", \"FrameMsg\", 1) + `,`,\n\t\t`Cno:` + fmt.Sprintf(\"%v\", this.Cno) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FrameMsgRep) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FrameMsgRep{`,\n\t\t`ErrCode:` + fmt.Sprintf(\"%v\", this.ErrCode) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UnicastFrameMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UnicastFrameMsg{`,\n\t\t`FrameMsg:` + strings.Replace(fmt.Sprintf(\"%v\", this.FrameMsg), \"FrameMsg\", \"FrameMsg\", 1) + `,`,\n\t\t`Target:` + fmt.Sprintf(\"%v\", this.Target) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MulticastFrameMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MulticastFrameMsg{`,\n\t\t`FrameMsg:` + strings.Replace(fmt.Sprintf(\"%v\", this.FrameMsg), \"FrameMsg\", \"FrameMsg\", 1) + `,`,\n\t\t`Targets:` + fmt.Sprintf(\"%v\", this.Targets) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *BroadcastFrameMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&BroadcastFrameMsg{`,\n\t\t`FrameMsg:` + strings.Replace(fmt.Sprintf(\"%v\", this.FrameMsg), \"FrameMsg\", \"FrameMsg\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *BroadcastFrameMsgJson) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&BroadcastFrameMsgJson{`,\n\t\t`FrameMsg:` + strings.Replace(fmt.Sprintf(\"%v\", this.FrameMsg), \"FrameMsgJson\", \"FrameMsgJson\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AddAgentToParent) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AddAgentToParent{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`Sender:` + strings.Replace(fmt.Sprintf(\"%v\", this.Sender), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RemoveAgentFromParent) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RemoveAgentFromParent{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NewChild) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NewChild{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NewChildResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NewChildResult{`,\n\t\t`Pid:` + strings.Replace(fmt.Sprintf(\"%v\", this.Pid), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Connect) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Connect{`,\n\t\t`Sender:` + strings.Replace(fmt.Sprintf(\"%v\", this.Sender), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Connected) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Connected{`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SpawnAgent) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SpawnAgent{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceValue{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AddService) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AddService{`,\n\t\t`ServiceName:` + fmt.Sprintf(\"%v\", this.ServiceName) + `,`,\n\t\t`ServiceType:` + fmt.Sprintf(\"%v\", this.ServiceType) + `,`,\n\t\t`Pid:` + strings.Replace(fmt.Sprintf(\"%v\", this.Pid), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`Values:` + strings.Replace(fmt.Sprintf(\"%v\", this.Values), \"ServiceValue\", \"ServiceValue\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AddServiceRep) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AddServiceRep{`,\n\t\t`Result:` + fmt.Sprintf(\"%v\", this.Result) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SendOK) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SendOK{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RemoveService) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RemoveService{`,\n\t\t`ServiceName:` + fmt.Sprintf(\"%v\", this.ServiceName) + `,`,\n\t\t`ServiceType:` + fmt.Sprintf(\"%v\", this.ServiceType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ApplyService) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ApplyService{`,\n\t\t`ServiceType:` + fmt.Sprintf(\"%v\", this.ServiceType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ApplyServiceResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ApplyServiceResult{`,\n\t\t`ServiceType:` + fmt.Sprintf(\"%v\", this.ServiceType) + `,`,\n\t\t`ServiceName:` + fmt.Sprintf(\"%v\", this.ServiceName) + `,`,\n\t\t`Pid:` + strings.Replace(fmt.Sprintf(\"%v\", this.Pid), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`Values:` + strings.Replace(fmt.Sprintf(\"%v\", this.Values), \"ServiceValue\", \"ServiceValue\", 1) + `,`,\n\t\t`Result:` + fmt.Sprintf(\"%v\", this.Result) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GetTypeServices) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GetTypeServices{`,\n\t\t`ServiceType:` + fmt.Sprintf(\"%v\", this.ServiceType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GetTypeServicesResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GetTypeServicesResult{`,\n\t\t`Pids:` + strings.Replace(fmt.Sprintf(\"%v\", this.Pids), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UploadService) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UploadService{`,\n\t\t`ServiceName:` + fmt.Sprintf(\"%v\", this.ServiceName) + `,`,\n\t\t`Load:` + fmt.Sprintf(\"%v\", this.Load) + `,`,\n\t\t`State:` + fmt.Sprintf(\"%v\", this.State) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserLogin) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UserLogin{`,\n\t\t`Account:` + fmt.Sprintf(\"%v\", this.Account) + `,`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GetSessionInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GetSessionInfo{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GetSessionInfoByName) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GetSessionInfoByName{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GetSessionInfoResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GetSessionInfoResult{`,\n\t\t`UserInfo:` + strings.Replace(fmt.Sprintf(\"%v\", this.UserInfo), \"UserBaseInfo\", \"UserBaseInfo\", 1) + `,`,\n\t\t`AgentPID:` + strings.Replace(fmt.Sprintf(\"%v\", this.AgentPID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`Result:` + fmt.Sprintf(\"%v\", this.Result) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClientDisconnect) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ClientDisconnect{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReceviceClientMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReceviceClientMsg{`,\n\t\t`Rawdata:` + fmt.Sprintf(\"%v\", this.Rawdata) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserLeave) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UserLeave{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`From:` + fmt.Sprintf(\"%v\", this.From) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Kick) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Kick{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServerCheckLogin) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServerCheckLogin{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`AgentPID:` + strings.Replace(fmt.Sprintf(\"%v\", this.AgentPID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserBindServer) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UserBindServer{`,\n\t\t`Channel:` + fmt.Sprintf(\"%v\", this.Channel) + `,`,\n\t\t`Pid:` + strings.Replace(fmt.Sprintf(\"%v\", this.Pid), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserBaseInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UserBaseInfo{`,\n\t\t`Account:` + fmt.Sprintf(\"%v\", this.Account) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`Lv:` + fmt.Sprintf(\"%v\", this.Lv) + `,`,\n\t\t`Exp:` + fmt.Sprintf(\"%v\", this.Exp) + `,`,\n\t\t`Exptime:` + fmt.Sprintf(\"%v\", this.Exptime) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CheckLoginResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CheckLoginResult{`,\n\t\t`Result:` + fmt.Sprintf(\"%v\", this.Result) + `,`,\n\t\t`BaseInfo:` + strings.Replace(fmt.Sprintf(\"%v\", this.BaseInfo), \"UserBaseInfo\", \"UserBaseInfo\", 1) + `,`,\n\t\t`BindServers:` + strings.Replace(fmt.Sprintf(\"%v\", this.BindServers), \"UserBindServer\", \"UserBindServer\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CreatePlayer) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CreatePlayer{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`AgentPID:` + strings.Replace(fmt.Sprintf(\"%v\", this.AgentPID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`Sender:` + strings.Replace(fmt.Sprintf(\"%v\", this.Sender), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`GatePID:` + strings.Replace(fmt.Sprintf(\"%v\", this.GatePID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CreatePlayerResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CreatePlayerResult{`,\n\t\t`Result:` + fmt.Sprintf(\"%v\", this.Result) + `,`,\n\t\t`BaseInfo:` + strings.Replace(fmt.Sprintf(\"%v\", this.BaseInfo), \"UserBaseInfo\", \"UserBaseInfo\", 1) + `,`,\n\t\t`PlayerPID:` + strings.Replace(fmt.Sprintf(\"%v\", this.PlayerPID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`TransData:` + strings.Replace(fmt.Sprintf(\"%v\", this.TransData), \"CreatePlayer\", \"CreatePlayer\", 1) + `,`,\n\t\t`RoomPID:` + strings.Replace(fmt.Sprintf(\"%v\", this.RoomPID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PlayerOutline) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PlayerOutline{`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Tick) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Tick{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TimeFlush) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TimeFlush{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *BattleRoomInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&BattleRoomInfo{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`Rtype:` + fmt.Sprintf(\"%v\", this.Rtype) + `,`,\n\t\t`Boss:` + fmt.Sprintf(\"%v\", this.Boss) + `,`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Hero:` + fmt.Sprintf(\"%v\", this.Hero) + `,`,\n\t\t`Card:` + fmt.Sprintf(\"%v\", this.Card) + `,`,\n\t\t`Equip:` + fmt.Sprintf(\"%v\", this.Equip) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Lv:` + fmt.Sprintf(\"%v\", this.Lv) + `,`,\n\t\t`Ai:` + fmt.Sprintf(\"%v\", this.Ai) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GetLobbyInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GetLobbyInfo{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LobbyQueueData) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LobbyQueueData{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Num:` + fmt.Sprintf(\"%v\", this.Num) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *BattleServerData) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&BattleServerData{`,\n\t\t`Addr:` + fmt.Sprintf(\"%v\", this.Addr) + `,`,\n\t\t`Num:` + fmt.Sprintf(\"%v\", this.Num) + `,`,\n\t\t`State:` + fmt.Sprintf(\"%v\", this.State) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GetLobbyInfoResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GetLobbyInfoResult{`,\n\t\t`Queuedata:` + strings.Replace(fmt.Sprintf(\"%v\", this.Queuedata), \"LobbyQueueData\", \"LobbyQueueData\", 1) + `,`,\n\t\t`BattleServerData:` + strings.Replace(fmt.Sprintf(\"%v\", this.BattleServerData), \"BattleServerData\", \"BattleServerData\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GetBattleServer) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GetBattleServer{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`Rtype:` + fmt.Sprintf(\"%v\", this.Rtype) + `,`,\n\t\t`Boss:` + fmt.Sprintf(\"%v\", this.Boss) + `,`,\n\t\t`Oppuid:` + fmt.Sprintf(\"%v\", this.Oppuid) + `,`,\n\t\t`SelfPID:` + strings.Replace(fmt.Sprintf(\"%v\", this.SelfPID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GetBattleServerResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GetBattleServerResult{`,\n\t\t`BattlePID:` + strings.Replace(fmt.Sprintf(\"%v\", this.BattlePID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`RoomId:` + fmt.Sprintf(\"%v\", this.RoomId) + `,`,\n\t\t`Result:` + fmt.Sprintf(\"%v\", this.Result) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JoinBattleQueue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&JoinBattleQueue{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`Rtype:` + fmt.Sprintf(\"%v\", this.Rtype) + `,`,\n\t\t`RoomInfo:` + fmt.Sprintf(\"%v\", this.RoomInfo) + `,`,\n\t\t`Sender:` + strings.Replace(fmt.Sprintf(\"%v\", this.Sender), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`AiNum:` + fmt.Sprintf(\"%v\", this.AiNum) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JoinBattleQueueResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&JoinBattleQueueResult{`,\n\t\t`Waittime:` + fmt.Sprintf(\"%v\", this.Waittime) + `,`,\n\t\t`Result:` + fmt.Sprintf(\"%v\", this.Result) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LeaveBattleQueue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LeaveBattleQueue{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MatchBattle) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MatchBattle{`,\n\t\t`BattleAddr:` + fmt.Sprintf(\"%v\", this.BattleAddr) + `,`,\n\t\t`RoomId:` + fmt.Sprintf(\"%v\", this.RoomId) + `,`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`Rtype:` + fmt.Sprintf(\"%v\", this.Rtype) + `,`,\n\t\t`RoomInfo:` + fmt.Sprintf(\"%v\", this.RoomInfo) + `,`,\n\t\t`Result:` + fmt.Sprintf(\"%v\", this.Result) + `,`,\n\t\t`RoomPID:` + strings.Replace(fmt.Sprintf(\"%v\", this.RoomPID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CreateBattlePlayer) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CreateBattlePlayer{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Skin:` + fmt.Sprintf(\"%v\", this.Skin) + `,`,\n\t\t`AgentPID:` + strings.Replace(fmt.Sprintf(\"%v\", this.AgentPID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`PlayerPID:` + strings.Replace(fmt.Sprintf(\"%v\", this.PlayerPID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CreateBattle) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CreateBattle{`,\n\t\t`RoomId:` + fmt.Sprintf(\"%v\", this.RoomId) + `,`,\n\t\t`StageId:` + fmt.Sprintf(\"%v\", this.StageId) + `,`,\n\t\t`Rtype:` + fmt.Sprintf(\"%v\", this.Rtype) + `,`,\n\t\t`Players:` + strings.Replace(fmt.Sprintf(\"%v\", this.Players), \"CreateBattlePlayer\", \"CreateBattlePlayer\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CreateBattleRep) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CreateBattleRep{`,\n\t\t`RoomPID:` + strings.Replace(fmt.Sprintf(\"%v\", this.RoomPID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`Result:` + fmt.Sprintf(\"%v\", this.Result) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JoinBattle) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&JoinBattle{`,\n\t\t`RoomId:` + fmt.Sprintf(\"%v\", this.RoomId) + `,`,\n\t\t`Player:` + strings.Replace(fmt.Sprintf(\"%v\", this.Player), \"CreateBattlePlayer\", \"CreateBattlePlayer\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AttachBattle) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AttachBattle{`,\n\t\t`RoomPID:` + strings.Replace(fmt.Sprintf(\"%v\", this.RoomPID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DetachBattle) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DetachBattle{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RecoverBattle) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RecoverBattle{`,\n\t\t`Uid:` + fmt.Sprintf(\"%v\", this.Uid) + `,`,\n\t\t`AgentPID:` + strings.Replace(fmt.Sprintf(\"%v\", this.AgentPID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RecoverBattleRep) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RecoverBattleRep{`,\n\t\t`RoomPID:` + strings.Replace(fmt.Sprintf(\"%v\", this.RoomPID), \"PID\", \"actor.PID\", 1) + `,`,\n\t\t`Result:` + fmt.Sprintf(\"%v\", this.Result) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringProtos(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CheckLogin) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CheckLogin: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CheckLogin: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HeartBeatMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HeartBeatMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HeartBeatMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *C2S_ShopBuyMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: C2S_ShopBuyMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: C2S_ShopBuyMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ItemId\", wireType)\n\t\t\t}\n\t\t\tm.ItemId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ItemId |= (uint32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *S2C_ShopBuyMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: S2C_ShopBuyMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: S2C_ShopBuyMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ItemId\", wireType)\n\t\t\t}\n\t\t\tm.ItemId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ItemId |= (uint32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Result\", wireType)\n\t\t\t}\n\t\t\tm.Result = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Result |= (GAErrorCode(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FrameMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FrameMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FrameMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Channel\", wireType)\n\t\t\t}\n\t\t\tm.Channel = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Channel |= (ChannelType(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MsgId\", wireType)\n\t\t\t}\n\t\t\tm.MsgId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MsgId |= (uint32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RawData\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RawData = append(m.RawData[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.RawData == nil {\n\t\t\t\tm.RawData = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FrameMsgJson) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FrameMsgJson: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FrameMsgJson: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Channel\", wireType)\n\t\t\t}\n\t\t\tm.Channel = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Channel |= (ChannelType(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MsgId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MsgId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RawData\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RawData = append(m.RawData[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.RawData == nil {\n\t\t\t\tm.RawData = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FrameMsgReq) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FrameMsgReq: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FrameMsgReq: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Frame\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Frame == nil {\n\t\t\t\tm.Frame = &FrameMsg{}\n\t\t\t}\n\t\t\tif err := m.Frame.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Cno\", wireType)\n\t\t\t}\n\t\t\tm.Cno = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Cno |= (uint32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FrameMsgRep) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FrameMsgRep: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FrameMsgRep: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ErrCode\", wireType)\n\t\t\t}\n\t\t\tm.ErrCode = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ErrCode |= (GAErrorCode(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UnicastFrameMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UnicastFrameMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UnicastFrameMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FrameMsg\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FrameMsg == nil {\n\t\t\t\tm.FrameMsg = &FrameMsg{}\n\t\t\t}\n\t\t\tif err := m.FrameMsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tm.Target = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Target |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MulticastFrameMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MulticastFrameMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MulticastFrameMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FrameMsg\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FrameMsg == nil {\n\t\t\t\tm.FrameMsg = &FrameMsg{}\n\t\t\t}\n\t\t\tif err := m.FrameMsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType == 0 {\n\t\t\t\tvar v uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tv |= (uint64(b) & 0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tm.Targets = append(m.Targets, v)\n\t\t\t} else if wireType == 2 {\n\t\t\t\tvar packedLen int\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tpackedLen |= (int(b) & 0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif packedLen < 0 {\n\t\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t\t}\n\t\t\t\tpostIndex := iNdEx + packedLen\n\t\t\t\tif postIndex > l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tfor iNdEx < postIndex {\n\t\t\t\t\tvar v uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tv |= (uint64(b) & 0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tm.Targets = append(m.Targets, v)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Targets\", wireType)\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *BroadcastFrameMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: BroadcastFrameMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: BroadcastFrameMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FrameMsg\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FrameMsg == nil {\n\t\t\t\tm.FrameMsg = &FrameMsg{}\n\t\t\t}\n\t\t\tif err := m.FrameMsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *BroadcastFrameMsgJson) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: BroadcastFrameMsgJson: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: BroadcastFrameMsgJson: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FrameMsg\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FrameMsg == nil {\n\t\t\t\tm.FrameMsg = &FrameMsgJson{}\n\t\t\t}\n\t\t\tif err := m.FrameMsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AddAgentToParent) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AddAgentToParent: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AddAgentToParent: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Sender\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Sender == nil {\n\t\t\t\tm.Sender = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.Sender.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RemoveAgentFromParent) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RemoveAgentFromParent: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RemoveAgentFromParent: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NewChild) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NewChild: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NewChild: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NewChildResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NewChildResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NewChildResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pid\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pid == nil {\n\t\t\t\tm.Pid = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.Pid.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Connect) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Connect: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Connect: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Sender\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Sender == nil {\n\t\t\t\tm.Sender = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.Sender.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Connected) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Connected: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Connected: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SpawnAgent) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SpawnAgent: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SpawnAgent: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Value = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AddService) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AddService: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AddService: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pid\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pid == nil {\n\t\t\t\tm.Pid = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.Pid.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Values\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Values = append(m.Values, &ServiceValue{})\n\t\t\tif err := m.Values[len(m.Values)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AddServiceRep) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AddServiceRep: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AddServiceRep: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Result\", wireType)\n\t\t\t}\n\t\t\tm.Result = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Result |= (GAErrorCode(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SendOK) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SendOK: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SendOK: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RemoveService) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RemoveService: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RemoveService: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ApplyService) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ApplyService: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ApplyService: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ApplyServiceResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ApplyServiceResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ApplyServiceResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pid\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pid == nil {\n\t\t\t\tm.Pid = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.Pid.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Values\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Values = append(m.Values, &ServiceValue{})\n\t\t\tif err := m.Values[len(m.Values)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Result\", wireType)\n\t\t\t}\n\t\t\tm.Result = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Result |= (GAErrorCode(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GetTypeServices) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GetTypeServices: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GetTypeServices: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GetTypeServicesResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GetTypeServicesResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GetTypeServicesResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pids\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Pids = append(m.Pids, &actor.PID{})\n\t\t\tif err := m.Pids[len(m.Pids)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UploadService) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UploadService: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UploadService: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Load\", wireType)\n\t\t\t}\n\t\t\tm.Load = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Load |= (uint32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field State\", wireType)\n\t\t\t}\n\t\t\tm.State = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.State |= (ServiceState(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserLogin) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserLogin: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserLogin: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Account\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Account = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GetSessionInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GetSessionInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GetSessionInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GetSessionInfoByName) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GetSessionInfoByName: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GetSessionInfoByName: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GetSessionInfoResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GetSessionInfoResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GetSessionInfoResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UserInfo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.UserInfo == nil {\n\t\t\t\tm.UserInfo = &UserBaseInfo{}\n\t\t\t}\n\t\t\tif err := m.UserInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AgentPID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AgentPID == nil {\n\t\t\t\tm.AgentPID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.AgentPID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Result\", wireType)\n\t\t\t}\n\t\t\tm.Result = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Result |= (GAErrorCode(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClientDisconnect) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClientDisconnect: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClientDisconnect: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReceviceClientMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReceviceClientMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReceviceClientMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rawdata\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rawdata = append(m.Rawdata[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Rawdata == nil {\n\t\t\t\tm.Rawdata = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserLeave) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserLeave: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserLeave: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field From\", wireType)\n\t\t\t}\n\t\t\tm.From = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.From |= (ServerType(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Kick) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Kick: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Kick: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServerCheckLogin) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServerCheckLogin: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServerCheckLogin: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AgentPID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AgentPID == nil {\n\t\t\t\tm.AgentPID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.AgentPID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserBindServer) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserBindServer: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserBindServer: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Channel\", wireType)\n\t\t\t}\n\t\t\tm.Channel = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Channel |= (ChannelType(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pid\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pid == nil {\n\t\t\t\tm.Pid = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.Pid.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserBaseInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserBaseInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserBaseInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Account\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Account = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Lv\", wireType)\n\t\t\t}\n\t\t\tm.Lv = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Lv |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Exp\", wireType)\n\t\t\t}\n\t\t\tm.Exp = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Exp |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Exptime\", wireType)\n\t\t\t}\n\t\t\tm.Exptime = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Exptime |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CheckLoginResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CheckLoginResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CheckLoginResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Result\", wireType)\n\t\t\t}\n\t\t\tm.Result = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Result |= (GAErrorCode(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BaseInfo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.BaseInfo == nil {\n\t\t\t\tm.BaseInfo = &UserBaseInfo{}\n\t\t\t}\n\t\t\tif err := m.BaseInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BindServers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.BindServers = append(m.BindServers, &UserBindServer{})\n\t\t\tif err := m.BindServers[len(m.BindServers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CreatePlayer) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CreatePlayer: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CreatePlayer: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AgentPID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AgentPID == nil {\n\t\t\t\tm.AgentPID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.AgentPID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Sender\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Sender == nil {\n\t\t\t\tm.Sender = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.Sender.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GatePID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.GatePID == nil {\n\t\t\t\tm.GatePID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.GatePID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CreatePlayerResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CreatePlayerResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CreatePlayerResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Result\", wireType)\n\t\t\t}\n\t\t\tm.Result = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Result |= (GAErrorCode(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BaseInfo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.BaseInfo == nil {\n\t\t\t\tm.BaseInfo = &UserBaseInfo{}\n\t\t\t}\n\t\t\tif err := m.BaseInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PlayerPID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PlayerPID == nil {\n\t\t\t\tm.PlayerPID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.PlayerPID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TransData\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TransData == nil {\n\t\t\t\tm.TransData = &CreatePlayer{}\n\t\t\t}\n\t\t\tif err := m.TransData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoomPID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RoomPID == nil {\n\t\t\t\tm.RoomPID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.RoomPID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PlayerOutline) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PlayerOutline: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PlayerOutline: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Tick) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Tick: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Tick: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TimeFlush) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TimeFlush: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TimeFlush: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *BattleRoomInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: BattleRoomInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: BattleRoomInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rtype\", wireType)\n\t\t\t}\n\t\t\tm.Rtype = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Rtype |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Boss\", wireType)\n\t\t\t}\n\t\t\tm.Boss = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Boss |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hero\", wireType)\n\t\t\t}\n\t\t\tm.Hero = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Hero |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Card\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Card = append(m.Card, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType == 0 {\n\t\t\t\tvar v int32\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tv |= (int32(b) & 0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tm.Equip = append(m.Equip, v)\n\t\t\t} else if wireType == 2 {\n\t\t\t\tvar packedLen int\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tpackedLen |= (int(b) & 0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif packedLen < 0 {\n\t\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t\t}\n\t\t\t\tpostIndex := iNdEx + packedLen\n\t\t\t\tif postIndex > l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tfor iNdEx < postIndex {\n\t\t\t\t\tvar v int32\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tv |= (int32(b) & 0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tm.Equip = append(m.Equip, v)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Equip\", wireType)\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Lv\", wireType)\n\t\t\t}\n\t\t\tm.Lv = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Lv |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 10:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ai\", wireType)\n\t\t\t}\n\t\t\tm.Ai = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Ai |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GetLobbyInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GetLobbyInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GetLobbyInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LobbyQueueData) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LobbyQueueData: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LobbyQueueData: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tm.Type = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Type |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Num\", wireType)\n\t\t\t}\n\t\t\tm.Num = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Num |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *BattleServerData) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: BattleServerData: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: BattleServerData: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Addr\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Addr = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Num\", wireType)\n\t\t\t}\n\t\t\tm.Num = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Num |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field State\", wireType)\n\t\t\t}\n\t\t\tm.State = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.State |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GetLobbyInfoResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GetLobbyInfoResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GetLobbyInfoResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queuedata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Queuedata = append(m.Queuedata, &LobbyQueueData{})\n\t\t\tif err := m.Queuedata[len(m.Queuedata)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BattleServerData\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.BattleServerData = append(m.BattleServerData, &BattleServerData{})\n\t\t\tif err := m.BattleServerData[len(m.BattleServerData)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GetBattleServer) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GetBattleServer: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GetBattleServer: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rtype\", wireType)\n\t\t\t}\n\t\t\tm.Rtype = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Rtype |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Boss\", wireType)\n\t\t\t}\n\t\t\tm.Boss = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Boss |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Oppuid\", wireType)\n\t\t\t}\n\t\t\tm.Oppuid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Oppuid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SelfPID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SelfPID == nil {\n\t\t\t\tm.SelfPID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.SelfPID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GetBattleServerResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GetBattleServerResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GetBattleServerResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BattlePID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.BattlePID == nil {\n\t\t\t\tm.BattlePID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.BattlePID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoomId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RoomId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Result\", wireType)\n\t\t\t}\n\t\t\tm.Result = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Result |= (GAErrorCode(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JoinBattleQueue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JoinBattleQueue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JoinBattleQueue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rtype\", wireType)\n\t\t\t}\n\t\t\tm.Rtype = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Rtype |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoomInfo\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RoomInfo = append(m.RoomInfo[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.RoomInfo == nil {\n\t\t\t\tm.RoomInfo = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Sender\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Sender == nil {\n\t\t\t\tm.Sender = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.Sender.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AiNum\", wireType)\n\t\t\t}\n\t\t\tm.AiNum = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AiNum |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JoinBattleQueueResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JoinBattleQueueResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JoinBattleQueueResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Waittime\", wireType)\n\t\t\t}\n\t\t\tm.Waittime = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Waittime |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Result\", wireType)\n\t\t\t}\n\t\t\tm.Result = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Result |= (GAErrorCode(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LeaveBattleQueue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LeaveBattleQueue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LeaveBattleQueue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MatchBattle) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MatchBattle: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MatchBattle: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BattleAddr\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.BattleAddr = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoomId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RoomId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rtype\", wireType)\n\t\t\t}\n\t\t\tm.Rtype = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Rtype |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoomInfo\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RoomInfo = append(m.RoomInfo[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.RoomInfo == nil {\n\t\t\t\tm.RoomInfo = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Result\", wireType)\n\t\t\t}\n\t\t\tm.Result = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Result |= (GAErrorCode(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoomPID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RoomPID == nil {\n\t\t\t\tm.RoomPID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.RoomPID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CreateBattlePlayer) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CreateBattlePlayer: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CreateBattlePlayer: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Skin\", wireType)\n\t\t\t}\n\t\t\tm.Skin = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Skin |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AgentPID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AgentPID == nil {\n\t\t\t\tm.AgentPID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.AgentPID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PlayerPID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PlayerPID == nil {\n\t\t\t\tm.PlayerPID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.PlayerPID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CreateBattle) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CreateBattle: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CreateBattle: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoomId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RoomId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StageId\", wireType)\n\t\t\t}\n\t\t\tm.StageId = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.StageId |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rtype\", wireType)\n\t\t\t}\n\t\t\tm.Rtype = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Rtype |= (int32(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Players\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Players = append(m.Players, &CreateBattlePlayer{})\n\t\t\tif err := m.Players[len(m.Players)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CreateBattleRep) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CreateBattleRep: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CreateBattleRep: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoomPID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RoomPID == nil {\n\t\t\t\tm.RoomPID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.RoomPID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Result\", wireType)\n\t\t\t}\n\t\t\tm.Result = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Result |= (GAErrorCode(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JoinBattle) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JoinBattle: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JoinBattle: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoomId\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RoomId = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Player\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Player == nil {\n\t\t\t\tm.Player = &CreateBattlePlayer{}\n\t\t\t}\n\t\t\tif err := m.Player.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AttachBattle) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AttachBattle: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AttachBattle: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoomPID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RoomPID == nil {\n\t\t\t\tm.RoomPID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.RoomPID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DetachBattle) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DetachBattle: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DetachBattle: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RecoverBattle) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RecoverBattle: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RecoverBattle: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Uid\", wireType)\n\t\t\t}\n\t\t\tm.Uid = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Uid |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AgentPID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AgentPID == nil {\n\t\t\t\tm.AgentPID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.AgentPID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RecoverBattleRep) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RecoverBattleRep: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RecoverBattleRep: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoomPID\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RoomPID == nil {\n\t\t\t\tm.RoomPID = &actor.PID{}\n\t\t\t}\n\t\t\tif err := m.RoomPID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Result\", wireType)\n\t\t\t}\n\t\t\tm.Result = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Result |= (GAErrorCode(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipProtos(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthProtos\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipProtos(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowProtos\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\t\treturn iNdEx, nil\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowProtos\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tiNdEx += length\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthProtos\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 3:\n\t\t\tfor {\n\t\t\t\tvar innerWire uint64\n\t\t\t\tvar start int = iNdEx\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn 0, ErrIntOverflowProtos\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tinnerWire |= (uint64(b) & 0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinnerWireType := int(innerWire & 0x7)\n\t\t\t\tif innerWireType == 4 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tnext, err := skipProtos(dAtA[start:])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\tiNdEx = start + next\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 4:\n\t\t\treturn iNdEx, nil\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\t\treturn iNdEx, nil\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t}\n\tpanic(\"unreachable\")\n}\n\nvar (\n\tErrInvalidLengthProtos = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowProtos   = fmt.Errorf(\"proto: integer overflow\")\n)\n\nfunc init() { proto.RegisterFile(\"protos.proto\", fileDescriptorProtos) }\n\nvar fileDescriptorProtos = []byte{\n\t// 1892 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4d, 0x6f, 0x1b, 0xc7,\n\t0xf9, 0xd7, 0x92, 0xcb, 0xb7, 0x87, 0x14, 0x45, 0x2f, 0x64, 0x83, 0x7f, 0xe3, 0x0f, 0x42, 0x18,\n\t0xb8, 0xad, 0xa2, 0xd6, 0xb4, 0xa0, 0x14, 0x0e, 0x90, 0x4b, 0x21, 0x52, 0x91, 0xa2, 0x38, 0x72,\n\t0xdc, 0xa5, 0x1c, 0xa0, 0x08, 0x90, 0x62, 0xb8, 0x3b, 0x22, 0x17, 0x5a, 0xee, 0xac, 0x77, 0x86,\n\t0x52, 0x78, 0x28, 0xd0, 0x43, 0x4f, 0x6d, 0x81, 0xf6, 0xda, 0x9e, 0x7a, 0x68, 0x81, 0x7e, 0x94,\n\t0x5e, 0x0a, 0xf8, 0x58, 0xf4, 0x54, 0xab, 0x97, 0x1e, 0xd3, 0x6f, 0x50, 0xcc, 0xcb, 0xee, 0x0e,\n\t0x45, 0xd2, 0x92, 0x9c, 0xe4, 0xc4, 0x79, 0x66, 0x9e, 0xd7, 0xdf, 0x3c, 0x2f, 0xb3, 0x84, 0x46,\n\t0x9c, 0x50, 0x4e, 0x59, 0x57, 0xfe, 0x38, 0xf6, 0x84, 0x8d, 0xd8, 0xc3, 0xa7, 0xa3, 0x80, 0x8f,\n\t0xa7, 0xc3, 0xae, 0x47, 0x27, 0x4f, 0xf6, 0xd9, 0x2c, 0x3a, 0x4f, 0x68, 0x74, 0x7c, 0xfa, 0x44,\n\t0xb2, 0x60, 0x8f, 0xd3, 0xe4, 0xf1, 0x88, 0x3e, 0x91, 0x8b, 0x27, 0xa6, 0xf4, 0xc3, 0x3a, 0x1b,\n\t0xe3, 0x84, 0x28, 0x02, 0xed, 0x02, 0xf4, 0xc7, 0xc4, 0x3b, 0xff, 0x94, 0x8e, 0x82, 0xc8, 0x69,\n\t0x41, 0x71, 0x1a, 0xf8, 0x6d, 0x6b, 0xcb, 0xda, 0xb6, 0x5d, 0xb1, 0x14, 0x3b, 0xe7, 0x64, 0xd6,\n\t0x2e, 0x6c, 0x59, 0xdb, 0x35, 0x57, 0x2c, 0x51, 0x13, 0x1a, 0x1f, 0x13, 0x9c, 0xf0, 0x1e, 0xc1,\n\t0xfc, 0x84, 0x8d, 0xd0, 0x36, 0x34, 0xfb, 0x7b, 0x83, 0x9f, 0x0f, 0xc6, 0x34, 0xee, 0x4d, 0x67,\n\t0x27, 0x6c, 0xe4, 0x3c, 0x80, 0x72, 0xc0, 0xc9, 0xe4, 0x58, 0x29, 0x5a, 0x77, 0x35, 0x85, 0x06,\n\t0xd0, 0x1c, 0xec, 0xf5, 0x6f, 0xc1, 0xe9, 0xbc, 0x07, 0xe5, 0x84, 0xb0, 0x69, 0xc8, 0xa5, 0xe1,\n\t0xe6, 0xde, 0xbd, 0xae, 0x88, 0xb8, 0x7b, 0xb4, 0xff, 0x51, 0x92, 0xd0, 0xa4, 0x4f, 0x7d, 0xe2,\n\t0x6a, 0x06, 0x34, 0x83, 0xea, 0x61, 0x82, 0x27, 0x44, 0xa8, 0xfb, 0x21, 0x54, 0xbc, 0x31, 0x8e,\n\t0x22, 0x12, 0x4a, 0x7d, 0x99, 0x5c, 0x5f, 0x6d, 0x9e, 0xce, 0x62, 0xe2, 0xa6, 0x1c, 0xce, 0x26,\n\t0x94, 0x26, 0x6c, 0x74, 0xec, 0x4b, 0x13, 0xeb, 0xae, 0x22, 0x9c, 0x36, 0x54, 0x12, 0x7c, 0x79,\n\t0x80, 0x39, 0x6e, 0x17, 0xb7, 0xac, 0xed, 0x86, 0x9b, 0x92, 0x29, 0x36, 0x76, 0x86, 0x0d, 0xfa,\n\t0x05, 0x34, 0x52, 0xd3, 0x9f, 0x30, 0x1a, 0x7d, 0x03, 0xf3, 0xb5, 0x77, 0x31, 0xff, 0x11, 0xd4,\n\t0x53, 0xf3, 0x2e, 0x79, 0xe5, 0x3c, 0x82, 0xd2, 0x99, 0x20, 0xa5, 0xed, 0xfa, 0x5e, 0x53, 0xd9,\n\t0xce, 0x38, 0xd4, 0xa1, 0x50, 0xe3, 0x45, 0x54, 0xc7, 0x2c, 0x96, 0xe8, 0x43, 0x53, 0x4d, 0x2c,\n\t0x82, 0x20, 0x89, 0x84, 0x78, 0x3e, 0x08, 0x13, 0xfb, 0x94, 0x03, 0xbd, 0x84, 0x8d, 0x97, 0x51,\n\t0xe0, 0x61, 0xc6, 0xb3, 0x3b, 0xd8, 0x81, 0xea, 0x99, 0x5e, 0xaf, 0xf0, 0x24, 0x3b, 0x17, 0xd7,\n\t0xcf, 0x71, 0x32, 0x22, 0xea, 0x9a, 0x6d, 0x57, 0x53, 0xe8, 0x67, 0x70, 0xef, 0x64, 0x1a, 0xf2,\n\t0x77, 0x57, 0xdc, 0x86, 0x8a, 0x52, 0xc5, 0xda, 0x85, 0xad, 0xe2, 0xb6, 0xed, 0xa6, 0x24, 0xfa,\n\t0x09, 0xdc, 0xeb, 0x25, 0x14, 0xfb, 0xef, 0xaa, 0x1a, 0x1d, 0xc1, 0xfd, 0x05, 0x05, 0xf2, 0xf6,\n\t0xbb, 0x0b, 0x4a, 0x9c, 0x79, 0x25, 0x82, 0xcb, 0x50, 0xf4, 0x31, 0xb4, 0xf6, 0x7d, 0x7f, 0x7f,\n\t0x44, 0x22, 0x7e, 0x4a, 0x5f, 0xe0, 0x84, 0x44, 0x7c, 0x49, 0xfd, 0x21, 0x28, 0x33, 0x12, 0xf9,\n\t0x24, 0x91, 0x10, 0xd5, 0xf7, 0xa0, 0x2b, 0x2b, 0xba, 0xfb, 0xe2, 0xf8, 0xc0, 0xd5, 0x27, 0xe8,\n\t0x3d, 0xb8, 0xef, 0x92, 0x09, 0xbd, 0x20, 0x52, 0xd9, 0x61, 0x42, 0x27, 0xab, 0xd4, 0x21, 0x80,\n\t0xea, 0x73, 0x72, 0xd9, 0x1f, 0x07, 0xa1, 0x8f, 0xba, 0xd0, 0x4c, 0xd7, 0xae, 0xac, 0x25, 0xe7,\n\t0xff, 0xa1, 0x18, 0x6b, 0xfe, 0x79, 0x4b, 0x62, 0x1b, 0x3d, 0x86, 0x4a, 0x9f, 0x46, 0x11, 0xf1,\n\t0xb8, 0xf0, 0x6a, 0xa0, 0xbc, 0xb2, 0x56, 0x7a, 0xf5, 0x3d, 0xa8, 0x69, 0x76, 0x22, 0xf3, 0xfa,\n\t0x84, 0x30, 0x86, 0x47, 0x2a, 0xab, 0x6a, 0x6e, 0x65, 0xa2, 0x48, 0xd4, 0x00, 0x18, 0xc4, 0xf8,\n\t0x32, 0x92, 0xbe, 0xa3, 0xa7, 0xd0, 0x18, 0x90, 0xe4, 0x22, 0xf0, 0xc8, 0xe7, 0x38, 0x9c, 0xca,\n\t0x74, 0x7d, 0x46, 0x66, 0x5a, 0x46, 0xb4, 0x1f, 0x51, 0x37, 0xf2, 0x28, 0xad, 0x9b, 0x0b, 0x41,\n\t0xa0, 0x3f, 0x5a, 0x00, 0xfb, 0xbe, 0xaf, 0x65, 0x9d, 0x2d, 0xa8, 0x33, 0xb5, 0x7c, 0x9e, 0x56,\n\t0x44, 0xcd, 0x35, 0xb7, 0x0c, 0x0e, 0x51, 0x96, 0x5a, 0x99, 0xb9, 0x95, 0x82, 0x51, 0x5c, 0x0a,\n\t0x86, 0xb3, 0x03, 0x65, 0x69, 0x99, 0xb5, 0xed, 0xad, 0x62, 0x7e, 0xd7, 0xa6, 0xf3, 0xae, 0xe6,\n\t0x40, 0x1f, 0xc2, 0x7a, 0xee, 0x9b, 0xa8, 0xb1, 0xbc, 0xbd, 0x59, 0x37, 0xb5, 0xb7, 0xaa, 0x42,\n\t0xfa, 0xb3, 0x67, 0x68, 0x00, 0xeb, 0xea, 0x96, 0xbf, 0xc5, 0x20, 0xd1, 0x2e, 0x34, 0xf6, 0xe3,\n\t0x38, 0x9c, 0x2d, 0xea, 0x94, 0x12, 0xd6, 0xa2, 0xc4, 0xdf, 0x2d, 0x70, 0x4c, 0x11, 0x9d, 0x3a,\n\t0x37, 0x0a, 0x5e, 0x77, 0xb7, 0xb0, 0xe8, 0xee, 0xb7, 0x86, 0xb8, 0x01, 0x70, 0xe9, 0x26, 0x80,\n\t0xdf, 0x87, 0x8d, 0x23, 0xc2, 0x85, 0x87, 0x5a, 0x13, 0xbb, 0x05, 0x08, 0x1f, 0xc0, 0xfd, 0x6b,\n\t0x42, 0x1a, 0x86, 0x0e, 0xd8, 0x71, 0xe0, 0xb3, 0xb6, 0x25, 0x5d, 0x34, 0x63, 0x90, 0xfb, 0x88,\n\t0xc2, 0xfa, 0xcb, 0x38, 0xa4, 0xf8, 0x0e, 0x99, 0xea, 0x80, 0x2d, 0x04, 0x74, 0xcb, 0x96, 0x6b,\n\t0x67, 0x1b, 0x4a, 0x8c, 0x63, 0x4e, 0x24, 0x56, 0xcd, 0x6b, 0x50, 0x0c, 0xc4, 0x89, 0xab, 0x18,\n\t0xd0, 0x07, 0x50, 0x7b, 0xc9, 0x48, 0xa2, 0xc6, 0x7b, 0x1b, 0x2a, 0xd8, 0xf3, 0xe8, 0x34, 0xe2,\n\t0x69, 0x15, 0x6a, 0x32, 0xed, 0x14, 0x85, 0xbc, 0x53, 0x20, 0x68, 0x1e, 0x11, 0x3e, 0x20, 0x8c,\n\t0x05, 0x34, 0x3a, 0x8e, 0xce, 0xe8, 0x92, 0x6e, 0xb2, 0x03, 0x9b, 0xf3, 0x3c, 0xbd, 0x59, 0xea,\n\t0x72, 0x94, 0x47, 0x23, 0xd7, 0xe8, 0x0f, 0xd6, 0x75, 0x66, 0x0d, 0x59, 0x17, 0xaa, 0x53, 0x46,\n\t0x12, 0xb1, 0x33, 0xdf, 0x37, 0x85, 0xdf, 0x3d, 0xcc, 0x88, 0xe4, 0xcd, 0x78, 0x9c, 0xef, 0x43,\n\t0x15, 0x8b, 0x5e, 0xf1, 0xe2, 0xf8, 0x60, 0x49, 0x4f, 0xcc, 0xce, 0x8c, 0x1c, 0x28, 0xde, 0x94,\n\t0x03, 0x0e, 0xb4, 0xfa, 0x61, 0x40, 0x22, 0x7e, 0x10, 0x30, 0x4f, 0xf5, 0x2c, 0xf4, 0x18, 0xee,\n\t0xb9, 0xc4, 0x23, 0x02, 0x50, 0x75, 0xa6, 0xe7, 0x4a, 0x82, 0x2f, 0x7d, 0x31, 0x9e, 0xad, 0x6c,\n\t0x3c, 0x0b, 0x12, 0x7d, 0xa1, 0x71, 0x26, 0xf8, 0x82, 0x2c, 0x69, 0xe3, 0x8f, 0xc0, 0x3e, 0x4b,\n\t0xe8, 0x44, 0x3f, 0x67, 0x5a, 0xf9, 0x7d, 0x91, 0x44, 0x3e, 0x0b, 0xe4, 0xa9, 0x98, 0x87, 0x09,\n\t0xc1, 0x8c, 0x46, 0xd2, 0xe5, 0x9a, 0xab, 0x29, 0xb4, 0x0b, 0xf6, 0xb3, 0xc0, 0x3b, 0x5f, 0xa2,\n\t0x37, 0x97, 0x28, 0xcc, 0x49, 0x7c, 0x09, 0x2d, 0xa5, 0xfd, 0x6e, 0x8f, 0xbb, 0x39, 0x70, 0x8b,\n\t0xab, 0xc1, 0x45, 0x5f, 0x40, 0x53, 0x5e, 0x4f, 0x10, 0xf9, 0xca, 0xce, 0xdd, 0x1e, 0x3f, 0xba,\n\t0xd2, 0x0b, 0xcb, 0x07, 0xcd, 0xaf, 0x2d, 0x68, 0x98, 0x97, 0xff, 0x96, 0xbc, 0x4d, 0x33, 0xad,\n\t0x90, 0x67, 0x5a, 0x1a, 0x67, 0x31, 0x8f, 0xb3, 0x09, 0x85, 0xf0, 0x42, 0x3f, 0x9d, 0x0a, 0xe1,\n\t0x85, 0xe0, 0x20, 0x5f, 0xc5, 0xb2, 0x37, 0xd8, 0xae, 0x58, 0x0a, 0x0b, 0xe4, 0xab, 0x98, 0x07,\n\t0x13, 0xd2, 0x2e, 0xcb, 0xdd, 0x94, 0x44, 0x7f, 0xb1, 0xa0, 0x95, 0x83, 0xa8, 0x73, 0xf6, 0xf6,\n\t0x0d, 0x5c, 0xa4, 0xf7, 0x50, 0xc7, 0xa1, 0xe3, 0x5d, 0x9a, 0xde, 0x29, 0x8f, 0xf3, 0x14, 0xea,\n\t0xc3, 0x0c, 0x55, 0xd6, 0x2e, 0xca, 0x46, 0xb2, 0x69, 0x88, 0x64, 0x87, 0xae, 0xc9, 0x88, 0xfe,\n\t0x6c, 0x41, 0xa3, 0x9f, 0x10, 0xcc, 0xc9, 0x8b, 0x10, 0xcf, 0x48, 0xb2, 0xe4, 0xba, 0x6f, 0x5b,\n\t0x39, 0xf9, 0x9b, 0xa3, 0xb8, 0x6a, 0xba, 0x3b, 0x8f, 0xa0, 0x32, 0x12, 0xb6, 0x8e, 0x0f, 0x24,\n\t0xae, 0xf3, 0x4c, 0xe9, 0x51, 0x9a, 0x60, 0xa5, 0xfc, 0xeb, 0xe1, 0xbf, 0x16, 0x38, 0xa6, 0x9b,\n\t0xdf, 0x3d, 0xa0, 0xdb, 0x50, 0x8b, 0xa5, 0xa9, 0xe5, 0x39, 0x9d, 0x1f, 0x3a, 0xbb, 0x50, 0xe3,\n\t0x09, 0x8e, 0x98, 0x7c, 0x7e, 0xdb, 0xa6, 0xea, 0x39, 0x8f, 0x73, 0x26, 0x81, 0x42, 0x42, 0xe9,\n\t0x44, 0x68, 0x2e, 0x2d, 0xa2, 0xa0, 0x8f, 0xd0, 0x0f, 0x60, 0x5d, 0x89, 0x7e, 0x36, 0xe5, 0x61,\n\t0x10, 0x11, 0xa3, 0x6a, 0xad, 0xb9, 0xaa, 0x2d, 0x83, 0x7d, 0x1a, 0x78, 0xe7, 0xa8, 0x0e, 0xb5,\n\t0xd3, 0x60, 0x42, 0x0e, 0xc3, 0x29, 0x1b, 0xa3, 0xd7, 0x16, 0x34, 0x7b, 0x98, 0xf3, 0x90, 0xb8,\n\t0x94, 0x4e, 0x96, 0x77, 0x62, 0xf1, 0x2a, 0x4a, 0x78, 0x3a, 0xe3, 0x4b, 0xae, 0x22, 0x44, 0x75,\n\t0x0c, 0x29, 0x63, 0x32, 0xea, 0x92, 0x2b, 0xd7, 0xe9, 0x95, 0xd8, 0x79, 0xcd, 0x3b, 0x60, 0x8f,\n\t0x49, 0x42, 0x65, 0x04, 0x25, 0x57, 0xae, 0xc5, 0x9e, 0x87, 0x13, 0xbf, 0x5d, 0xde, 0x2a, 0x8a,\n\t0xba, 0x12, 0x6b, 0x61, 0x83, 0xbc, 0x9a, 0x06, 0x71, 0xbb, 0xb2, 0x55, 0x14, 0x36, 0x24, 0x91,\n\t0x55, 0x60, 0xd5, 0xa8, 0x40, 0x55, 0x6f, 0x35, 0xa9, 0x4f, 0xd4, 0x5b, 0x13, 0x0a, 0x38, 0x68,\n\t0x83, 0xa2, 0x71, 0x20, 0x3e, 0x21, 0x8f, 0x08, 0xff, 0x94, 0x0e, 0x87, 0x33, 0x11, 0x0f, 0x7a,\n\t0x0a, 0x4d, 0x49, 0xfc, 0x74, 0x4a, 0xa6, 0x44, 0x02, 0xeb, 0x80, 0xcd, 0xd3, 0xd9, 0x5b, 0x72,\n\t0xe5, 0x5a, 0x78, 0x1e, 0x4d, 0x27, 0x3a, 0x42, 0xb1, 0x44, 0xcf, 0xa1, 0xa5, 0x90, 0x51, 0x45,\n\t0x90, 0x4a, 0x62, 0xdf, 0x4f, 0xd2, 0xd9, 0x23, 0xd6, 0x8b, 0x92, 0x22, 0x96, 0x7c, 0x80, 0x96,\n\t0xd2, 0x61, 0xf9, 0x5b, 0x0b, 0x1c, 0xd3, 0x31, 0x9d, 0x9c, 0x7b, 0x50, 0x7b, 0x25, 0x3c, 0xd3,\n\t0x7d, 0xdf, 0x28, 0xc8, 0x79, 0xaf, 0xdd, 0x9c, 0xcd, 0xe9, 0x41, 0x6b, 0x78, 0xcd, 0x35, 0xf9,\n\t0x29, 0x52, 0xdf, 0x7b, 0xa0, 0x44, 0xaf, 0x3b, 0xee, 0x2e, 0xf0, 0xa3, 0xdf, 0x58, 0xf2, 0x6d,\n\t0x62, 0x72, 0x7e, 0xa3, 0xab, 0x7f, 0x00, 0x65, 0x1a, 0xc7, 0xf9, 0x57, 0xa4, 0xa6, 0x44, 0x16,\n\t0x33, 0x12, 0x9e, 0xad, 0xc8, 0x62, 0x7d, 0x84, 0x7e, 0x65, 0xc9, 0x47, 0x8f, 0xe9, 0x8d, 0xc6,\n\t0x67, 0x1b, 0x6a, 0xca, 0x77, 0xa1, 0x61, 0xf1, 0x83, 0x20, 0x3f, 0x94, 0x89, 0x2f, 0x92, 0xd8,\n\t0xcf, 0xc6, 0x95, 0xa4, 0xee, 0x32, 0xab, 0x7f, 0x67, 0xc1, 0xc6, 0x27, 0x34, 0x88, 0x94, 0x1f,\n\t0x12, 0xfb, 0x5b, 0x83, 0xf2, 0x10, 0xaa, 0x89, 0xae, 0x21, 0xfd, 0x79, 0x9d, 0xd1, 0x46, 0xd3,\n\t0xb3, 0x57, 0x36, 0xbd, 0x4d, 0x28, 0xe1, 0xe0, 0xf9, 0x74, 0xa2, 0x4b, 0x45, 0x11, 0xe8, 0x4b,\n\t0xb8, 0x7f, 0xcd, 0x21, 0x8d, 0xcb, 0x43, 0xa8, 0x5e, 0xe2, 0x80, 0xcb, 0xa9, 0xa2, 0x7c, 0xcb,\n\t0xe8, 0xbb, 0xfc, 0xc3, 0xf1, 0x08, 0x5a, 0xf2, 0x59, 0xf1, 0xd6, 0x88, 0xd1, 0x3f, 0x2d, 0xa8,\n\t0x9f, 0x60, 0xee, 0x8d, 0x15, 0x9b, 0xd3, 0x01, 0x50, 0xb8, 0xef, 0xe7, 0xd5, 0x60, 0xec, 0xac,\n\t0xbc, 0x8a, 0xc5, 0xe9, 0x99, 0x61, 0x69, 0xaf, 0xc2, 0xb2, 0x74, 0x0d, 0xcb, 0x3c, 0xb8, 0xf2,\n\t0x4d, 0xdd, 0xdc, 0xe8, 0xa0, 0x95, 0xd5, 0x1d, 0xf4, 0x4f, 0xd9, 0xd4, 0x50, 0xd1, 0xad, 0x1c,\n\t0x71, 0xcb, 0xde, 0x03, 0x0e, 0xd8, 0xec, 0x3c, 0x88, 0xd2, 0x52, 0x10, 0xeb, 0xb9, 0x51, 0x68,\n\t0xbf, 0x65, 0x14, 0xce, 0x0d, 0x8f, 0xd2, 0x5b, 0x86, 0x87, 0x7c, 0xb4, 0x98, 0x2e, 0x1a, 0x00,\n\t0x5b, 0x73, 0x00, 0xb7, 0xa1, 0xc2, 0x38, 0x1e, 0x11, 0x8d, 0x7c, 0xc9, 0x4d, 0xc9, 0x1c, 0xe8,\n\t0xa2, 0x09, 0xf4, 0x1e, 0x54, 0x94, 0x95, 0xf4, 0xc3, 0xa7, 0x6d, 0xce, 0x24, 0x13, 0x0f, 0x37,\n\t0x65, 0x44, 0x43, 0xd8, 0x30, 0x8f, 0xc5, 0x37, 0xa7, 0x01, 0xb4, 0xb5, 0x12, 0xe8, 0xbb, 0xa4,\n\t0xe5, 0xe7, 0x00, 0x79, 0xda, 0xaf, 0x8c, 0x76, 0x17, 0xca, 0xca, 0x29, 0x3d, 0xab, 0x57, 0x3b,\n\t0xaf, 0xf9, 0xd0, 0x8f, 0xa1, 0xb1, 0xcf, 0x39, 0xce, 0x12, 0xf9, 0x56, 0x8e, 0x8b, 0x91, 0x72,\n\t0x40, 0x72, 0x29, 0x74, 0x2c, 0xbe, 0x96, 0x3d, 0x7a, 0x21, 0x9e, 0x04, 0x52, 0xcd, 0x3b, 0x3f,\n\t0x87, 0x90, 0x07, 0xad, 0x39, 0x55, 0xdf, 0x05, 0x9a, 0x3b, 0x03, 0xa8, 0x0f, 0xc6, 0x34, 0x3e,\n\t0x61, 0x23, 0xf9, 0xb1, 0xbc, 0x01, 0x75, 0xe3, 0x4f, 0xd5, 0xd6, 0x9a, 0xd8, 0x30, 0xfe, 0x3b,\n\t0x6d, 0x59, 0x4e, 0x0b, 0x1a, 0x29, 0xc7, 0x80, 0x84, 0x61, 0xab, 0x20, 0x76, 0x52, 0x16, 0xb9,\n\t0x53, 0xdc, 0xf9, 0x3f, 0x80, 0x1e, 0x1e, 0xa5, 0x3a, 0xeb, 0x50, 0x11, 0xe7, 0x3d, 0x3c, 0x6a,\n\t0xad, 0xed, 0x1c, 0x66, 0x7f, 0xb4, 0xc8, 0xcf, 0x45, 0x67, 0x53, 0x7d, 0x30, 0xa4, 0xf4, 0x61,\n\t0x42, 0x88, 0xb6, 0xaa, 0x76, 0x0f, 0xa7, 0x61, 0xd8, 0xb2, 0x8c, 0x8d, 0x01, 0xa7, 0x71, 0xab,\n\t0xd0, 0xfb, 0xd1, 0xeb, 0x37, 0x9d, 0xb5, 0x7f, 0xbc, 0xe9, 0xac, 0x7d, 0xfd, 0xa6, 0x63, 0xfd,\n\t0xf2, 0xaa, 0x63, 0xfd, 0xf5, 0xaa, 0x63, 0xfd, 0xed, 0xaa, 0x63, 0xbd, 0xbe, 0xea, 0x58, 0xff,\n\t0xba, 0xea, 0x58, 0xff, 0xb9, 0xea, 0xac, 0x7d, 0x7d, 0xd5, 0xb1, 0x7e, 0xff, 0xef, 0xce, 0xda,\n\t0xb0, 0x2c, 0xff, 0x74, 0x7e, 0xff, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x9f, 0x26, 0x18, 0xb5,\n\t0xcf, 0x16, 0x00, 0x00,\n}\n"
  },
  {
    "path": "server/src/gameproto/msgs/share.pb.go",
    "content": "// Code generated by protoc-gen-gogo.\n// source: share.proto\n// DO NOT EDIT!\n\npackage msgs\n\nimport proto \"github.com/gogo/protobuf/proto\"\nimport fmt \"fmt\"\nimport math \"math\"\n\nimport strconv \"strconv\"\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// 错误类型\ntype GAErrorCode int32\n\nconst (\n\tOK            GAErrorCode = 0\n\tFail          GAErrorCode = 1\n\tError         GAErrorCode = 2\n\tServerFull    GAErrorCode = 3\n\tKeyError      GAErrorCode = 4\n\tNoFoundTarget GAErrorCode = 5\n\t// old code\n\tIMPORTANT_WRONG_HEAD      GAErrorCode = -1000\n\tRESOURCE_VITALITY_ERROR   GAErrorCode = 1002\n\tRESOURCE_GOLD_ERROR       GAErrorCode = 1003\n\tRESOURCE_RMB_ERROR        GAErrorCode = 1004\n\tGUILD_EXIT_CHAIRMAN_ERROR GAErrorCode = 1022\n\tUNKNOWN_ERROR             GAErrorCode = -9999\n)\n\nvar GAErrorCode_name = map[int32]string{\n\t0:     \"OK\",\n\t1:     \"Fail\",\n\t2:     \"Error\",\n\t3:     \"ServerFull\",\n\t4:     \"KeyError\",\n\t5:     \"NoFoundTarget\",\n\t-1000: \"IMPORTANT_WRONG_HEAD\",\n\t1002:  \"RESOURCE_VITALITY_ERROR\",\n\t1003:  \"RESOURCE_GOLD_ERROR\",\n\t1004:  \"RESOURCE_RMB_ERROR\",\n\t1022:  \"GUILD_EXIT_CHAIRMAN_ERROR\",\n\t-9999: \"UNKNOWN_ERROR\",\n}\nvar GAErrorCode_value = map[string]int32{\n\t\"OK\":                        0,\n\t\"Fail\":                      1,\n\t\"Error\":                     2,\n\t\"ServerFull\":                3,\n\t\"KeyError\":                  4,\n\t\"NoFoundTarget\":             5,\n\t\"IMPORTANT_WRONG_HEAD\":      -1000,\n\t\"RESOURCE_VITALITY_ERROR\":   1002,\n\t\"RESOURCE_GOLD_ERROR\":       1003,\n\t\"RESOURCE_RMB_ERROR\":        1004,\n\t\"GUILD_EXIT_CHAIRMAN_ERROR\": 1022,\n\t\"UNKNOWN_ERROR\":             -9999,\n}\n\nfunc (GAErrorCode) EnumDescriptor() ([]byte, []int) { return fileDescriptorShare, []int{0} }\n\n// 服务器类型\ntype ServerType int32\n\nconst (\n\tST_NONE          ServerType = 0\n\tST_LoginServer   ServerType = 1\n\tST_GateServer    ServerType = 2\n\tST_GameServer    ServerType = 4\n\tST_BattleServer  ServerType = 8\n\tST_CenterServer  ServerType = 16\n\tST_SessionServer ServerType = 32\n\tST_ALLServer     ServerType = 63\n)\n\nvar ServerType_name = map[int32]string{\n\t0:  \"ST_NONE\",\n\t1:  \"ST_LoginServer\",\n\t2:  \"ST_GateServer\",\n\t4:  \"ST_GameServer\",\n\t8:  \"ST_BattleServer\",\n\t16: \"ST_CenterServer\",\n\t32: \"ST_SessionServer\",\n\t63: \"ST_ALLServer\",\n}\nvar ServerType_value = map[string]int32{\n\t\"ST_NONE\":          0,\n\t\"ST_LoginServer\":   1,\n\t\"ST_GateServer\":    2,\n\t\"ST_GameServer\":    4,\n\t\"ST_BattleServer\":  8,\n\t\"ST_CenterServer\":  16,\n\t\"ST_SessionServer\": 32,\n\t\"ST_ALLServer\":     63,\n}\n\nfunc (ServerType) EnumDescriptor() ([]byte, []int) { return fileDescriptorShare, []int{1} }\n\n// 消息主类型\ntype ChannelType int32\n\nconst (\n\tLogin        ChannelType = 0\n\tHeartbeat    ChannelType = 1\n\tGameServer   ChannelType = 100\n\tBattleServer ChannelType = 200\n)\n\nvar ChannelType_name = map[int32]string{\n\t0:   \"Login\",\n\t1:   \"Heartbeat\",\n\t100: \"GameServer\",\n\t200: \"BattleServer\",\n}\nvar ChannelType_value = map[string]int32{\n\t\"Login\":        0,\n\t\"Heartbeat\":    1,\n\t\"GameServer\":   100,\n\t\"BattleServer\": 200,\n}\n\nfunc (ChannelType) EnumDescriptor() ([]byte, []int) { return fileDescriptorShare, []int{2} }\n\nfunc init() {\n\tproto.RegisterEnum(\"msgs.GAErrorCode\", GAErrorCode_name, GAErrorCode_value)\n\tproto.RegisterEnum(\"msgs.ServerType\", ServerType_name, ServerType_value)\n\tproto.RegisterEnum(\"msgs.ChannelType\", ChannelType_name, ChannelType_value)\n}\nfunc (x GAErrorCode) String() string {\n\ts, ok := GAErrorCode_name[int32(x)]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(x))\n}\nfunc (x ServerType) String() string {\n\ts, ok := ServerType_name[int32(x)]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(x))\n}\nfunc (x ChannelType) String() string {\n\ts, ok := ChannelType_name[int32(x)]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(x))\n}\n\nfunc init() { proto.RegisterFile(\"share.proto\", fileDescriptorShare) }\n\nvar fileDescriptorShare = []byte{\n\t// 447 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x92, 0x31, 0x6f, 0xd3, 0x40,\n\t0x14, 0x80, 0x7d, 0x21, 0xa9, 0x93, 0x97, 0xa4, 0x5c, 0x5f, 0x2b, 0x15, 0x10, 0x3a, 0xc1, 0x1a,\n\t0x21, 0x16, 0x7e, 0x00, 0x72, 0x5c, 0xc7, 0x31, 0x71, 0x6c, 0x64, 0x5f, 0x28, 0x4c, 0x27, 0x57,\n\t0x39, 0xa5, 0x91, 0x5c, 0xbb, 0x3a, 0xbb, 0x48, 0xdd, 0xd8, 0x59, 0x18, 0xf9, 0x03, 0x48, 0xac,\n\t0xfc, 0x8b, 0x8e, 0x1d, 0x19, 0x89, 0x59, 0x10, 0x30, 0x84, 0x8d, 0x09, 0x50, 0x12, 0x3b, 0xa2,\n\t0x37, 0x7e, 0xdf, 0x93, 0xee, 0x7b, 0xba, 0x83, 0x76, 0x76, 0x1a, 0x29, 0xf9, 0xf8, 0x5c, 0xa5,\n\t0x79, 0x8a, 0xf5, 0xb3, 0x6c, 0x96, 0xf5, 0xde, 0xd6, 0xa0, 0x6d, 0x1b, 0x96, 0x52, 0xa9, 0x32,\n\t0xd3, 0xa9, 0xc4, 0x1d, 0xa8, 0xf9, 0x23, 0xaa, 0x61, 0x13, 0xea, 0x83, 0x68, 0x1e, 0x53, 0x82,\n\t0x2d, 0x68, 0xac, 0x35, 0xad, 0xe1, 0x2e, 0x40, 0x28, 0xd5, 0x6b, 0xa9, 0x06, 0x17, 0x71, 0x4c,\n\t0x6f, 0x61, 0x07, 0x9a, 0x23, 0x79, 0xb9, 0xb1, 0x75, 0xdc, 0x83, 0xae, 0x97, 0x0e, 0xd2, 0x8b,\n\t0x64, 0xca, 0x23, 0x35, 0x93, 0x39, 0x6d, 0xe0, 0x43, 0x38, 0x70, 0xc6, 0xcf, 0xfd, 0x80, 0x1b,\n\t0x1e, 0x17, 0xc7, 0x81, 0xef, 0xd9, 0x62, 0x68, 0x19, 0x47, 0xf4, 0xfd, 0xef, 0xbf, 0x9b, 0x43,\n\t0xf0, 0x3e, 0x1c, 0x06, 0x56, 0xe8, 0x4f, 0x02, 0xd3, 0x12, 0x2f, 0x1c, 0x6e, 0xb8, 0x0e, 0x7f,\n\t0x25, 0xac, 0x20, 0xf0, 0x03, 0xfa, 0x5d, 0xc7, 0x3b, 0xb0, 0xbf, 0xb5, 0xb6, 0xef, 0x1e, 0x95,\n\t0xe6, 0x87, 0x8e, 0x87, 0x80, 0x5b, 0x13, 0x8c, 0xfb, 0xa5, 0xf8, 0xa9, 0x23, 0x83, 0xbb, 0xf6,\n\t0xc4, 0x59, 0x8d, 0xbe, 0x74, 0xb8, 0x30, 0x87, 0x86, 0x13, 0x8c, 0x0d, 0xaf, 0xf4, 0x7f, 0x74,\n\t0xbc, 0x07, 0xdd, 0x89, 0x37, 0xf2, 0xfc, 0xe3, 0x8a, 0xfd, 0xfa, 0x54, 0xc5, 0xf4, 0x3e, 0x90,\n\t0x6a, 0x43, 0x7e, 0x79, 0x2e, 0xb1, 0x0d, 0x7a, 0xc8, 0x85, 0xe7, 0x7b, 0x16, 0xd5, 0x10, 0x61,\n\t0x37, 0xe4, 0xc2, 0x4d, 0x67, 0xf3, 0x64, 0x33, 0x42, 0xc9, 0x6a, 0xe5, 0x90, 0x0b, 0x3b, 0xca,\n\t0x65, 0x89, 0x6a, 0x5b, 0x74, 0x56, 0xa1, 0x3a, 0xee, 0xc3, 0xed, 0x90, 0x8b, 0x7e, 0x94, 0xe7,\n\t0x71, 0x05, 0x9b, 0x25, 0x34, 0x65, 0x92, 0x4b, 0x55, 0x42, 0x8a, 0x07, 0x40, 0x43, 0x2e, 0x42,\n\t0x99, 0x65, 0xf3, 0xb4, 0xba, 0xe5, 0x01, 0x52, 0xe8, 0x84, 0x5c, 0x18, 0xae, 0x5b, 0x92, 0xa7,\n\t0xbd, 0x67, 0xd0, 0x36, 0x4f, 0xa3, 0x24, 0x91, 0xf1, 0xba, 0xb3, 0x05, 0x8d, 0x75, 0x17, 0xd5,\n\t0xb0, 0x0b, 0xad, 0xa1, 0x8c, 0x54, 0x7e, 0x22, 0xa3, 0x9c, 0x92, 0xd5, 0x8b, 0xfd, 0x97, 0x32,\n\t0xc5, 0x3d, 0xe8, 0xdc, 0xe8, 0xb8, 0x22, 0xfd, 0x47, 0xd7, 0x0b, 0xa6, 0x7d, 0x5e, 0x30, 0x6d,\n\t0xb9, 0x60, 0xe4, 0x4d, 0xc1, 0xc8, 0xc7, 0x82, 0x91, 0xab, 0x82, 0x91, 0xeb, 0x82, 0x91, 0x2f,\n\t0x05, 0x23, 0xdf, 0x0a, 0xa6, 0x2d, 0x0b, 0x46, 0xde, 0x7d, 0x65, 0xda, 0xc9, 0xce, 0xfa, 0xf3,\n\t0x3c, 0xf9, 0x17, 0x00, 0x00, 0xff, 0xff, 0x6d, 0x86, 0xb2, 0x4e, 0x4b, 0x02, 0x00, 0x00,\n}\n"
  },
  {
    "path": "server/src/gameproto/share.pb.go",
    "content": "// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: share.proto\n\npackage gameproto\n\nimport (\n\tfmt \"fmt\"\n\tproto \"github.com/gogo/protobuf/proto\"\n\tio \"io\"\n\tmath \"math\"\n\treflect \"reflect\"\n\tstrconv \"strconv\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package\n\n// 错误类型\ntype ErrorCode int32\n\nconst (\n\tOK            ErrorCode = 0\n\tFail          ErrorCode = 1\n\tError         ErrorCode = 2\n\tServerFull    ErrorCode = 3\n\tKeyError      ErrorCode = 4\n\tNoFoundTarget ErrorCode = 5\n\t//old code\n\tIMPORTANT_WRONG_HEAD      ErrorCode = -1000\n\tRESOURCE_VITALITY_ERROR   ErrorCode = 1002\n\tRESOURCE_GOLD_ERROR       ErrorCode = 1003\n\tRESOURCE_RMB_ERROR        ErrorCode = 1004\n\tGUILD_EXIT_CHAIRMAN_ERROR ErrorCode = 1022\n\tUNKNOWN_ERROR             ErrorCode = -9999\n)\n\nvar ErrorCode_name = map[int32]string{\n\t0:     \"OK\",\n\t1:     \"Fail\",\n\t2:     \"Error\",\n\t3:     \"ServerFull\",\n\t4:     \"KeyError\",\n\t5:     \"NoFoundTarget\",\n\t-1000: \"IMPORTANT_WRONG_HEAD\",\n\t1002:  \"RESOURCE_VITALITY_ERROR\",\n\t1003:  \"RESOURCE_GOLD_ERROR\",\n\t1004:  \"RESOURCE_RMB_ERROR\",\n\t1022:  \"GUILD_EXIT_CHAIRMAN_ERROR\",\n\t-9999: \"UNKNOWN_ERROR\",\n}\n\nvar ErrorCode_value = map[string]int32{\n\t\"OK\":                        0,\n\t\"Fail\":                      1,\n\t\"Error\":                     2,\n\t\"ServerFull\":                3,\n\t\"KeyError\":                  4,\n\t\"NoFoundTarget\":             5,\n\t\"IMPORTANT_WRONG_HEAD\":      -1000,\n\t\"RESOURCE_VITALITY_ERROR\":   1002,\n\t\"RESOURCE_GOLD_ERROR\":       1003,\n\t\"RESOURCE_RMB_ERROR\":        1004,\n\t\"GUILD_EXIT_CHAIRMAN_ERROR\": 1022,\n\t\"UNKNOWN_ERROR\":             -9999,\n}\n\nfunc (ErrorCode) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_cd0836ea8f2388e7, []int{0}\n}\n\ntype BattleType int32\n\nconst (\n\tPVE BattleType = 0\n\tPVP BattleType = 1\n)\n\nvar BattleType_name = map[int32]string{\n\t0: \"PVE\",\n\t1: \"PVP\",\n}\n\nvar BattleType_value = map[string]int32{\n\t\"PVE\": 0,\n\t\"PVP\": 1,\n}\n\nfunc (BattleType) EnumDescriptor() ([]byte, []int) {\n\treturn fileDescriptor_cd0836ea8f2388e7, []int{1}\n}\n\ntype C2S_TestMsg struct {\n\tId uint32 `protobuf:\"varint,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n}\n\nfunc (m *C2S_TestMsg) Reset()      { *m = C2S_TestMsg{} }\nfunc (*C2S_TestMsg) ProtoMessage() {}\nfunc (*C2S_TestMsg) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cd0836ea8f2388e7, []int{0}\n}\nfunc (m *C2S_TestMsg) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *C2S_TestMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_C2S_TestMsg.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *C2S_TestMsg) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_C2S_TestMsg.Merge(m, src)\n}\nfunc (m *C2S_TestMsg) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *C2S_TestMsg) XXX_DiscardUnknown() {\n\txxx_messageInfo_C2S_TestMsg.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_C2S_TestMsg proto.InternalMessageInfo\n\nfunc (m *C2S_TestMsg) GetId() uint32 {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn 0\n}\n\ntype S2C_TestMsg struct {\n\tId uint32 `protobuf:\"varint,1,opt,name=id,proto3\" json:\"id,omitempty\"`\n}\n\nfunc (m *S2C_TestMsg) Reset()      { *m = S2C_TestMsg{} }\nfunc (*S2C_TestMsg) ProtoMessage() {}\nfunc (*S2C_TestMsg) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cd0836ea8f2388e7, []int{1}\n}\nfunc (m *S2C_TestMsg) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *S2C_TestMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_S2C_TestMsg.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *S2C_TestMsg) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_S2C_TestMsg.Merge(m, src)\n}\nfunc (m *S2C_TestMsg) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *S2C_TestMsg) XXX_DiscardUnknown() {\n\txxx_messageInfo_S2C_TestMsg.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_S2C_TestMsg proto.InternalMessageInfo\n\nfunc (m *S2C_TestMsg) GetId() uint32 {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn 0\n}\n\ntype S2C_ConfirmInfo struct {\n\tMsgHead int32 `protobuf:\"varint,1,opt,name=msgHead,proto3\" json:\"msgHead,omitempty\"`\n\tCode    int32 `protobuf:\"varint,2,opt,name=code,proto3\" json:\"code,omitempty\"`\n}\n\nfunc (m *S2C_ConfirmInfo) Reset()      { *m = S2C_ConfirmInfo{} }\nfunc (*S2C_ConfirmInfo) ProtoMessage() {}\nfunc (*S2C_ConfirmInfo) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_cd0836ea8f2388e7, []int{2}\n}\nfunc (m *S2C_ConfirmInfo) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *S2C_ConfirmInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tif deterministic {\n\t\treturn xxx_messageInfo_S2C_ConfirmInfo.Marshal(b, m, deterministic)\n\t} else {\n\t\tb = b[:cap(b)]\n\t\tn, err := m.MarshalTo(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[:n], nil\n\t}\n}\nfunc (m *S2C_ConfirmInfo) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_S2C_ConfirmInfo.Merge(m, src)\n}\nfunc (m *S2C_ConfirmInfo) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *S2C_ConfirmInfo) XXX_DiscardUnknown() {\n\txxx_messageInfo_S2C_ConfirmInfo.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_S2C_ConfirmInfo proto.InternalMessageInfo\n\nfunc (m *S2C_ConfirmInfo) GetMsgHead() int32 {\n\tif m != nil {\n\t\treturn m.MsgHead\n\t}\n\treturn 0\n}\n\nfunc (m *S2C_ConfirmInfo) GetCode() int32 {\n\tif m != nil {\n\t\treturn m.Code\n\t}\n\treturn 0\n}\n\nfunc init() {\n\tproto.RegisterEnum(\"gameproto.ErrorCode\", ErrorCode_name, ErrorCode_value)\n\tproto.RegisterEnum(\"gameproto.BattleType\", BattleType_name, BattleType_value)\n\tproto.RegisterType((*C2S_TestMsg)(nil), \"gameproto.C2S_TestMsg\")\n\tproto.RegisterType((*S2C_TestMsg)(nil), \"gameproto.S2C_TestMsg\")\n\tproto.RegisterType((*S2C_ConfirmInfo)(nil), \"gameproto.S2C_ConfirmInfo\")\n}\n\nfunc init() { proto.RegisterFile(\"share.proto\", fileDescriptor_cd0836ea8f2388e7) }\n\nvar fileDescriptor_cd0836ea8f2388e7 = []byte{\n\t// 418 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0xd1, 0x31, 0x6f, 0xd3, 0x40,\n\t0x1c, 0x05, 0xf0, 0x3b, 0x37, 0xa9, 0x9b, 0x7f, 0x49, 0x39, 0xfe, 0x20, 0x35, 0x20, 0x38, 0x01,\n\t0x13, 0xea, 0xc0, 0x50, 0xd8, 0x91, 0xe3, 0x3a, 0x89, 0x95, 0xc6, 0x8e, 0x2e, 0x97, 0x16, 0x26,\n\t0xcb, 0xe0, 0x6b, 0x88, 0x94, 0xe4, 0xaa, 0x8b, 0x8b, 0xd4, 0x8d, 0x95, 0x8d, 0x91, 0x8f, 0xc0,\n\t0xca, 0xb7, 0x60, 0xcc, 0xd8, 0x91, 0x38, 0x0b, 0x02, 0x86, 0xb2, 0x31, 0x01, 0x8a, 0x9d, 0x74,\n\t0xeb, 0x4d, 0xef, 0xde, 0xef, 0x0d, 0x27, 0x1d, 0x6c, 0x4f, 0xdf, 0xc6, 0x46, 0x3d, 0x3d, 0x35,\n\t0x3a, 0xd5, 0x58, 0x19, 0xc4, 0x63, 0x95, 0xc7, 0xc7, 0x0f, 0x60, 0xdb, 0xdd, 0xef, 0x45, 0x52,\n\t0x4d, 0xd3, 0xce, 0x74, 0x80, 0x3b, 0x60, 0x0d, 0x93, 0x1a, 0x7d, 0x48, 0x9f, 0x54, 0x85, 0x35,\n\t0x4c, 0x96, 0xdc, 0xdb, 0x77, 0xaf, 0xe5, 0x17, 0x70, 0x73, 0xc9, 0xae, 0x9e, 0x9c, 0x0c, 0xcd,\n\t0xd8, 0x9f, 0x9c, 0x68, 0xac, 0x81, 0x3d, 0x9e, 0x0e, 0x5a, 0x2a, 0x2e, 0x76, 0x65, 0xb1, 0xbe,\n\t0x22, 0x42, 0xe9, 0x8d, 0x4e, 0x54, 0xcd, 0xca, 0xeb, 0x3c, 0xef, 0x7d, 0xb0, 0xa0, 0xe2, 0x19,\n\t0xa3, 0x8d, 0xab, 0x13, 0x85, 0x9b, 0x60, 0x85, 0x6d, 0x46, 0x70, 0x0b, 0x4a, 0x8d, 0x78, 0x38,\n\t0x62, 0x14, 0x2b, 0x50, 0xce, 0x99, 0x59, 0xb8, 0x03, 0xd0, 0x53, 0xe6, 0x9d, 0x32, 0x8d, 0xb3,\n\t0xd1, 0x88, 0x6d, 0xe0, 0x0d, 0xd8, 0x6a, 0xab, 0xf3, 0x42, 0x4b, 0x78, 0x0b, 0xaa, 0x81, 0x6e,\n\t0xe8, 0xb3, 0x49, 0x22, 0x63, 0x33, 0x50, 0x29, 0x2b, 0xe3, 0x23, 0xb8, 0xe3, 0x77, 0xba, 0xa1,\n\t0x90, 0x4e, 0x20, 0xa3, 0x63, 0x11, 0x06, 0xcd, 0xa8, 0xe5, 0x39, 0x07, 0xec, 0xd3, 0x9f, 0x7f,\n\t0xc5, 0xa1, 0x78, 0x1f, 0x76, 0x85, 0xd7, 0x0b, 0xfb, 0xc2, 0xf5, 0xa2, 0x23, 0x5f, 0x3a, 0x87,\n\t0xbe, 0x7c, 0x15, 0x79, 0x42, 0x84, 0x82, 0xfd, 0xb0, 0xb1, 0x06, 0xb7, 0xaf, 0xb4, 0x19, 0x1e,\n\t0x1e, 0xac, 0xe4, 0xa7, 0x8d, 0xbb, 0x80, 0x57, 0x22, 0x3a, 0xf5, 0x15, 0xfc, 0xb2, 0x91, 0xc3,\n\t0xdd, 0x66, 0xdf, 0x5f, 0x4e, 0x5f, 0xfa, 0x32, 0x72, 0x5b, 0x8e, 0x2f, 0x3a, 0x4e, 0xb0, 0xf2,\n\t0xbf, 0x36, 0xde, 0x83, 0x6a, 0x3f, 0x68, 0x07, 0xe1, 0xf1, 0xba, 0xfb, 0xfd, 0x65, 0xfd, 0x98,\n\t0x3d, 0x0e, 0x50, 0x8f, 0xd3, 0x74, 0xa4, 0xe4, 0xf9, 0xa9, 0x42, 0x1b, 0x36, 0xba, 0x47, 0x1e,\n\t0x23, 0x45, 0xe8, 0x32, 0x5a, 0x7f, 0x3e, 0x9b, 0x73, 0x72, 0x31, 0xe7, 0xe4, 0x72, 0xce, 0xe9,\n\t0xfb, 0x8c, 0xd3, 0xcf, 0x19, 0xa7, 0x5f, 0x33, 0x4e, 0x67, 0x19, 0xa7, 0xdf, 0x32, 0x4e, 0xbf,\n\t0x67, 0x9c, 0x5c, 0x66, 0x9c, 0x7e, 0x5c, 0x70, 0x32, 0x5b, 0x70, 0x72, 0xb1, 0xe0, 0xe4, 0xf5,\n\t0x66, 0xfe, 0xcf, 0xcf, 0xfe, 0x07, 0x00, 0x00, 0xff, 0xff, 0x55, 0xc6, 0x84, 0x61, 0x01, 0x02,\n\t0x00, 0x00,\n}\n\nfunc (x ErrorCode) String() string {\n\ts, ok := ErrorCode_name[int32(x)]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(x))\n}\nfunc (x BattleType) String() string {\n\ts, ok := BattleType_name[int32(x)]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(x))\n}\nfunc (this *C2S_TestMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*C2S_TestMsg)\n\tif !ok {\n\t\tthat2, ok := that.(C2S_TestMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Id != that1.Id {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *S2C_TestMsg) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*S2C_TestMsg)\n\tif !ok {\n\t\tthat2, ok := that.(S2C_TestMsg)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.Id != that1.Id {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *S2C_ConfirmInfo) Equal(that interface{}) bool {\n\tif that == nil {\n\t\treturn this == nil\n\t}\n\n\tthat1, ok := that.(*S2C_ConfirmInfo)\n\tif !ok {\n\t\tthat2, ok := that.(S2C_ConfirmInfo)\n\t\tif ok {\n\t\t\tthat1 = &that2\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\tif that1 == nil {\n\t\treturn this == nil\n\t} else if this == nil {\n\t\treturn false\n\t}\n\tif this.MsgHead != that1.MsgHead {\n\t\treturn false\n\t}\n\tif this.Code != that1.Code {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc (this *C2S_TestMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&gameproto.C2S_TestMsg{\")\n\ts = append(s, \"Id: \"+fmt.Sprintf(\"%#v\", this.Id)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *S2C_TestMsg) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 5)\n\ts = append(s, \"&gameproto.S2C_TestMsg{\")\n\ts = append(s, \"Id: \"+fmt.Sprintf(\"%#v\", this.Id)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc (this *S2C_ConfirmInfo) GoString() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := make([]string, 0, 6)\n\ts = append(s, \"&gameproto.S2C_ConfirmInfo{\")\n\ts = append(s, \"MsgHead: \"+fmt.Sprintf(\"%#v\", this.MsgHead)+\",\\n\")\n\ts = append(s, \"Code: \"+fmt.Sprintf(\"%#v\", this.Code)+\",\\n\")\n\ts = append(s, \"}\")\n\treturn strings.Join(s, \"\")\n}\nfunc valueToGoStringShare(v interface{}, typ string) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"func(v %v) *%v { return &v } ( %#v )\", typ, typ, pv)\n}\nfunc (m *C2S_TestMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *C2S_TestMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintShare(dAtA, i, uint64(m.Id))\n\t}\n\treturn i, nil\n}\n\nfunc (m *S2C_TestMsg) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *S2C_TestMsg) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintShare(dAtA, i, uint64(m.Id))\n\t}\n\treturn i, nil\n}\n\nfunc (m *S2C_ConfirmInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalTo(dAtA)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *S2C_ConfirmInfo) MarshalTo(dAtA []byte) (int, error) {\n\tvar i int\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MsgHead != 0 {\n\t\tdAtA[i] = 0x8\n\t\ti++\n\t\ti = encodeVarintShare(dAtA, i, uint64(m.MsgHead))\n\t}\n\tif m.Code != 0 {\n\t\tdAtA[i] = 0x10\n\t\ti++\n\t\ti = encodeVarintShare(dAtA, i, uint64(m.Code))\n\t}\n\treturn i, nil\n}\n\nfunc encodeVarintShare(dAtA []byte, offset int, v uint64) int {\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn offset + 1\n}\nfunc (m *C2S_TestMsg) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tn += 1 + sovShare(uint64(m.Id))\n\t}\n\treturn n\n}\n\nfunc (m *S2C_TestMsg) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Id != 0 {\n\t\tn += 1 + sovShare(uint64(m.Id))\n\t}\n\treturn n\n}\n\nfunc (m *S2C_ConfirmInfo) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MsgHead != 0 {\n\t\tn += 1 + sovShare(uint64(m.MsgHead))\n\t}\n\tif m.Code != 0 {\n\t\tn += 1 + sovShare(uint64(m.Code))\n\t}\n\treturn n\n}\n\nfunc sovShare(x uint64) (n int) {\n\tfor {\n\t\tn++\n\t\tx >>= 7\n\t\tif x == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn n\n}\nfunc sozShare(x uint64) (n int) {\n\treturn sovShare(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *C2S_TestMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&C2S_TestMsg{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *S2C_TestMsg) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&S2C_TestMsg{`,\n\t\t`Id:` + fmt.Sprintf(\"%v\", this.Id) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *S2C_ConfirmInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&S2C_ConfirmInfo{`,\n\t\t`MsgHead:` + fmt.Sprintf(\"%v\", this.MsgHead) + `,`,\n\t\t`Code:` + fmt.Sprintf(\"%v\", this.Code) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringShare(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *C2S_TestMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowShare\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: C2S_TestMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: C2S_TestMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tm.Id = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowShare\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Id |= uint32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipShare(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthShare\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthShare\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *S2C_TestMsg) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowShare\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: S2C_TestMsg: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: S2C_TestMsg: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Id\", wireType)\n\t\t\t}\n\t\t\tm.Id = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowShare\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Id |= uint32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipShare(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthShare\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthShare\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *S2C_ConfirmInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowShare\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: S2C_ConfirmInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: S2C_ConfirmInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MsgHead\", wireType)\n\t\t\t}\n\t\t\tm.MsgHead = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowShare\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MsgHead |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Code\", wireType)\n\t\t\t}\n\t\t\tm.Code = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowShare\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Code |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipShare(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif skippy < 0 {\n\t\t\t\treturn ErrInvalidLengthShare\n\t\t\t}\n\t\t\tif (iNdEx + skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthShare\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipShare(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowShare\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowShare\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\t\treturn iNdEx, nil\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowShare\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthShare\n\t\t\t}\n\t\t\tiNdEx += length\n\t\t\tif iNdEx < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthShare\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 3:\n\t\t\tfor {\n\t\t\t\tvar innerWire uint64\n\t\t\t\tvar start int = iNdEx\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn 0, ErrIntOverflowShare\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tinnerWire |= (uint64(b) & 0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinnerWireType := int(innerWire & 0x7)\n\t\t\t\tif innerWireType == 4 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tnext, err := skipShare(dAtA[start:])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\tiNdEx = start + next\n\t\t\t\tif iNdEx < 0 {\n\t\t\t\t\treturn 0, ErrInvalidLengthShare\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 4:\n\t\t\treturn iNdEx, nil\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\t\treturn iNdEx, nil\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t}\n\tpanic(\"unreachable\")\n}\n\nvar (\n\tErrInvalidLengthShare = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowShare   = fmt.Errorf(\"proto: integer overflow\")\n)\n"
  }
]