{"version":3,"sources":["../src/generated/flight.js","../src/generated/flightsql.js","../src/generated/any.js","../src/flight.ts","../src/async_util.ts","../src/grpc_util.ts","../src/arrow_util.ts","../src/flightsql.ts","../src/client.ts"],"sourcesContent":["/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/\n\"use strict\";\n\nvar $protobuf = require(\"protobufjs/minimal\");\n\n// Common aliases\nvar $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n\n// Exported root namespace\nvar $root = $protobuf.roots[\"default\"] || ($protobuf.roots[\"default\"] = {});\n\n$root.arrow = (function() {\n\n    /**\n     * Namespace arrow.\n     * @exports arrow\n     * @namespace\n     */\n    var arrow = {};\n\n    arrow.flight = (function() {\n\n        /**\n         * Namespace flight.\n         * @memberof arrow\n         * @namespace\n         */\n        var flight = {};\n\n        flight.protocol = (function() {\n\n            /**\n             * Namespace protocol.\n             * @memberof arrow.flight\n             * @namespace\n             */\n            var protocol = {};\n\n            protocol.FlightService = (function() {\n\n                /**\n                 * Constructs a new FlightService service.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a FlightService\n                 * @extends $protobuf.rpc.Service\n                 * @constructor\n                 * @param {$protobuf.RPCImpl} rpcImpl RPC implementation\n                 * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n                 * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n                 */\n                function FlightService(rpcImpl, requestDelimited, responseDelimited) {\n                    $protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited);\n                }\n\n                (FlightService.prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = FlightService;\n\n                /**\n                 * Creates new FlightService service using the specified rpc implementation.\n                 * @function create\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @static\n                 * @param {$protobuf.RPCImpl} rpcImpl RPC implementation\n                 * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n                 * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n                 * @returns {FlightService} RPC service. Useful where requests and/or responses are streamed.\n                 */\n                FlightService.create = function create(rpcImpl, requestDelimited, responseDelimited) {\n                    return new this(rpcImpl, requestDelimited, responseDelimited);\n                };\n\n                /**\n                 * Callback as used by {@link arrow.flight.protocol.FlightService#handshake}.\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @typedef HandshakeCallback\n                 * @type {function}\n                 * @param {Error|null} error Error, if any\n                 * @param {arrow.flight.protocol.HandshakeResponse} [response] HandshakeResponse\n                 */\n\n                /**\n                 * Calls Handshake.\n                 * @function handshake\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IHandshakeRequest} request HandshakeRequest message or plain object\n                 * @param {arrow.flight.protocol.FlightService.HandshakeCallback} callback Node-style callback called with the error, if any, and HandshakeResponse\n                 * @returns {undefined}\n                 * @variation 1\n                 */\n                Object.defineProperty(FlightService.prototype.handshake = function handshake(request, callback) {\n                    return this.rpcCall(handshake, $root.arrow.flight.protocol.HandshakeRequest, $root.arrow.flight.protocol.HandshakeResponse, request, callback);\n                }, \"name\", { value: \"Handshake\" });\n\n                /**\n                 * Calls Handshake.\n                 * @function handshake\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IHandshakeRequest} request HandshakeRequest message or plain object\n                 * @returns {Promise<arrow.flight.protocol.HandshakeResponse>} Promise\n                 * @variation 2\n                 */\n\n                /**\n                 * Callback as used by {@link arrow.flight.protocol.FlightService#listFlights}.\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @typedef ListFlightsCallback\n                 * @type {function}\n                 * @param {Error|null} error Error, if any\n                 * @param {arrow.flight.protocol.FlightInfo} [response] FlightInfo\n                 */\n\n                /**\n                 * Calls ListFlights.\n                 * @function listFlights\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.ICriteria} request Criteria message or plain object\n                 * @param {arrow.flight.protocol.FlightService.ListFlightsCallback} callback Node-style callback called with the error, if any, and FlightInfo\n                 * @returns {undefined}\n                 * @variation 1\n                 */\n                Object.defineProperty(FlightService.prototype.listFlights = function listFlights(request, callback) {\n                    return this.rpcCall(listFlights, $root.arrow.flight.protocol.Criteria, $root.arrow.flight.protocol.FlightInfo, request, callback);\n                }, \"name\", { value: \"ListFlights\" });\n\n                /**\n                 * Calls ListFlights.\n                 * @function listFlights\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.ICriteria} request Criteria message or plain object\n                 * @returns {Promise<arrow.flight.protocol.FlightInfo>} Promise\n                 * @variation 2\n                 */\n\n                /**\n                 * Callback as used by {@link arrow.flight.protocol.FlightService#getFlightInfo}.\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @typedef GetFlightInfoCallback\n                 * @type {function}\n                 * @param {Error|null} error Error, if any\n                 * @param {arrow.flight.protocol.FlightInfo} [response] FlightInfo\n                 */\n\n                /**\n                 * Calls GetFlightInfo.\n                 * @function getFlightInfo\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IFlightDescriptor} request FlightDescriptor message or plain object\n                 * @param {arrow.flight.protocol.FlightService.GetFlightInfoCallback} callback Node-style callback called with the error, if any, and FlightInfo\n                 * @returns {undefined}\n                 * @variation 1\n                 */\n                Object.defineProperty(FlightService.prototype.getFlightInfo = function getFlightInfo(request, callback) {\n                    return this.rpcCall(getFlightInfo, $root.arrow.flight.protocol.FlightDescriptor, $root.arrow.flight.protocol.FlightInfo, request, callback);\n                }, \"name\", { value: \"GetFlightInfo\" });\n\n                /**\n                 * Calls GetFlightInfo.\n                 * @function getFlightInfo\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IFlightDescriptor} request FlightDescriptor message or plain object\n                 * @returns {Promise<arrow.flight.protocol.FlightInfo>} Promise\n                 * @variation 2\n                 */\n\n                /**\n                 * Callback as used by {@link arrow.flight.protocol.FlightService#pollFlightInfo}.\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @typedef PollFlightInfoCallback\n                 * @type {function}\n                 * @param {Error|null} error Error, if any\n                 * @param {arrow.flight.protocol.PollInfo} [response] PollInfo\n                 */\n\n                /**\n                 * Calls PollFlightInfo.\n                 * @function pollFlightInfo\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IFlightDescriptor} request FlightDescriptor message or plain object\n                 * @param {arrow.flight.protocol.FlightService.PollFlightInfoCallback} callback Node-style callback called with the error, if any, and PollInfo\n                 * @returns {undefined}\n                 * @variation 1\n                 */\n                Object.defineProperty(FlightService.prototype.pollFlightInfo = function pollFlightInfo(request, callback) {\n                    return this.rpcCall(pollFlightInfo, $root.arrow.flight.protocol.FlightDescriptor, $root.arrow.flight.protocol.PollInfo, request, callback);\n                }, \"name\", { value: \"PollFlightInfo\" });\n\n                /**\n                 * Calls PollFlightInfo.\n                 * @function pollFlightInfo\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IFlightDescriptor} request FlightDescriptor message or plain object\n                 * @returns {Promise<arrow.flight.protocol.PollInfo>} Promise\n                 * @variation 2\n                 */\n\n                /**\n                 * Callback as used by {@link arrow.flight.protocol.FlightService#getSchema}.\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @typedef GetSchemaCallback\n                 * @type {function}\n                 * @param {Error|null} error Error, if any\n                 * @param {arrow.flight.protocol.SchemaResult} [response] SchemaResult\n                 */\n\n                /**\n                 * Calls GetSchema.\n                 * @function getSchema\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IFlightDescriptor} request FlightDescriptor message or plain object\n                 * @param {arrow.flight.protocol.FlightService.GetSchemaCallback} callback Node-style callback called with the error, if any, and SchemaResult\n                 * @returns {undefined}\n                 * @variation 1\n                 */\n                Object.defineProperty(FlightService.prototype.getSchema = function getSchema(request, callback) {\n                    return this.rpcCall(getSchema, $root.arrow.flight.protocol.FlightDescriptor, $root.arrow.flight.protocol.SchemaResult, request, callback);\n                }, \"name\", { value: \"GetSchema\" });\n\n                /**\n                 * Calls GetSchema.\n                 * @function getSchema\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IFlightDescriptor} request FlightDescriptor message or plain object\n                 * @returns {Promise<arrow.flight.protocol.SchemaResult>} Promise\n                 * @variation 2\n                 */\n\n                /**\n                 * Callback as used by {@link arrow.flight.protocol.FlightService#doGet}.\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @typedef DoGetCallback\n                 * @type {function}\n                 * @param {Error|null} error Error, if any\n                 * @param {arrow.flight.protocol.FlightData} [response] FlightData\n                 */\n\n                /**\n                 * Calls DoGet.\n                 * @function doGet\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.ITicket} request Ticket message or plain object\n                 * @param {arrow.flight.protocol.FlightService.DoGetCallback} callback Node-style callback called with the error, if any, and FlightData\n                 * @returns {undefined}\n                 * @variation 1\n                 */\n                Object.defineProperty(FlightService.prototype.doGet = function doGet(request, callback) {\n                    return this.rpcCall(doGet, $root.arrow.flight.protocol.Ticket, $root.arrow.flight.protocol.FlightData, request, callback);\n                }, \"name\", { value: \"DoGet\" });\n\n                /**\n                 * Calls DoGet.\n                 * @function doGet\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.ITicket} request Ticket message or plain object\n                 * @returns {Promise<arrow.flight.protocol.FlightData>} Promise\n                 * @variation 2\n                 */\n\n                /**\n                 * Callback as used by {@link arrow.flight.protocol.FlightService#doPut}.\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @typedef DoPutCallback\n                 * @type {function}\n                 * @param {Error|null} error Error, if any\n                 * @param {arrow.flight.protocol.PutResult} [response] PutResult\n                 */\n\n                /**\n                 * Calls DoPut.\n                 * @function doPut\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IFlightData} request FlightData message or plain object\n                 * @param {arrow.flight.protocol.FlightService.DoPutCallback} callback Node-style callback called with the error, if any, and PutResult\n                 * @returns {undefined}\n                 * @variation 1\n                 */\n                Object.defineProperty(FlightService.prototype.doPut = function doPut(request, callback) {\n                    return this.rpcCall(doPut, $root.arrow.flight.protocol.FlightData, $root.arrow.flight.protocol.PutResult, request, callback);\n                }, \"name\", { value: \"DoPut\" });\n\n                /**\n                 * Calls DoPut.\n                 * @function doPut\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IFlightData} request FlightData message or plain object\n                 * @returns {Promise<arrow.flight.protocol.PutResult>} Promise\n                 * @variation 2\n                 */\n\n                /**\n                 * Callback as used by {@link arrow.flight.protocol.FlightService#doExchange}.\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @typedef DoExchangeCallback\n                 * @type {function}\n                 * @param {Error|null} error Error, if any\n                 * @param {arrow.flight.protocol.FlightData} [response] FlightData\n                 */\n\n                /**\n                 * Calls DoExchange.\n                 * @function doExchange\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IFlightData} request FlightData message or plain object\n                 * @param {arrow.flight.protocol.FlightService.DoExchangeCallback} callback Node-style callback called with the error, if any, and FlightData\n                 * @returns {undefined}\n                 * @variation 1\n                 */\n                Object.defineProperty(FlightService.prototype.doExchange = function doExchange(request, callback) {\n                    return this.rpcCall(doExchange, $root.arrow.flight.protocol.FlightData, $root.arrow.flight.protocol.FlightData, request, callback);\n                }, \"name\", { value: \"DoExchange\" });\n\n                /**\n                 * Calls DoExchange.\n                 * @function doExchange\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IFlightData} request FlightData message or plain object\n                 * @returns {Promise<arrow.flight.protocol.FlightData>} Promise\n                 * @variation 2\n                 */\n\n                /**\n                 * Callback as used by {@link arrow.flight.protocol.FlightService#doAction}.\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @typedef DoActionCallback\n                 * @type {function}\n                 * @param {Error|null} error Error, if any\n                 * @param {arrow.flight.protocol.Result} [response] Result\n                 */\n\n                /**\n                 * Calls DoAction.\n                 * @function doAction\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IAction} request Action message or plain object\n                 * @param {arrow.flight.protocol.FlightService.DoActionCallback} callback Node-style callback called with the error, if any, and Result\n                 * @returns {undefined}\n                 * @variation 1\n                 */\n                Object.defineProperty(FlightService.prototype.doAction = function doAction(request, callback) {\n                    return this.rpcCall(doAction, $root.arrow.flight.protocol.Action, $root.arrow.flight.protocol.Result, request, callback);\n                }, \"name\", { value: \"DoAction\" });\n\n                /**\n                 * Calls DoAction.\n                 * @function doAction\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IAction} request Action message or plain object\n                 * @returns {Promise<arrow.flight.protocol.Result>} Promise\n                 * @variation 2\n                 */\n\n                /**\n                 * Callback as used by {@link arrow.flight.protocol.FlightService#listActions}.\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @typedef ListActionsCallback\n                 * @type {function}\n                 * @param {Error|null} error Error, if any\n                 * @param {arrow.flight.protocol.ActionType} [response] ActionType\n                 */\n\n                /**\n                 * Calls ListActions.\n                 * @function listActions\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IEmpty} request Empty message or plain object\n                 * @param {arrow.flight.protocol.FlightService.ListActionsCallback} callback Node-style callback called with the error, if any, and ActionType\n                 * @returns {undefined}\n                 * @variation 1\n                 */\n                Object.defineProperty(FlightService.prototype.listActions = function listActions(request, callback) {\n                    return this.rpcCall(listActions, $root.arrow.flight.protocol.Empty, $root.arrow.flight.protocol.ActionType, request, callback);\n                }, \"name\", { value: \"ListActions\" });\n\n                /**\n                 * Calls ListActions.\n                 * @function listActions\n                 * @memberof arrow.flight.protocol.FlightService\n                 * @instance\n                 * @param {arrow.flight.protocol.IEmpty} request Empty message or plain object\n                 * @returns {Promise<arrow.flight.protocol.ActionType>} Promise\n                 * @variation 2\n                 */\n\n                return FlightService;\n            })();\n\n            protocol.HandshakeRequest = (function() {\n\n                /**\n                 * Properties of a HandshakeRequest.\n                 * @memberof arrow.flight.protocol\n                 * @interface IHandshakeRequest\n                 * @property {number|Long|null} [protocolVersion] HandshakeRequest protocolVersion\n                 * @property {Uint8Array|null} [payload] HandshakeRequest payload\n                 */\n\n                /**\n                 * Constructs a new HandshakeRequest.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a HandshakeRequest.\n                 * @implements IHandshakeRequest\n                 * @constructor\n                 * @param {arrow.flight.protocol.IHandshakeRequest=} [properties] Properties to set\n                 */\n                function HandshakeRequest(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                 * HandshakeRequest protocolVersion.\n                 * @member {number|Long} protocolVersion\n                 * @memberof arrow.flight.protocol.HandshakeRequest\n                 * @instance\n                 */\n                HandshakeRequest.prototype.protocolVersion = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n                /**\n                 * HandshakeRequest payload.\n                 * @member {Uint8Array} payload\n                 * @memberof arrow.flight.protocol.HandshakeRequest\n                 * @instance\n                 */\n                HandshakeRequest.prototype.payload = $util.newBuffer([]);\n\n                /**\n                 * Creates a new HandshakeRequest instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.HandshakeRequest\n                 * @static\n                 * @param {arrow.flight.protocol.IHandshakeRequest=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.HandshakeRequest} HandshakeRequest instance\n                 */\n                HandshakeRequest.create = function create(properties) {\n                    return new HandshakeRequest(properties);\n                };\n\n                /**\n                 * Encodes the specified HandshakeRequest message. Does not implicitly {@link arrow.flight.protocol.HandshakeRequest.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.HandshakeRequest\n                 * @static\n                 * @param {arrow.flight.protocol.IHandshakeRequest} message HandshakeRequest message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                HandshakeRequest.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.protocolVersion != null && Object.hasOwnProperty.call(message, \"protocolVersion\"))\n                        writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.protocolVersion);\n                    if (message.payload != null && Object.hasOwnProperty.call(message, \"payload\"))\n                        writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.payload);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified HandshakeRequest message, length delimited. Does not implicitly {@link arrow.flight.protocol.HandshakeRequest.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.HandshakeRequest\n                 * @static\n                 * @param {arrow.flight.protocol.IHandshakeRequest} message HandshakeRequest message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                HandshakeRequest.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a HandshakeRequest message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.HandshakeRequest\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 {arrow.flight.protocol.HandshakeRequest} HandshakeRequest\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                HandshakeRequest.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.arrow.flight.protocol.HandshakeRequest();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.protocolVersion = reader.uint64();\n                                break;\n                            }\n                        case 2: {\n                                message.payload = reader.bytes();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a HandshakeRequest message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.HandshakeRequest\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.HandshakeRequest} HandshakeRequest\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                HandshakeRequest.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 HandshakeRequest message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.HandshakeRequest\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                HandshakeRequest.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.protocolVersion != null && message.hasOwnProperty(\"protocolVersion\"))\n                        if (!$util.isInteger(message.protocolVersion) && !(message.protocolVersion && $util.isInteger(message.protocolVersion.low) && $util.isInteger(message.protocolVersion.high)))\n                            return \"protocolVersion: integer|Long expected\";\n                    if (message.payload != null && message.hasOwnProperty(\"payload\"))\n                        if (!(message.payload && typeof message.payload.length === \"number\" || $util.isString(message.payload)))\n                            return \"payload: buffer expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a HandshakeRequest message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.HandshakeRequest\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.HandshakeRequest} HandshakeRequest\n                 */\n                HandshakeRequest.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.HandshakeRequest)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.HandshakeRequest();\n                    if (object.protocolVersion != null)\n                        if ($util.Long)\n                            (message.protocolVersion = $util.Long.fromValue(object.protocolVersion)).unsigned = true;\n                        else if (typeof object.protocolVersion === \"string\")\n                            message.protocolVersion = parseInt(object.protocolVersion, 10);\n                        else if (typeof object.protocolVersion === \"number\")\n                            message.protocolVersion = object.protocolVersion;\n                        else if (typeof object.protocolVersion === \"object\")\n                            message.protocolVersion = new $util.LongBits(object.protocolVersion.low >>> 0, object.protocolVersion.high >>> 0).toNumber(true);\n                    if (object.payload != null)\n                        if (typeof object.payload === \"string\")\n                            $util.base64.decode(object.payload, message.payload = $util.newBuffer($util.base64.length(object.payload)), 0);\n                        else if (object.payload.length >= 0)\n                            message.payload = object.payload;\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a HandshakeRequest message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.HandshakeRequest\n                 * @static\n                 * @param {arrow.flight.protocol.HandshakeRequest} message HandshakeRequest\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                HandshakeRequest.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults) {\n                        if ($util.Long) {\n                            var long = new $util.Long(0, 0, true);\n                            object.protocolVersion = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n                        } else\n                            object.protocolVersion = options.longs === String ? \"0\" : 0;\n                        if (options.bytes === String)\n                            object.payload = \"\";\n                        else {\n                            object.payload = [];\n                            if (options.bytes !== Array)\n                                object.payload = $util.newBuffer(object.payload);\n                        }\n                    }\n                    if (message.protocolVersion != null && message.hasOwnProperty(\"protocolVersion\"))\n                        if (typeof message.protocolVersion === \"number\")\n                            object.protocolVersion = options.longs === String ? String(message.protocolVersion) : message.protocolVersion;\n                        else\n                            object.protocolVersion = options.longs === String ? $util.Long.prototype.toString.call(message.protocolVersion) : options.longs === Number ? new $util.LongBits(message.protocolVersion.low >>> 0, message.protocolVersion.high >>> 0).toNumber(true) : message.protocolVersion;\n                    if (message.payload != null && message.hasOwnProperty(\"payload\"))\n                        object.payload = options.bytes === String ? $util.base64.encode(message.payload, 0, message.payload.length) : options.bytes === Array ? Array.prototype.slice.call(message.payload) : message.payload;\n                    return object;\n                };\n\n                /**\n                 * Converts this HandshakeRequest to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.HandshakeRequest\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                HandshakeRequest.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for HandshakeRequest\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.HandshakeRequest\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                HandshakeRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.HandshakeRequest\";\n                };\n\n                return HandshakeRequest;\n            })();\n\n            protocol.HandshakeResponse = (function() {\n\n                /**\n                 * Properties of a HandshakeResponse.\n                 * @memberof arrow.flight.protocol\n                 * @interface IHandshakeResponse\n                 * @property {number|Long|null} [protocolVersion] HandshakeResponse protocolVersion\n                 * @property {Uint8Array|null} [payload] HandshakeResponse payload\n                 */\n\n                /**\n                 * Constructs a new HandshakeResponse.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a HandshakeResponse.\n                 * @implements IHandshakeResponse\n                 * @constructor\n                 * @param {arrow.flight.protocol.IHandshakeResponse=} [properties] Properties to set\n                 */\n                function HandshakeResponse(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                 * HandshakeResponse protocolVersion.\n                 * @member {number|Long} protocolVersion\n                 * @memberof arrow.flight.protocol.HandshakeResponse\n                 * @instance\n                 */\n                HandshakeResponse.prototype.protocolVersion = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n                /**\n                 * HandshakeResponse payload.\n                 * @member {Uint8Array} payload\n                 * @memberof arrow.flight.protocol.HandshakeResponse\n                 * @instance\n                 */\n                HandshakeResponse.prototype.payload = $util.newBuffer([]);\n\n                /**\n                 * Creates a new HandshakeResponse instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.HandshakeResponse\n                 * @static\n                 * @param {arrow.flight.protocol.IHandshakeResponse=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.HandshakeResponse} HandshakeResponse instance\n                 */\n                HandshakeResponse.create = function create(properties) {\n                    return new HandshakeResponse(properties);\n                };\n\n                /**\n                 * Encodes the specified HandshakeResponse message. Does not implicitly {@link arrow.flight.protocol.HandshakeResponse.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.HandshakeResponse\n                 * @static\n                 * @param {arrow.flight.protocol.IHandshakeResponse} message HandshakeResponse message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                HandshakeResponse.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.protocolVersion != null && Object.hasOwnProperty.call(message, \"protocolVersion\"))\n                        writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.protocolVersion);\n                    if (message.payload != null && Object.hasOwnProperty.call(message, \"payload\"))\n                        writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.payload);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified HandshakeResponse message, length delimited. Does not implicitly {@link arrow.flight.protocol.HandshakeResponse.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.HandshakeResponse\n                 * @static\n                 * @param {arrow.flight.protocol.IHandshakeResponse} message HandshakeResponse message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                HandshakeResponse.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a HandshakeResponse message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.HandshakeResponse\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 {arrow.flight.protocol.HandshakeResponse} HandshakeResponse\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                HandshakeResponse.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.arrow.flight.protocol.HandshakeResponse();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.protocolVersion = reader.uint64();\n                                break;\n                            }\n                        case 2: {\n                                message.payload = reader.bytes();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a HandshakeResponse message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.HandshakeResponse\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.HandshakeResponse} HandshakeResponse\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                HandshakeResponse.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 HandshakeResponse message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.HandshakeResponse\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                HandshakeResponse.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.protocolVersion != null && message.hasOwnProperty(\"protocolVersion\"))\n                        if (!$util.isInteger(message.protocolVersion) && !(message.protocolVersion && $util.isInteger(message.protocolVersion.low) && $util.isInteger(message.protocolVersion.high)))\n                            return \"protocolVersion: integer|Long expected\";\n                    if (message.payload != null && message.hasOwnProperty(\"payload\"))\n                        if (!(message.payload && typeof message.payload.length === \"number\" || $util.isString(message.payload)))\n                            return \"payload: buffer expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a HandshakeResponse message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.HandshakeResponse\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.HandshakeResponse} HandshakeResponse\n                 */\n                HandshakeResponse.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.HandshakeResponse)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.HandshakeResponse();\n                    if (object.protocolVersion != null)\n                        if ($util.Long)\n                            (message.protocolVersion = $util.Long.fromValue(object.protocolVersion)).unsigned = true;\n                        else if (typeof object.protocolVersion === \"string\")\n                            message.protocolVersion = parseInt(object.protocolVersion, 10);\n                        else if (typeof object.protocolVersion === \"number\")\n                            message.protocolVersion = object.protocolVersion;\n                        else if (typeof object.protocolVersion === \"object\")\n                            message.protocolVersion = new $util.LongBits(object.protocolVersion.low >>> 0, object.protocolVersion.high >>> 0).toNumber(true);\n                    if (object.payload != null)\n                        if (typeof object.payload === \"string\")\n                            $util.base64.decode(object.payload, message.payload = $util.newBuffer($util.base64.length(object.payload)), 0);\n                        else if (object.payload.length >= 0)\n                            message.payload = object.payload;\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a HandshakeResponse message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.HandshakeResponse\n                 * @static\n                 * @param {arrow.flight.protocol.HandshakeResponse} message HandshakeResponse\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                HandshakeResponse.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults) {\n                        if ($util.Long) {\n                            var long = new $util.Long(0, 0, true);\n                            object.protocolVersion = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n                        } else\n                            object.protocolVersion = options.longs === String ? \"0\" : 0;\n                        if (options.bytes === String)\n                            object.payload = \"\";\n                        else {\n                            object.payload = [];\n                            if (options.bytes !== Array)\n                                object.payload = $util.newBuffer(object.payload);\n                        }\n                    }\n                    if (message.protocolVersion != null && message.hasOwnProperty(\"protocolVersion\"))\n                        if (typeof message.protocolVersion === \"number\")\n                            object.protocolVersion = options.longs === String ? String(message.protocolVersion) : message.protocolVersion;\n                        else\n                            object.protocolVersion = options.longs === String ? $util.Long.prototype.toString.call(message.protocolVersion) : options.longs === Number ? new $util.LongBits(message.protocolVersion.low >>> 0, message.protocolVersion.high >>> 0).toNumber(true) : message.protocolVersion;\n                    if (message.payload != null && message.hasOwnProperty(\"payload\"))\n                        object.payload = options.bytes === String ? $util.base64.encode(message.payload, 0, message.payload.length) : options.bytes === Array ? Array.prototype.slice.call(message.payload) : message.payload;\n                    return object;\n                };\n\n                /**\n                 * Converts this HandshakeResponse to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.HandshakeResponse\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                HandshakeResponse.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for HandshakeResponse\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.HandshakeResponse\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                HandshakeResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.HandshakeResponse\";\n                };\n\n                return HandshakeResponse;\n            })();\n\n            protocol.BasicAuth = (function() {\n\n                /**\n                 * Properties of a BasicAuth.\n                 * @memberof arrow.flight.protocol\n                 * @interface IBasicAuth\n                 * @property {string|null} [username] BasicAuth username\n                 * @property {string|null} [password] BasicAuth password\n                 */\n\n                /**\n                 * Constructs a new BasicAuth.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a BasicAuth.\n                 * @implements IBasicAuth\n                 * @constructor\n                 * @param {arrow.flight.protocol.IBasicAuth=} [properties] Properties to set\n                 */\n                function BasicAuth(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                 * BasicAuth username.\n                 * @member {string} username\n                 * @memberof arrow.flight.protocol.BasicAuth\n                 * @instance\n                 */\n                BasicAuth.prototype.username = \"\";\n\n                /**\n                 * BasicAuth password.\n                 * @member {string} password\n                 * @memberof arrow.flight.protocol.BasicAuth\n                 * @instance\n                 */\n                BasicAuth.prototype.password = \"\";\n\n                /**\n                 * Creates a new BasicAuth instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.BasicAuth\n                 * @static\n                 * @param {arrow.flight.protocol.IBasicAuth=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.BasicAuth} BasicAuth instance\n                 */\n                BasicAuth.create = function create(properties) {\n                    return new BasicAuth(properties);\n                };\n\n                /**\n                 * Encodes the specified BasicAuth message. Does not implicitly {@link arrow.flight.protocol.BasicAuth.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.BasicAuth\n                 * @static\n                 * @param {arrow.flight.protocol.IBasicAuth} message BasicAuth message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                BasicAuth.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.username != null && Object.hasOwnProperty.call(message, \"username\"))\n                        writer.uint32(/* id 2, wireType 2 =*/18).string(message.username);\n                    if (message.password != null && Object.hasOwnProperty.call(message, \"password\"))\n                        writer.uint32(/* id 3, wireType 2 =*/26).string(message.password);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified BasicAuth message, length delimited. Does not implicitly {@link arrow.flight.protocol.BasicAuth.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.BasicAuth\n                 * @static\n                 * @param {arrow.flight.protocol.IBasicAuth} message BasicAuth message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                BasicAuth.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a BasicAuth message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.BasicAuth\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 {arrow.flight.protocol.BasicAuth} BasicAuth\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                BasicAuth.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.arrow.flight.protocol.BasicAuth();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 2: {\n                                message.username = reader.string();\n                                break;\n                            }\n                        case 3: {\n                                message.password = reader.string();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a BasicAuth message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.BasicAuth\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.BasicAuth} BasicAuth\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                BasicAuth.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 BasicAuth message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.BasicAuth\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                BasicAuth.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.username != null && message.hasOwnProperty(\"username\"))\n                        if (!$util.isString(message.username))\n                            return \"username: string expected\";\n                    if (message.password != null && message.hasOwnProperty(\"password\"))\n                        if (!$util.isString(message.password))\n                            return \"password: string expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a BasicAuth message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.BasicAuth\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.BasicAuth} BasicAuth\n                 */\n                BasicAuth.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.BasicAuth)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.BasicAuth();\n                    if (object.username != null)\n                        message.username = String(object.username);\n                    if (object.password != null)\n                        message.password = String(object.password);\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a BasicAuth message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.BasicAuth\n                 * @static\n                 * @param {arrow.flight.protocol.BasicAuth} message BasicAuth\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                BasicAuth.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults) {\n                        object.username = \"\";\n                        object.password = \"\";\n                    }\n                    if (message.username != null && message.hasOwnProperty(\"username\"))\n                        object.username = message.username;\n                    if (message.password != null && message.hasOwnProperty(\"password\"))\n                        object.password = message.password;\n                    return object;\n                };\n\n                /**\n                 * Converts this BasicAuth to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.BasicAuth\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                BasicAuth.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for BasicAuth\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.BasicAuth\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                BasicAuth.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.BasicAuth\";\n                };\n\n                return BasicAuth;\n            })();\n\n            protocol.Empty = (function() {\n\n                /**\n                 * Properties of an Empty.\n                 * @memberof arrow.flight.protocol\n                 * @interface IEmpty\n                 */\n\n                /**\n                 * Constructs a new Empty.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents an Empty.\n                 * @implements IEmpty\n                 * @constructor\n                 * @param {arrow.flight.protocol.IEmpty=} [properties] Properties to set\n                 */\n                function Empty(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                 * Creates a new Empty instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.Empty\n                 * @static\n                 * @param {arrow.flight.protocol.IEmpty=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.Empty} Empty instance\n                 */\n                Empty.create = function create(properties) {\n                    return new Empty(properties);\n                };\n\n                /**\n                 * Encodes the specified Empty message. Does not implicitly {@link arrow.flight.protocol.Empty.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.Empty\n                 * @static\n                 * @param {arrow.flight.protocol.IEmpty} message Empty message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Empty.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified Empty message, length delimited. Does not implicitly {@link arrow.flight.protocol.Empty.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.Empty\n                 * @static\n                 * @param {arrow.flight.protocol.IEmpty} message Empty message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Empty.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes an Empty message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.Empty\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 {arrow.flight.protocol.Empty} Empty\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                Empty.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.arrow.flight.protocol.Empty();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes an Empty message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.Empty\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.Empty} Empty\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                Empty.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 Empty message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.Empty\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                Empty.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates an Empty message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.Empty\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.Empty} Empty\n                 */\n                Empty.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.Empty)\n                        return object;\n                    return new $root.arrow.flight.protocol.Empty();\n                };\n\n                /**\n                 * Creates a plain object from an Empty message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.Empty\n                 * @static\n                 * @param {arrow.flight.protocol.Empty} message Empty\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                Empty.toObject = function toObject() {\n                    return {};\n                };\n\n                /**\n                 * Converts this Empty to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.Empty\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                Empty.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for Empty\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.Empty\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                Empty.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.Empty\";\n                };\n\n                return Empty;\n            })();\n\n            protocol.ActionType = (function() {\n\n                /**\n                 * Properties of an ActionType.\n                 * @memberof arrow.flight.protocol\n                 * @interface IActionType\n                 * @property {string|null} [type] ActionType type\n                 * @property {string|null} [description] ActionType description\n                 */\n\n                /**\n                 * Constructs a new ActionType.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents an ActionType.\n                 * @implements IActionType\n                 * @constructor\n                 * @param {arrow.flight.protocol.IActionType=} [properties] Properties to set\n                 */\n                function ActionType(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                 * ActionType type.\n                 * @member {string} type\n                 * @memberof arrow.flight.protocol.ActionType\n                 * @instance\n                 */\n                ActionType.prototype.type = \"\";\n\n                /**\n                 * ActionType description.\n                 * @member {string} description\n                 * @memberof arrow.flight.protocol.ActionType\n                 * @instance\n                 */\n                ActionType.prototype.description = \"\";\n\n                /**\n                 * Creates a new ActionType instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.ActionType\n                 * @static\n                 * @param {arrow.flight.protocol.IActionType=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.ActionType} ActionType instance\n                 */\n                ActionType.create = function create(properties) {\n                    return new ActionType(properties);\n                };\n\n                /**\n                 * Encodes the specified ActionType message. Does not implicitly {@link arrow.flight.protocol.ActionType.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.ActionType\n                 * @static\n                 * @param {arrow.flight.protocol.IActionType} message ActionType message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                ActionType.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.type != null && Object.hasOwnProperty.call(message, \"type\"))\n                        writer.uint32(/* id 1, wireType 2 =*/10).string(message.type);\n                    if (message.description != null && Object.hasOwnProperty.call(message, \"description\"))\n                        writer.uint32(/* id 2, wireType 2 =*/18).string(message.description);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified ActionType message, length delimited. Does not implicitly {@link arrow.flight.protocol.ActionType.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.ActionType\n                 * @static\n                 * @param {arrow.flight.protocol.IActionType} message ActionType message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                ActionType.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes an ActionType message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.ActionType\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 {arrow.flight.protocol.ActionType} ActionType\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                ActionType.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.arrow.flight.protocol.ActionType();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.type = reader.string();\n                                break;\n                            }\n                        case 2: {\n                                message.description = reader.string();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes an ActionType message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.ActionType\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.ActionType} ActionType\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                ActionType.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 ActionType message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.ActionType\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                ActionType.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.type != null && message.hasOwnProperty(\"type\"))\n                        if (!$util.isString(message.type))\n                            return \"type: string expected\";\n                    if (message.description != null && message.hasOwnProperty(\"description\"))\n                        if (!$util.isString(message.description))\n                            return \"description: string expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates an ActionType message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.ActionType\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.ActionType} ActionType\n                 */\n                ActionType.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.ActionType)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.ActionType();\n                    if (object.type != null)\n                        message.type = String(object.type);\n                    if (object.description != null)\n                        message.description = String(object.description);\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from an ActionType message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.ActionType\n                 * @static\n                 * @param {arrow.flight.protocol.ActionType} message ActionType\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                ActionType.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults) {\n                        object.type = \"\";\n                        object.description = \"\";\n                    }\n                    if (message.type != null && message.hasOwnProperty(\"type\"))\n                        object.type = message.type;\n                    if (message.description != null && message.hasOwnProperty(\"description\"))\n                        object.description = message.description;\n                    return object;\n                };\n\n                /**\n                 * Converts this ActionType to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.ActionType\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                ActionType.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for ActionType\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.ActionType\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                ActionType.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.ActionType\";\n                };\n\n                return ActionType;\n            })();\n\n            protocol.Criteria = (function() {\n\n                /**\n                 * Properties of a Criteria.\n                 * @memberof arrow.flight.protocol\n                 * @interface ICriteria\n                 * @property {Uint8Array|null} [expression] Criteria expression\n                 */\n\n                /**\n                 * Constructs a new Criteria.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a Criteria.\n                 * @implements ICriteria\n                 * @constructor\n                 * @param {arrow.flight.protocol.ICriteria=} [properties] Properties to set\n                 */\n                function Criteria(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                 * Criteria expression.\n                 * @member {Uint8Array} expression\n                 * @memberof arrow.flight.protocol.Criteria\n                 * @instance\n                 */\n                Criteria.prototype.expression = $util.newBuffer([]);\n\n                /**\n                 * Creates a new Criteria instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.Criteria\n                 * @static\n                 * @param {arrow.flight.protocol.ICriteria=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.Criteria} Criteria instance\n                 */\n                Criteria.create = function create(properties) {\n                    return new Criteria(properties);\n                };\n\n                /**\n                 * Encodes the specified Criteria message. Does not implicitly {@link arrow.flight.protocol.Criteria.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.Criteria\n                 * @static\n                 * @param {arrow.flight.protocol.ICriteria} message Criteria message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Criteria.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.expression != null && Object.hasOwnProperty.call(message, \"expression\"))\n                        writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.expression);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified Criteria message, length delimited. Does not implicitly {@link arrow.flight.protocol.Criteria.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.Criteria\n                 * @static\n                 * @param {arrow.flight.protocol.ICriteria} message Criteria message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Criteria.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a Criteria message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.Criteria\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 {arrow.flight.protocol.Criteria} Criteria\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                Criteria.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.arrow.flight.protocol.Criteria();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.expression = reader.bytes();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a Criteria message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.Criteria\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.Criteria} Criteria\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                Criteria.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 Criteria message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.Criteria\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                Criteria.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.expression != null && message.hasOwnProperty(\"expression\"))\n                        if (!(message.expression && typeof message.expression.length === \"number\" || $util.isString(message.expression)))\n                            return \"expression: buffer expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a Criteria message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.Criteria\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.Criteria} Criteria\n                 */\n                Criteria.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.Criteria)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.Criteria();\n                    if (object.expression != null)\n                        if (typeof object.expression === \"string\")\n                            $util.base64.decode(object.expression, message.expression = $util.newBuffer($util.base64.length(object.expression)), 0);\n                        else if (object.expression.length >= 0)\n                            message.expression = object.expression;\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a Criteria message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.Criteria\n                 * @static\n                 * @param {arrow.flight.protocol.Criteria} message Criteria\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                Criteria.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults)\n                        if (options.bytes === String)\n                            object.expression = \"\";\n                        else {\n                            object.expression = [];\n                            if (options.bytes !== Array)\n                                object.expression = $util.newBuffer(object.expression);\n                        }\n                    if (message.expression != null && message.hasOwnProperty(\"expression\"))\n                        object.expression = options.bytes === String ? $util.base64.encode(message.expression, 0, message.expression.length) : options.bytes === Array ? Array.prototype.slice.call(message.expression) : message.expression;\n                    return object;\n                };\n\n                /**\n                 * Converts this Criteria to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.Criteria\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                Criteria.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for Criteria\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.Criteria\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                Criteria.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.Criteria\";\n                };\n\n                return Criteria;\n            })();\n\n            protocol.Action = (function() {\n\n                /**\n                 * Properties of an Action.\n                 * @memberof arrow.flight.protocol\n                 * @interface IAction\n                 * @property {string|null} [type] Action type\n                 * @property {Uint8Array|null} [body] Action body\n                 */\n\n                /**\n                 * Constructs a new Action.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents an Action.\n                 * @implements IAction\n                 * @constructor\n                 * @param {arrow.flight.protocol.IAction=} [properties] Properties to set\n                 */\n                function Action(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                 * Action type.\n                 * @member {string} type\n                 * @memberof arrow.flight.protocol.Action\n                 * @instance\n                 */\n                Action.prototype.type = \"\";\n\n                /**\n                 * Action body.\n                 * @member {Uint8Array} body\n                 * @memberof arrow.flight.protocol.Action\n                 * @instance\n                 */\n                Action.prototype.body = $util.newBuffer([]);\n\n                /**\n                 * Creates a new Action instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.Action\n                 * @static\n                 * @param {arrow.flight.protocol.IAction=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.Action} Action instance\n                 */\n                Action.create = function create(properties) {\n                    return new Action(properties);\n                };\n\n                /**\n                 * Encodes the specified Action message. Does not implicitly {@link arrow.flight.protocol.Action.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.Action\n                 * @static\n                 * @param {arrow.flight.protocol.IAction} message Action message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Action.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.type != null && Object.hasOwnProperty.call(message, \"type\"))\n                        writer.uint32(/* id 1, wireType 2 =*/10).string(message.type);\n                    if (message.body != null && Object.hasOwnProperty.call(message, \"body\"))\n                        writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.body);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified Action message, length delimited. Does not implicitly {@link arrow.flight.protocol.Action.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.Action\n                 * @static\n                 * @param {arrow.flight.protocol.IAction} message Action message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Action.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes an Action message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.Action\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 {arrow.flight.protocol.Action} Action\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                Action.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.arrow.flight.protocol.Action();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.type = reader.string();\n                                break;\n                            }\n                        case 2: {\n                                message.body = reader.bytes();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes an Action message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.Action\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.Action} Action\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                Action.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 Action message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.Action\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                Action.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.type != null && message.hasOwnProperty(\"type\"))\n                        if (!$util.isString(message.type))\n                            return \"type: string expected\";\n                    if (message.body != null && message.hasOwnProperty(\"body\"))\n                        if (!(message.body && typeof message.body.length === \"number\" || $util.isString(message.body)))\n                            return \"body: buffer expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates an Action message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.Action\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.Action} Action\n                 */\n                Action.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.Action)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.Action();\n                    if (object.type != null)\n                        message.type = String(object.type);\n                    if (object.body != null)\n                        if (typeof object.body === \"string\")\n                            $util.base64.decode(object.body, message.body = $util.newBuffer($util.base64.length(object.body)), 0);\n                        else if (object.body.length >= 0)\n                            message.body = object.body;\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from an Action message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.Action\n                 * @static\n                 * @param {arrow.flight.protocol.Action} message Action\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                Action.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults) {\n                        object.type = \"\";\n                        if (options.bytes === String)\n                            object.body = \"\";\n                        else {\n                            object.body = [];\n                            if (options.bytes !== Array)\n                                object.body = $util.newBuffer(object.body);\n                        }\n                    }\n                    if (message.type != null && message.hasOwnProperty(\"type\"))\n                        object.type = message.type;\n                    if (message.body != null && message.hasOwnProperty(\"body\"))\n                        object.body = options.bytes === String ? $util.base64.encode(message.body, 0, message.body.length) : options.bytes === Array ? Array.prototype.slice.call(message.body) : message.body;\n                    return object;\n                };\n\n                /**\n                 * Converts this Action to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.Action\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                Action.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for Action\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.Action\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                Action.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.Action\";\n                };\n\n                return Action;\n            })();\n\n            protocol.Result = (function() {\n\n                /**\n                 * Properties of a Result.\n                 * @memberof arrow.flight.protocol\n                 * @interface IResult\n                 * @property {Uint8Array|null} [body] Result body\n                 */\n\n                /**\n                 * Constructs a new Result.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a Result.\n                 * @implements IResult\n                 * @constructor\n                 * @param {arrow.flight.protocol.IResult=} [properties] Properties to set\n                 */\n                function Result(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                 * Result body.\n                 * @member {Uint8Array} body\n                 * @memberof arrow.flight.protocol.Result\n                 * @instance\n                 */\n                Result.prototype.body = $util.newBuffer([]);\n\n                /**\n                 * Creates a new Result instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.Result\n                 * @static\n                 * @param {arrow.flight.protocol.IResult=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.Result} Result instance\n                 */\n                Result.create = function create(properties) {\n                    return new Result(properties);\n                };\n\n                /**\n                 * Encodes the specified Result message. Does not implicitly {@link arrow.flight.protocol.Result.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.Result\n                 * @static\n                 * @param {arrow.flight.protocol.IResult} message Result message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Result.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.body != null && Object.hasOwnProperty.call(message, \"body\"))\n                        writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.body);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified Result message, length delimited. Does not implicitly {@link arrow.flight.protocol.Result.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.Result\n                 * @static\n                 * @param {arrow.flight.protocol.IResult} message Result message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Result.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a Result message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.Result\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 {arrow.flight.protocol.Result} Result\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                Result.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.arrow.flight.protocol.Result();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.body = reader.bytes();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a Result message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.Result\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.Result} Result\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                Result.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 Result message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.Result\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                Result.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.body != null && message.hasOwnProperty(\"body\"))\n                        if (!(message.body && typeof message.body.length === \"number\" || $util.isString(message.body)))\n                            return \"body: buffer expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a Result message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.Result\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.Result} Result\n                 */\n                Result.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.Result)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.Result();\n                    if (object.body != null)\n                        if (typeof object.body === \"string\")\n                            $util.base64.decode(object.body, message.body = $util.newBuffer($util.base64.length(object.body)), 0);\n                        else if (object.body.length >= 0)\n                            message.body = object.body;\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a Result message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.Result\n                 * @static\n                 * @param {arrow.flight.protocol.Result} message Result\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                Result.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults)\n                        if (options.bytes === String)\n                            object.body = \"\";\n                        else {\n                            object.body = [];\n                            if (options.bytes !== Array)\n                                object.body = $util.newBuffer(object.body);\n                        }\n                    if (message.body != null && message.hasOwnProperty(\"body\"))\n                        object.body = options.bytes === String ? $util.base64.encode(message.body, 0, message.body.length) : options.bytes === Array ? Array.prototype.slice.call(message.body) : message.body;\n                    return object;\n                };\n\n                /**\n                 * Converts this Result to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.Result\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                Result.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for Result\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.Result\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                Result.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.Result\";\n                };\n\n                return Result;\n            })();\n\n            protocol.SchemaResult = (function() {\n\n                /**\n                 * Properties of a SchemaResult.\n                 * @memberof arrow.flight.protocol\n                 * @interface ISchemaResult\n                 * @property {Uint8Array|null} [schema] SchemaResult schema\n                 */\n\n                /**\n                 * Constructs a new SchemaResult.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a SchemaResult.\n                 * @implements ISchemaResult\n                 * @constructor\n                 * @param {arrow.flight.protocol.ISchemaResult=} [properties] Properties to set\n                 */\n                function SchemaResult(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                 * SchemaResult schema.\n                 * @member {Uint8Array} schema\n                 * @memberof arrow.flight.protocol.SchemaResult\n                 * @instance\n                 */\n                SchemaResult.prototype.schema = $util.newBuffer([]);\n\n                /**\n                 * Creates a new SchemaResult instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.SchemaResult\n                 * @static\n                 * @param {arrow.flight.protocol.ISchemaResult=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.SchemaResult} SchemaResult instance\n                 */\n                SchemaResult.create = function create(properties) {\n                    return new SchemaResult(properties);\n                };\n\n                /**\n                 * Encodes the specified SchemaResult message. Does not implicitly {@link arrow.flight.protocol.SchemaResult.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.SchemaResult\n                 * @static\n                 * @param {arrow.flight.protocol.ISchemaResult} message SchemaResult message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                SchemaResult.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.schema != null && Object.hasOwnProperty.call(message, \"schema\"))\n                        writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.schema);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified SchemaResult message, length delimited. Does not implicitly {@link arrow.flight.protocol.SchemaResult.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.SchemaResult\n                 * @static\n                 * @param {arrow.flight.protocol.ISchemaResult} message SchemaResult message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                SchemaResult.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a SchemaResult message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.SchemaResult\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 {arrow.flight.protocol.SchemaResult} SchemaResult\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                SchemaResult.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.arrow.flight.protocol.SchemaResult();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.schema = reader.bytes();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a SchemaResult message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.SchemaResult\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.SchemaResult} SchemaResult\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                SchemaResult.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 SchemaResult message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.SchemaResult\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                SchemaResult.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.schema != null && message.hasOwnProperty(\"schema\"))\n                        if (!(message.schema && typeof message.schema.length === \"number\" || $util.isString(message.schema)))\n                            return \"schema: buffer expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a SchemaResult message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.SchemaResult\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.SchemaResult} SchemaResult\n                 */\n                SchemaResult.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.SchemaResult)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.SchemaResult();\n                    if (object.schema != null)\n                        if (typeof object.schema === \"string\")\n                            $util.base64.decode(object.schema, message.schema = $util.newBuffer($util.base64.length(object.schema)), 0);\n                        else if (object.schema.length >= 0)\n                            message.schema = object.schema;\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a SchemaResult message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.SchemaResult\n                 * @static\n                 * @param {arrow.flight.protocol.SchemaResult} message SchemaResult\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                SchemaResult.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults)\n                        if (options.bytes === String)\n                            object.schema = \"\";\n                        else {\n                            object.schema = [];\n                            if (options.bytes !== Array)\n                                object.schema = $util.newBuffer(object.schema);\n                        }\n                    if (message.schema != null && message.hasOwnProperty(\"schema\"))\n                        object.schema = options.bytes === String ? $util.base64.encode(message.schema, 0, message.schema.length) : options.bytes === Array ? Array.prototype.slice.call(message.schema) : message.schema;\n                    return object;\n                };\n\n                /**\n                 * Converts this SchemaResult to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.SchemaResult\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                SchemaResult.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for SchemaResult\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.SchemaResult\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                SchemaResult.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.SchemaResult\";\n                };\n\n                return SchemaResult;\n            })();\n\n            protocol.FlightDescriptor = (function() {\n\n                /**\n                 * Properties of a FlightDescriptor.\n                 * @memberof arrow.flight.protocol\n                 * @interface IFlightDescriptor\n                 * @property {arrow.flight.protocol.FlightDescriptor.DescriptorType|null} [type] FlightDescriptor type\n                 * @property {Uint8Array|null} [cmd] FlightDescriptor cmd\n                 * @property {Array.<string>|null} [path] FlightDescriptor path\n                 */\n\n                /**\n                 * Constructs a new FlightDescriptor.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a FlightDescriptor.\n                 * @implements IFlightDescriptor\n                 * @constructor\n                 * @param {arrow.flight.protocol.IFlightDescriptor=} [properties] Properties to set\n                 */\n                function FlightDescriptor(properties) {\n                    this.path = [];\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                 * FlightDescriptor type.\n                 * @member {arrow.flight.protocol.FlightDescriptor.DescriptorType} type\n                 * @memberof arrow.flight.protocol.FlightDescriptor\n                 * @instance\n                 */\n                FlightDescriptor.prototype.type = 0;\n\n                /**\n                 * FlightDescriptor cmd.\n                 * @member {Uint8Array} cmd\n                 * @memberof arrow.flight.protocol.FlightDescriptor\n                 * @instance\n                 */\n                FlightDescriptor.prototype.cmd = $util.newBuffer([]);\n\n                /**\n                 * FlightDescriptor path.\n                 * @member {Array.<string>} path\n                 * @memberof arrow.flight.protocol.FlightDescriptor\n                 * @instance\n                 */\n                FlightDescriptor.prototype.path = $util.emptyArray;\n\n                /**\n                 * Creates a new FlightDescriptor instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.FlightDescriptor\n                 * @static\n                 * @param {arrow.flight.protocol.IFlightDescriptor=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.FlightDescriptor} FlightDescriptor instance\n                 */\n                FlightDescriptor.create = function create(properties) {\n                    return new FlightDescriptor(properties);\n                };\n\n                /**\n                 * Encodes the specified FlightDescriptor message. Does not implicitly {@link arrow.flight.protocol.FlightDescriptor.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.FlightDescriptor\n                 * @static\n                 * @param {arrow.flight.protocol.IFlightDescriptor} message FlightDescriptor message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                FlightDescriptor.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.type != null && Object.hasOwnProperty.call(message, \"type\"))\n                        writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type);\n                    if (message.cmd != null && Object.hasOwnProperty.call(message, \"cmd\"))\n                        writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.cmd);\n                    if (message.path != null && message.path.length)\n                        for (var i = 0; i < message.path.length; ++i)\n                            writer.uint32(/* id 3, wireType 2 =*/26).string(message.path[i]);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified FlightDescriptor message, length delimited. Does not implicitly {@link arrow.flight.protocol.FlightDescriptor.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.FlightDescriptor\n                 * @static\n                 * @param {arrow.flight.protocol.IFlightDescriptor} message FlightDescriptor message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                FlightDescriptor.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a FlightDescriptor message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.FlightDescriptor\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 {arrow.flight.protocol.FlightDescriptor} FlightDescriptor\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                FlightDescriptor.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.arrow.flight.protocol.FlightDescriptor();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.type = reader.int32();\n                                break;\n                            }\n                        case 2: {\n                                message.cmd = reader.bytes();\n                                break;\n                            }\n                        case 3: {\n                                if (!(message.path && message.path.length))\n                                    message.path = [];\n                                message.path.push(reader.string());\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a FlightDescriptor message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.FlightDescriptor\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.FlightDescriptor} FlightDescriptor\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                FlightDescriptor.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 FlightDescriptor message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.FlightDescriptor\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                FlightDescriptor.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.type != null && message.hasOwnProperty(\"type\"))\n                        switch (message.type) {\n                        default:\n                            return \"type: enum value expected\";\n                        case 0:\n                        case 1:\n                        case 2:\n                            break;\n                        }\n                    if (message.cmd != null && message.hasOwnProperty(\"cmd\"))\n                        if (!(message.cmd && typeof message.cmd.length === \"number\" || $util.isString(message.cmd)))\n                            return \"cmd: buffer expected\";\n                    if (message.path != null && message.hasOwnProperty(\"path\")) {\n                        if (!Array.isArray(message.path))\n                            return \"path: array expected\";\n                        for (var i = 0; i < message.path.length; ++i)\n                            if (!$util.isString(message.path[i]))\n                                return \"path: string[] expected\";\n                    }\n                    return null;\n                };\n\n                /**\n                 * Creates a FlightDescriptor message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.FlightDescriptor\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.FlightDescriptor} FlightDescriptor\n                 */\n                FlightDescriptor.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.FlightDescriptor)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.FlightDescriptor();\n                    switch (object.type) {\n                    default:\n                        if (typeof object.type === \"number\") {\n                            message.type = object.type;\n                            break;\n                        }\n                        break;\n                    case \"UNKNOWN\":\n                    case 0:\n                        message.type = 0;\n                        break;\n                    case \"PATH\":\n                    case 1:\n                        message.type = 1;\n                        break;\n                    case \"CMD\":\n                    case 2:\n                        message.type = 2;\n                        break;\n                    }\n                    if (object.cmd != null)\n                        if (typeof object.cmd === \"string\")\n                            $util.base64.decode(object.cmd, message.cmd = $util.newBuffer($util.base64.length(object.cmd)), 0);\n                        else if (object.cmd.length >= 0)\n                            message.cmd = object.cmd;\n                    if (object.path) {\n                        if (!Array.isArray(object.path))\n                            throw TypeError(\".arrow.flight.protocol.FlightDescriptor.path: array expected\");\n                        message.path = [];\n                        for (var i = 0; i < object.path.length; ++i)\n                            message.path[i] = String(object.path[i]);\n                    }\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a FlightDescriptor message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.FlightDescriptor\n                 * @static\n                 * @param {arrow.flight.protocol.FlightDescriptor} message FlightDescriptor\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                FlightDescriptor.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.arrays || options.defaults)\n                        object.path = [];\n                    if (options.defaults) {\n                        object.type = options.enums === String ? \"UNKNOWN\" : 0;\n                        if (options.bytes === String)\n                            object.cmd = \"\";\n                        else {\n                            object.cmd = [];\n                            if (options.bytes !== Array)\n                                object.cmd = $util.newBuffer(object.cmd);\n                        }\n                    }\n                    if (message.type != null && message.hasOwnProperty(\"type\"))\n                        object.type = options.enums === String ? $root.arrow.flight.protocol.FlightDescriptor.DescriptorType[message.type] === undefined ? message.type : $root.arrow.flight.protocol.FlightDescriptor.DescriptorType[message.type] : message.type;\n                    if (message.cmd != null && message.hasOwnProperty(\"cmd\"))\n                        object.cmd = options.bytes === String ? $util.base64.encode(message.cmd, 0, message.cmd.length) : options.bytes === Array ? Array.prototype.slice.call(message.cmd) : message.cmd;\n                    if (message.path && message.path.length) {\n                        object.path = [];\n                        for (var j = 0; j < message.path.length; ++j)\n                            object.path[j] = message.path[j];\n                    }\n                    return object;\n                };\n\n                /**\n                 * Converts this FlightDescriptor to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.FlightDescriptor\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                FlightDescriptor.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for FlightDescriptor\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.FlightDescriptor\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                FlightDescriptor.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.FlightDescriptor\";\n                };\n\n                /**\n                 * DescriptorType enum.\n                 * @name arrow.flight.protocol.FlightDescriptor.DescriptorType\n                 * @enum {number}\n                 * @property {number} UNKNOWN=0 UNKNOWN value\n                 * @property {number} PATH=1 PATH value\n                 * @property {number} CMD=2 CMD value\n                 */\n                FlightDescriptor.DescriptorType = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"UNKNOWN\"] = 0;\n                    values[valuesById[1] = \"PATH\"] = 1;\n                    values[valuesById[2] = \"CMD\"] = 2;\n                    return values;\n                })();\n\n                return FlightDescriptor;\n            })();\n\n            protocol.FlightInfo = (function() {\n\n                /**\n                 * Properties of a FlightInfo.\n                 * @memberof arrow.flight.protocol\n                 * @interface IFlightInfo\n                 * @property {Uint8Array|null} [schema] FlightInfo schema\n                 * @property {arrow.flight.protocol.IFlightDescriptor|null} [flightDescriptor] FlightInfo flightDescriptor\n                 * @property {Array.<arrow.flight.protocol.IFlightEndpoint>|null} [endpoint] FlightInfo endpoint\n                 * @property {number|Long|null} [totalRecords] FlightInfo totalRecords\n                 * @property {number|Long|null} [totalBytes] FlightInfo totalBytes\n                 * @property {boolean|null} [ordered] FlightInfo ordered\n                 * @property {Uint8Array|null} [appMetadata] FlightInfo appMetadata\n                 */\n\n                /**\n                 * Constructs a new FlightInfo.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a FlightInfo.\n                 * @implements IFlightInfo\n                 * @constructor\n                 * @param {arrow.flight.protocol.IFlightInfo=} [properties] Properties to set\n                 */\n                function FlightInfo(properties) {\n                    this.endpoint = [];\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                 * FlightInfo schema.\n                 * @member {Uint8Array} schema\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @instance\n                 */\n                FlightInfo.prototype.schema = $util.newBuffer([]);\n\n                /**\n                 * FlightInfo flightDescriptor.\n                 * @member {arrow.flight.protocol.IFlightDescriptor|null|undefined} flightDescriptor\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @instance\n                 */\n                FlightInfo.prototype.flightDescriptor = null;\n\n                /**\n                 * FlightInfo endpoint.\n                 * @member {Array.<arrow.flight.protocol.IFlightEndpoint>} endpoint\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @instance\n                 */\n                FlightInfo.prototype.endpoint = $util.emptyArray;\n\n                /**\n                 * FlightInfo totalRecords.\n                 * @member {number|Long} totalRecords\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @instance\n                 */\n                FlightInfo.prototype.totalRecords = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n                /**\n                 * FlightInfo totalBytes.\n                 * @member {number|Long} totalBytes\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @instance\n                 */\n                FlightInfo.prototype.totalBytes = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n                /**\n                 * FlightInfo ordered.\n                 * @member {boolean} ordered\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @instance\n                 */\n                FlightInfo.prototype.ordered = false;\n\n                /**\n                 * FlightInfo appMetadata.\n                 * @member {Uint8Array} appMetadata\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @instance\n                 */\n                FlightInfo.prototype.appMetadata = $util.newBuffer([]);\n\n                /**\n                 * Creates a new FlightInfo instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @static\n                 * @param {arrow.flight.protocol.IFlightInfo=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.FlightInfo} FlightInfo instance\n                 */\n                FlightInfo.create = function create(properties) {\n                    return new FlightInfo(properties);\n                };\n\n                /**\n                 * Encodes the specified FlightInfo message. Does not implicitly {@link arrow.flight.protocol.FlightInfo.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @static\n                 * @param {arrow.flight.protocol.IFlightInfo} message FlightInfo message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                FlightInfo.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.schema != null && Object.hasOwnProperty.call(message, \"schema\"))\n                        writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.schema);\n                    if (message.flightDescriptor != null && Object.hasOwnProperty.call(message, \"flightDescriptor\"))\n                        $root.arrow.flight.protocol.FlightDescriptor.encode(message.flightDescriptor, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n                    if (message.endpoint != null && message.endpoint.length)\n                        for (var i = 0; i < message.endpoint.length; ++i)\n                            $root.arrow.flight.protocol.FlightEndpoint.encode(message.endpoint[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n                    if (message.totalRecords != null && Object.hasOwnProperty.call(message, \"totalRecords\"))\n                        writer.uint32(/* id 4, wireType 0 =*/32).int64(message.totalRecords);\n                    if (message.totalBytes != null && Object.hasOwnProperty.call(message, \"totalBytes\"))\n                        writer.uint32(/* id 5, wireType 0 =*/40).int64(message.totalBytes);\n                    if (message.ordered != null && Object.hasOwnProperty.call(message, \"ordered\"))\n                        writer.uint32(/* id 6, wireType 0 =*/48).bool(message.ordered);\n                    if (message.appMetadata != null && Object.hasOwnProperty.call(message, \"appMetadata\"))\n                        writer.uint32(/* id 7, wireType 2 =*/58).bytes(message.appMetadata);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified FlightInfo message, length delimited. Does not implicitly {@link arrow.flight.protocol.FlightInfo.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @static\n                 * @param {arrow.flight.protocol.IFlightInfo} message FlightInfo message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                FlightInfo.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a FlightInfo message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.FlightInfo\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 {arrow.flight.protocol.FlightInfo} FlightInfo\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                FlightInfo.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.arrow.flight.protocol.FlightInfo();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.schema = reader.bytes();\n                                break;\n                            }\n                        case 2: {\n                                message.flightDescriptor = $root.arrow.flight.protocol.FlightDescriptor.decode(reader, reader.uint32());\n                                break;\n                            }\n                        case 3: {\n                                if (!(message.endpoint && message.endpoint.length))\n                                    message.endpoint = [];\n                                message.endpoint.push($root.arrow.flight.protocol.FlightEndpoint.decode(reader, reader.uint32()));\n                                break;\n                            }\n                        case 4: {\n                                message.totalRecords = reader.int64();\n                                break;\n                            }\n                        case 5: {\n                                message.totalBytes = reader.int64();\n                                break;\n                            }\n                        case 6: {\n                                message.ordered = reader.bool();\n                                break;\n                            }\n                        case 7: {\n                                message.appMetadata = reader.bytes();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a FlightInfo message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.FlightInfo} FlightInfo\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                FlightInfo.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 FlightInfo message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.FlightInfo\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                FlightInfo.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.schema != null && message.hasOwnProperty(\"schema\"))\n                        if (!(message.schema && typeof message.schema.length === \"number\" || $util.isString(message.schema)))\n                            return \"schema: buffer expected\";\n                    if (message.flightDescriptor != null && message.hasOwnProperty(\"flightDescriptor\")) {\n                        var error = $root.arrow.flight.protocol.FlightDescriptor.verify(message.flightDescriptor);\n                        if (error)\n                            return \"flightDescriptor.\" + error;\n                    }\n                    if (message.endpoint != null && message.hasOwnProperty(\"endpoint\")) {\n                        if (!Array.isArray(message.endpoint))\n                            return \"endpoint: array expected\";\n                        for (var i = 0; i < message.endpoint.length; ++i) {\n                            var error = $root.arrow.flight.protocol.FlightEndpoint.verify(message.endpoint[i]);\n                            if (error)\n                                return \"endpoint.\" + error;\n                        }\n                    }\n                    if (message.totalRecords != null && message.hasOwnProperty(\"totalRecords\"))\n                        if (!$util.isInteger(message.totalRecords) && !(message.totalRecords && $util.isInteger(message.totalRecords.low) && $util.isInteger(message.totalRecords.high)))\n                            return \"totalRecords: integer|Long expected\";\n                    if (message.totalBytes != null && message.hasOwnProperty(\"totalBytes\"))\n                        if (!$util.isInteger(message.totalBytes) && !(message.totalBytes && $util.isInteger(message.totalBytes.low) && $util.isInteger(message.totalBytes.high)))\n                            return \"totalBytes: integer|Long expected\";\n                    if (message.ordered != null && message.hasOwnProperty(\"ordered\"))\n                        if (typeof message.ordered !== \"boolean\")\n                            return \"ordered: boolean expected\";\n                    if (message.appMetadata != null && message.hasOwnProperty(\"appMetadata\"))\n                        if (!(message.appMetadata && typeof message.appMetadata.length === \"number\" || $util.isString(message.appMetadata)))\n                            return \"appMetadata: buffer expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a FlightInfo message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.FlightInfo} FlightInfo\n                 */\n                FlightInfo.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.FlightInfo)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.FlightInfo();\n                    if (object.schema != null)\n                        if (typeof object.schema === \"string\")\n                            $util.base64.decode(object.schema, message.schema = $util.newBuffer($util.base64.length(object.schema)), 0);\n                        else if (object.schema.length >= 0)\n                            message.schema = object.schema;\n                    if (object.flightDescriptor != null) {\n                        if (typeof object.flightDescriptor !== \"object\")\n                            throw TypeError(\".arrow.flight.protocol.FlightInfo.flightDescriptor: object expected\");\n                        message.flightDescriptor = $root.arrow.flight.protocol.FlightDescriptor.fromObject(object.flightDescriptor);\n                    }\n                    if (object.endpoint) {\n                        if (!Array.isArray(object.endpoint))\n                            throw TypeError(\".arrow.flight.protocol.FlightInfo.endpoint: array expected\");\n                        message.endpoint = [];\n                        for (var i = 0; i < object.endpoint.length; ++i) {\n                            if (typeof object.endpoint[i] !== \"object\")\n                                throw TypeError(\".arrow.flight.protocol.FlightInfo.endpoint: object expected\");\n                            message.endpoint[i] = $root.arrow.flight.protocol.FlightEndpoint.fromObject(object.endpoint[i]);\n                        }\n                    }\n                    if (object.totalRecords != null)\n                        if ($util.Long)\n                            (message.totalRecords = $util.Long.fromValue(object.totalRecords)).unsigned = false;\n                        else if (typeof object.totalRecords === \"string\")\n                            message.totalRecords = parseInt(object.totalRecords, 10);\n                        else if (typeof object.totalRecords === \"number\")\n                            message.totalRecords = object.totalRecords;\n                        else if (typeof object.totalRecords === \"object\")\n                            message.totalRecords = new $util.LongBits(object.totalRecords.low >>> 0, object.totalRecords.high >>> 0).toNumber();\n                    if (object.totalBytes != null)\n                        if ($util.Long)\n                            (message.totalBytes = $util.Long.fromValue(object.totalBytes)).unsigned = false;\n                        else if (typeof object.totalBytes === \"string\")\n                            message.totalBytes = parseInt(object.totalBytes, 10);\n                        else if (typeof object.totalBytes === \"number\")\n                            message.totalBytes = object.totalBytes;\n                        else if (typeof object.totalBytes === \"object\")\n                            message.totalBytes = new $util.LongBits(object.totalBytes.low >>> 0, object.totalBytes.high >>> 0).toNumber();\n                    if (object.ordered != null)\n                        message.ordered = Boolean(object.ordered);\n                    if (object.appMetadata != null)\n                        if (typeof object.appMetadata === \"string\")\n                            $util.base64.decode(object.appMetadata, message.appMetadata = $util.newBuffer($util.base64.length(object.appMetadata)), 0);\n                        else if (object.appMetadata.length >= 0)\n                            message.appMetadata = object.appMetadata;\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a FlightInfo message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @static\n                 * @param {arrow.flight.protocol.FlightInfo} message FlightInfo\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                FlightInfo.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.arrays || options.defaults)\n                        object.endpoint = [];\n                    if (options.defaults) {\n                        if (options.bytes === String)\n                            object.schema = \"\";\n                        else {\n                            object.schema = [];\n                            if (options.bytes !== Array)\n                                object.schema = $util.newBuffer(object.schema);\n                        }\n                        object.flightDescriptor = null;\n                        if ($util.Long) {\n                            var long = new $util.Long(0, 0, false);\n                            object.totalRecords = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n                        } else\n                            object.totalRecords = options.longs === String ? \"0\" : 0;\n                        if ($util.Long) {\n                            var long = new $util.Long(0, 0, false);\n                            object.totalBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n                        } else\n                            object.totalBytes = options.longs === String ? \"0\" : 0;\n                        object.ordered = false;\n                        if (options.bytes === String)\n                            object.appMetadata = \"\";\n                        else {\n                            object.appMetadata = [];\n                            if (options.bytes !== Array)\n                                object.appMetadata = $util.newBuffer(object.appMetadata);\n                        }\n                    }\n                    if (message.schema != null && message.hasOwnProperty(\"schema\"))\n                        object.schema = options.bytes === String ? $util.base64.encode(message.schema, 0, message.schema.length) : options.bytes === Array ? Array.prototype.slice.call(message.schema) : message.schema;\n                    if (message.flightDescriptor != null && message.hasOwnProperty(\"flightDescriptor\"))\n                        object.flightDescriptor = $root.arrow.flight.protocol.FlightDescriptor.toObject(message.flightDescriptor, options);\n                    if (message.endpoint && message.endpoint.length) {\n                        object.endpoint = [];\n                        for (var j = 0; j < message.endpoint.length; ++j)\n                            object.endpoint[j] = $root.arrow.flight.protocol.FlightEndpoint.toObject(message.endpoint[j], options);\n                    }\n                    if (message.totalRecords != null && message.hasOwnProperty(\"totalRecords\"))\n                        if (typeof message.totalRecords === \"number\")\n                            object.totalRecords = options.longs === String ? String(message.totalRecords) : message.totalRecords;\n                        else\n                            object.totalRecords = options.longs === String ? $util.Long.prototype.toString.call(message.totalRecords) : options.longs === Number ? new $util.LongBits(message.totalRecords.low >>> 0, message.totalRecords.high >>> 0).toNumber() : message.totalRecords;\n                    if (message.totalBytes != null && message.hasOwnProperty(\"totalBytes\"))\n                        if (typeof message.totalBytes === \"number\")\n                            object.totalBytes = options.longs === String ? String(message.totalBytes) : message.totalBytes;\n                        else\n                            object.totalBytes = options.longs === String ? $util.Long.prototype.toString.call(message.totalBytes) : options.longs === Number ? new $util.LongBits(message.totalBytes.low >>> 0, message.totalBytes.high >>> 0).toNumber() : message.totalBytes;\n                    if (message.ordered != null && message.hasOwnProperty(\"ordered\"))\n                        object.ordered = message.ordered;\n                    if (message.appMetadata != null && message.hasOwnProperty(\"appMetadata\"))\n                        object.appMetadata = options.bytes === String ? $util.base64.encode(message.appMetadata, 0, message.appMetadata.length) : options.bytes === Array ? Array.prototype.slice.call(message.appMetadata) : message.appMetadata;\n                    return object;\n                };\n\n                /**\n                 * Converts this FlightInfo to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                FlightInfo.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for FlightInfo\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.FlightInfo\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                FlightInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.FlightInfo\";\n                };\n\n                return FlightInfo;\n            })();\n\n            protocol.PollInfo = (function() {\n\n                /**\n                 * Properties of a PollInfo.\n                 * @memberof arrow.flight.protocol\n                 * @interface IPollInfo\n                 * @property {arrow.flight.protocol.IFlightInfo|null} [info] PollInfo info\n                 * @property {arrow.flight.protocol.IFlightDescriptor|null} [flightDescriptor] PollInfo flightDescriptor\n                 * @property {number|null} [progress] PollInfo progress\n                 * @property {google.protobuf.ITimestamp|null} [expirationTime] PollInfo expirationTime\n                 */\n\n                /**\n                 * Constructs a new PollInfo.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a PollInfo.\n                 * @implements IPollInfo\n                 * @constructor\n                 * @param {arrow.flight.protocol.IPollInfo=} [properties] Properties to set\n                 */\n                function PollInfo(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                 * PollInfo info.\n                 * @member {arrow.flight.protocol.IFlightInfo|null|undefined} info\n                 * @memberof arrow.flight.protocol.PollInfo\n                 * @instance\n                 */\n                PollInfo.prototype.info = null;\n\n                /**\n                 * PollInfo flightDescriptor.\n                 * @member {arrow.flight.protocol.IFlightDescriptor|null|undefined} flightDescriptor\n                 * @memberof arrow.flight.protocol.PollInfo\n                 * @instance\n                 */\n                PollInfo.prototype.flightDescriptor = null;\n\n                /**\n                 * PollInfo progress.\n                 * @member {number|null|undefined} progress\n                 * @memberof arrow.flight.protocol.PollInfo\n                 * @instance\n                 */\n                PollInfo.prototype.progress = null;\n\n                /**\n                 * PollInfo expirationTime.\n                 * @member {google.protobuf.ITimestamp|null|undefined} expirationTime\n                 * @memberof arrow.flight.protocol.PollInfo\n                 * @instance\n                 */\n                PollInfo.prototype.expirationTime = null;\n\n                // OneOf field names bound to virtual getters and setters\n                var $oneOfFields;\n\n                // Virtual OneOf for proto3 optional field\n                Object.defineProperty(PollInfo.prototype, \"_progress\", {\n                    get: $util.oneOfGetter($oneOfFields = [\"progress\"]),\n                    set: $util.oneOfSetter($oneOfFields)\n                });\n\n                /**\n                 * Creates a new PollInfo instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.PollInfo\n                 * @static\n                 * @param {arrow.flight.protocol.IPollInfo=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.PollInfo} PollInfo instance\n                 */\n                PollInfo.create = function create(properties) {\n                    return new PollInfo(properties);\n                };\n\n                /**\n                 * Encodes the specified PollInfo message. Does not implicitly {@link arrow.flight.protocol.PollInfo.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.PollInfo\n                 * @static\n                 * @param {arrow.flight.protocol.IPollInfo} message PollInfo message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                PollInfo.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.info != null && Object.hasOwnProperty.call(message, \"info\"))\n                        $root.arrow.flight.protocol.FlightInfo.encode(message.info, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n                    if (message.flightDescriptor != null && Object.hasOwnProperty.call(message, \"flightDescriptor\"))\n                        $root.arrow.flight.protocol.FlightDescriptor.encode(message.flightDescriptor, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n                    if (message.progress != null && Object.hasOwnProperty.call(message, \"progress\"))\n                        writer.uint32(/* id 3, wireType 1 =*/25).double(message.progress);\n                    if (message.expirationTime != null && Object.hasOwnProperty.call(message, \"expirationTime\"))\n                        $root.google.protobuf.Timestamp.encode(message.expirationTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified PollInfo message, length delimited. Does not implicitly {@link arrow.flight.protocol.PollInfo.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.PollInfo\n                 * @static\n                 * @param {arrow.flight.protocol.IPollInfo} message PollInfo message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                PollInfo.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a PollInfo message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.PollInfo\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 {arrow.flight.protocol.PollInfo} PollInfo\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                PollInfo.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.arrow.flight.protocol.PollInfo();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.info = $root.arrow.flight.protocol.FlightInfo.decode(reader, reader.uint32());\n                                break;\n                            }\n                        case 2: {\n                                message.flightDescriptor = $root.arrow.flight.protocol.FlightDescriptor.decode(reader, reader.uint32());\n                                break;\n                            }\n                        case 3: {\n                                message.progress = reader.double();\n                                break;\n                            }\n                        case 4: {\n                                message.expirationTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a PollInfo message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.PollInfo\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.PollInfo} PollInfo\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                PollInfo.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 PollInfo message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.PollInfo\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                PollInfo.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    var properties = {};\n                    if (message.info != null && message.hasOwnProperty(\"info\")) {\n                        var error = $root.arrow.flight.protocol.FlightInfo.verify(message.info);\n                        if (error)\n                            return \"info.\" + error;\n                    }\n                    if (message.flightDescriptor != null && message.hasOwnProperty(\"flightDescriptor\")) {\n                        var error = $root.arrow.flight.protocol.FlightDescriptor.verify(message.flightDescriptor);\n                        if (error)\n                            return \"flightDescriptor.\" + error;\n                    }\n                    if (message.progress != null && message.hasOwnProperty(\"progress\")) {\n                        properties._progress = 1;\n                        if (typeof message.progress !== \"number\")\n                            return \"progress: number expected\";\n                    }\n                    if (message.expirationTime != null && message.hasOwnProperty(\"expirationTime\")) {\n                        var error = $root.google.protobuf.Timestamp.verify(message.expirationTime);\n                        if (error)\n                            return \"expirationTime.\" + error;\n                    }\n                    return null;\n                };\n\n                /**\n                 * Creates a PollInfo message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.PollInfo\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.PollInfo} PollInfo\n                 */\n                PollInfo.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.PollInfo)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.PollInfo();\n                    if (object.info != null) {\n                        if (typeof object.info !== \"object\")\n                            throw TypeError(\".arrow.flight.protocol.PollInfo.info: object expected\");\n                        message.info = $root.arrow.flight.protocol.FlightInfo.fromObject(object.info);\n                    }\n                    if (object.flightDescriptor != null) {\n                        if (typeof object.flightDescriptor !== \"object\")\n                            throw TypeError(\".arrow.flight.protocol.PollInfo.flightDescriptor: object expected\");\n                        message.flightDescriptor = $root.arrow.flight.protocol.FlightDescriptor.fromObject(object.flightDescriptor);\n                    }\n                    if (object.progress != null)\n                        message.progress = Number(object.progress);\n                    if (object.expirationTime != null) {\n                        if (typeof object.expirationTime !== \"object\")\n                            throw TypeError(\".arrow.flight.protocol.PollInfo.expirationTime: object expected\");\n                        message.expirationTime = $root.google.protobuf.Timestamp.fromObject(object.expirationTime);\n                    }\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a PollInfo message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.PollInfo\n                 * @static\n                 * @param {arrow.flight.protocol.PollInfo} message PollInfo\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                PollInfo.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults) {\n                        object.info = null;\n                        object.flightDescriptor = null;\n                        object.expirationTime = null;\n                    }\n                    if (message.info != null && message.hasOwnProperty(\"info\"))\n                        object.info = $root.arrow.flight.protocol.FlightInfo.toObject(message.info, options);\n                    if (message.flightDescriptor != null && message.hasOwnProperty(\"flightDescriptor\"))\n                        object.flightDescriptor = $root.arrow.flight.protocol.FlightDescriptor.toObject(message.flightDescriptor, options);\n                    if (message.progress != null && message.hasOwnProperty(\"progress\")) {\n                        object.progress = options.json && !isFinite(message.progress) ? String(message.progress) : message.progress;\n                        if (options.oneofs)\n                            object._progress = \"progress\";\n                    }\n                    if (message.expirationTime != null && message.hasOwnProperty(\"expirationTime\"))\n                        object.expirationTime = $root.google.protobuf.Timestamp.toObject(message.expirationTime, options);\n                    return object;\n                };\n\n                /**\n                 * Converts this PollInfo to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.PollInfo\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                PollInfo.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for PollInfo\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.PollInfo\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                PollInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.PollInfo\";\n                };\n\n                return PollInfo;\n            })();\n\n            protocol.CancelFlightInfoRequest = (function() {\n\n                /**\n                 * Properties of a CancelFlightInfoRequest.\n                 * @memberof arrow.flight.protocol\n                 * @interface ICancelFlightInfoRequest\n                 * @property {arrow.flight.protocol.IFlightInfo|null} [info] CancelFlightInfoRequest info\n                 */\n\n                /**\n                 * Constructs a new CancelFlightInfoRequest.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a CancelFlightInfoRequest.\n                 * @implements ICancelFlightInfoRequest\n                 * @constructor\n                 * @param {arrow.flight.protocol.ICancelFlightInfoRequest=} [properties] Properties to set\n                 */\n                function CancelFlightInfoRequest(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                 * CancelFlightInfoRequest info.\n                 * @member {arrow.flight.protocol.IFlightInfo|null|undefined} info\n                 * @memberof arrow.flight.protocol.CancelFlightInfoRequest\n                 * @instance\n                 */\n                CancelFlightInfoRequest.prototype.info = null;\n\n                /**\n                 * Creates a new CancelFlightInfoRequest instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.CancelFlightInfoRequest\n                 * @static\n                 * @param {arrow.flight.protocol.ICancelFlightInfoRequest=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.CancelFlightInfoRequest} CancelFlightInfoRequest instance\n                 */\n                CancelFlightInfoRequest.create = function create(properties) {\n                    return new CancelFlightInfoRequest(properties);\n                };\n\n                /**\n                 * Encodes the specified CancelFlightInfoRequest message. Does not implicitly {@link arrow.flight.protocol.CancelFlightInfoRequest.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.CancelFlightInfoRequest\n                 * @static\n                 * @param {arrow.flight.protocol.ICancelFlightInfoRequest} message CancelFlightInfoRequest message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                CancelFlightInfoRequest.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.info != null && Object.hasOwnProperty.call(message, \"info\"))\n                        $root.arrow.flight.protocol.FlightInfo.encode(message.info, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified CancelFlightInfoRequest message, length delimited. Does not implicitly {@link arrow.flight.protocol.CancelFlightInfoRequest.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.CancelFlightInfoRequest\n                 * @static\n                 * @param {arrow.flight.protocol.ICancelFlightInfoRequest} message CancelFlightInfoRequest message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                CancelFlightInfoRequest.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a CancelFlightInfoRequest message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.CancelFlightInfoRequest\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 {arrow.flight.protocol.CancelFlightInfoRequest} CancelFlightInfoRequest\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                CancelFlightInfoRequest.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.arrow.flight.protocol.CancelFlightInfoRequest();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.info = $root.arrow.flight.protocol.FlightInfo.decode(reader, reader.uint32());\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a CancelFlightInfoRequest message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.CancelFlightInfoRequest\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.CancelFlightInfoRequest} CancelFlightInfoRequest\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                CancelFlightInfoRequest.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 CancelFlightInfoRequest message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.CancelFlightInfoRequest\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                CancelFlightInfoRequest.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.info != null && message.hasOwnProperty(\"info\")) {\n                        var error = $root.arrow.flight.protocol.FlightInfo.verify(message.info);\n                        if (error)\n                            return \"info.\" + error;\n                    }\n                    return null;\n                };\n\n                /**\n                 * Creates a CancelFlightInfoRequest message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.CancelFlightInfoRequest\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.CancelFlightInfoRequest} CancelFlightInfoRequest\n                 */\n                CancelFlightInfoRequest.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.CancelFlightInfoRequest)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.CancelFlightInfoRequest();\n                    if (object.info != null) {\n                        if (typeof object.info !== \"object\")\n                            throw TypeError(\".arrow.flight.protocol.CancelFlightInfoRequest.info: object expected\");\n                        message.info = $root.arrow.flight.protocol.FlightInfo.fromObject(object.info);\n                    }\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a CancelFlightInfoRequest message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.CancelFlightInfoRequest\n                 * @static\n                 * @param {arrow.flight.protocol.CancelFlightInfoRequest} message CancelFlightInfoRequest\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                CancelFlightInfoRequest.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults)\n                        object.info = null;\n                    if (message.info != null && message.hasOwnProperty(\"info\"))\n                        object.info = $root.arrow.flight.protocol.FlightInfo.toObject(message.info, options);\n                    return object;\n                };\n\n                /**\n                 * Converts this CancelFlightInfoRequest to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.CancelFlightInfoRequest\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                CancelFlightInfoRequest.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for CancelFlightInfoRequest\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.CancelFlightInfoRequest\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                CancelFlightInfoRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.CancelFlightInfoRequest\";\n                };\n\n                return CancelFlightInfoRequest;\n            })();\n\n            /**\n             * CancelStatus enum.\n             * @name arrow.flight.protocol.CancelStatus\n             * @enum {number}\n             * @property {number} CANCEL_STATUS_UNSPECIFIED=0 CANCEL_STATUS_UNSPECIFIED value\n             * @property {number} CANCEL_STATUS_CANCELLED=1 CANCEL_STATUS_CANCELLED value\n             * @property {number} CANCEL_STATUS_CANCELLING=2 CANCEL_STATUS_CANCELLING value\n             * @property {number} CANCEL_STATUS_NOT_CANCELLABLE=3 CANCEL_STATUS_NOT_CANCELLABLE value\n             */\n            protocol.CancelStatus = (function() {\n                var valuesById = {}, values = Object.create(valuesById);\n                values[valuesById[0] = \"CANCEL_STATUS_UNSPECIFIED\"] = 0;\n                values[valuesById[1] = \"CANCEL_STATUS_CANCELLED\"] = 1;\n                values[valuesById[2] = \"CANCEL_STATUS_CANCELLING\"] = 2;\n                values[valuesById[3] = \"CANCEL_STATUS_NOT_CANCELLABLE\"] = 3;\n                return values;\n            })();\n\n            protocol.CancelFlightInfoResult = (function() {\n\n                /**\n                 * Properties of a CancelFlightInfoResult.\n                 * @memberof arrow.flight.protocol\n                 * @interface ICancelFlightInfoResult\n                 * @property {arrow.flight.protocol.CancelStatus|null} [status] CancelFlightInfoResult status\n                 */\n\n                /**\n                 * Constructs a new CancelFlightInfoResult.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a CancelFlightInfoResult.\n                 * @implements ICancelFlightInfoResult\n                 * @constructor\n                 * @param {arrow.flight.protocol.ICancelFlightInfoResult=} [properties] Properties to set\n                 */\n                function CancelFlightInfoResult(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                 * CancelFlightInfoResult status.\n                 * @member {arrow.flight.protocol.CancelStatus} status\n                 * @memberof arrow.flight.protocol.CancelFlightInfoResult\n                 * @instance\n                 */\n                CancelFlightInfoResult.prototype.status = 0;\n\n                /**\n                 * Creates a new CancelFlightInfoResult instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.CancelFlightInfoResult\n                 * @static\n                 * @param {arrow.flight.protocol.ICancelFlightInfoResult=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.CancelFlightInfoResult} CancelFlightInfoResult instance\n                 */\n                CancelFlightInfoResult.create = function create(properties) {\n                    return new CancelFlightInfoResult(properties);\n                };\n\n                /**\n                 * Encodes the specified CancelFlightInfoResult message. Does not implicitly {@link arrow.flight.protocol.CancelFlightInfoResult.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.CancelFlightInfoResult\n                 * @static\n                 * @param {arrow.flight.protocol.ICancelFlightInfoResult} message CancelFlightInfoResult message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                CancelFlightInfoResult.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.status != null && Object.hasOwnProperty.call(message, \"status\"))\n                        writer.uint32(/* id 1, wireType 0 =*/8).int32(message.status);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified CancelFlightInfoResult message, length delimited. Does not implicitly {@link arrow.flight.protocol.CancelFlightInfoResult.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.CancelFlightInfoResult\n                 * @static\n                 * @param {arrow.flight.protocol.ICancelFlightInfoResult} message CancelFlightInfoResult message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                CancelFlightInfoResult.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a CancelFlightInfoResult message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.CancelFlightInfoResult\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 {arrow.flight.protocol.CancelFlightInfoResult} CancelFlightInfoResult\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                CancelFlightInfoResult.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.arrow.flight.protocol.CancelFlightInfoResult();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.status = reader.int32();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a CancelFlightInfoResult message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.CancelFlightInfoResult\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.CancelFlightInfoResult} CancelFlightInfoResult\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                CancelFlightInfoResult.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 CancelFlightInfoResult message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.CancelFlightInfoResult\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                CancelFlightInfoResult.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.status != null && message.hasOwnProperty(\"status\"))\n                        switch (message.status) {\n                        default:\n                            return \"status: enum value expected\";\n                        case 0:\n                        case 1:\n                        case 2:\n                        case 3:\n                            break;\n                        }\n                    return null;\n                };\n\n                /**\n                 * Creates a CancelFlightInfoResult message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.CancelFlightInfoResult\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.CancelFlightInfoResult} CancelFlightInfoResult\n                 */\n                CancelFlightInfoResult.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.CancelFlightInfoResult)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.CancelFlightInfoResult();\n                    switch (object.status) {\n                    default:\n                        if (typeof object.status === \"number\") {\n                            message.status = object.status;\n                            break;\n                        }\n                        break;\n                    case \"CANCEL_STATUS_UNSPECIFIED\":\n                    case 0:\n                        message.status = 0;\n                        break;\n                    case \"CANCEL_STATUS_CANCELLED\":\n                    case 1:\n                        message.status = 1;\n                        break;\n                    case \"CANCEL_STATUS_CANCELLING\":\n                    case 2:\n                        message.status = 2;\n                        break;\n                    case \"CANCEL_STATUS_NOT_CANCELLABLE\":\n                    case 3:\n                        message.status = 3;\n                        break;\n                    }\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a CancelFlightInfoResult message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.CancelFlightInfoResult\n                 * @static\n                 * @param {arrow.flight.protocol.CancelFlightInfoResult} message CancelFlightInfoResult\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                CancelFlightInfoResult.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults)\n                        object.status = options.enums === String ? \"CANCEL_STATUS_UNSPECIFIED\" : 0;\n                    if (message.status != null && message.hasOwnProperty(\"status\"))\n                        object.status = options.enums === String ? $root.arrow.flight.protocol.CancelStatus[message.status] === undefined ? message.status : $root.arrow.flight.protocol.CancelStatus[message.status] : message.status;\n                    return object;\n                };\n\n                /**\n                 * Converts this CancelFlightInfoResult to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.CancelFlightInfoResult\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                CancelFlightInfoResult.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for CancelFlightInfoResult\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.CancelFlightInfoResult\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                CancelFlightInfoResult.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.CancelFlightInfoResult\";\n                };\n\n                return CancelFlightInfoResult;\n            })();\n\n            protocol.Ticket = (function() {\n\n                /**\n                 * Properties of a Ticket.\n                 * @memberof arrow.flight.protocol\n                 * @interface ITicket\n                 * @property {Uint8Array|null} [ticket] Ticket ticket\n                 */\n\n                /**\n                 * Constructs a new Ticket.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a Ticket.\n                 * @implements ITicket\n                 * @constructor\n                 * @param {arrow.flight.protocol.ITicket=} [properties] Properties to set\n                 */\n                function Ticket(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                 * Ticket ticket.\n                 * @member {Uint8Array} ticket\n                 * @memberof arrow.flight.protocol.Ticket\n                 * @instance\n                 */\n                Ticket.prototype.ticket = $util.newBuffer([]);\n\n                /**\n                 * Creates a new Ticket instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.Ticket\n                 * @static\n                 * @param {arrow.flight.protocol.ITicket=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.Ticket} Ticket instance\n                 */\n                Ticket.create = function create(properties) {\n                    return new Ticket(properties);\n                };\n\n                /**\n                 * Encodes the specified Ticket message. Does not implicitly {@link arrow.flight.protocol.Ticket.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.Ticket\n                 * @static\n                 * @param {arrow.flight.protocol.ITicket} message Ticket message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Ticket.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.ticket != null && Object.hasOwnProperty.call(message, \"ticket\"))\n                        writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.ticket);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified Ticket message, length delimited. Does not implicitly {@link arrow.flight.protocol.Ticket.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.Ticket\n                 * @static\n                 * @param {arrow.flight.protocol.ITicket} message Ticket message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Ticket.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a Ticket message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.Ticket\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 {arrow.flight.protocol.Ticket} Ticket\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                Ticket.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.arrow.flight.protocol.Ticket();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.ticket = reader.bytes();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a Ticket message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.Ticket\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.Ticket} Ticket\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                Ticket.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 Ticket message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.Ticket\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                Ticket.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.ticket != null && message.hasOwnProperty(\"ticket\"))\n                        if (!(message.ticket && typeof message.ticket.length === \"number\" || $util.isString(message.ticket)))\n                            return \"ticket: buffer expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a Ticket message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.Ticket\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.Ticket} Ticket\n                 */\n                Ticket.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.Ticket)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.Ticket();\n                    if (object.ticket != null)\n                        if (typeof object.ticket === \"string\")\n                            $util.base64.decode(object.ticket, message.ticket = $util.newBuffer($util.base64.length(object.ticket)), 0);\n                        else if (object.ticket.length >= 0)\n                            message.ticket = object.ticket;\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a Ticket message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.Ticket\n                 * @static\n                 * @param {arrow.flight.protocol.Ticket} message Ticket\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                Ticket.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults)\n                        if (options.bytes === String)\n                            object.ticket = \"\";\n                        else {\n                            object.ticket = [];\n                            if (options.bytes !== Array)\n                                object.ticket = $util.newBuffer(object.ticket);\n                        }\n                    if (message.ticket != null && message.hasOwnProperty(\"ticket\"))\n                        object.ticket = options.bytes === String ? $util.base64.encode(message.ticket, 0, message.ticket.length) : options.bytes === Array ? Array.prototype.slice.call(message.ticket) : message.ticket;\n                    return object;\n                };\n\n                /**\n                 * Converts this Ticket to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.Ticket\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                Ticket.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for Ticket\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.Ticket\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                Ticket.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.Ticket\";\n                };\n\n                return Ticket;\n            })();\n\n            protocol.Location = (function() {\n\n                /**\n                 * Properties of a Location.\n                 * @memberof arrow.flight.protocol\n                 * @interface ILocation\n                 * @property {string|null} [uri] Location uri\n                 */\n\n                /**\n                 * Constructs a new Location.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a Location.\n                 * @implements ILocation\n                 * @constructor\n                 * @param {arrow.flight.protocol.ILocation=} [properties] Properties to set\n                 */\n                function Location(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                 * Location uri.\n                 * @member {string} uri\n                 * @memberof arrow.flight.protocol.Location\n                 * @instance\n                 */\n                Location.prototype.uri = \"\";\n\n                /**\n                 * Creates a new Location instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.Location\n                 * @static\n                 * @param {arrow.flight.protocol.ILocation=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.Location} Location instance\n                 */\n                Location.create = function create(properties) {\n                    return new Location(properties);\n                };\n\n                /**\n                 * Encodes the specified Location message. Does not implicitly {@link arrow.flight.protocol.Location.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.Location\n                 * @static\n                 * @param {arrow.flight.protocol.ILocation} message Location message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Location.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.uri != null && Object.hasOwnProperty.call(message, \"uri\"))\n                        writer.uint32(/* id 1, wireType 2 =*/10).string(message.uri);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified Location message, length delimited. Does not implicitly {@link arrow.flight.protocol.Location.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.Location\n                 * @static\n                 * @param {arrow.flight.protocol.ILocation} message Location message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Location.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a Location message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.Location\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 {arrow.flight.protocol.Location} Location\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                Location.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.arrow.flight.protocol.Location();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.uri = reader.string();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a Location message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.Location\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.Location} Location\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                Location.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 Location message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.Location\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                Location.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.uri != null && message.hasOwnProperty(\"uri\"))\n                        if (!$util.isString(message.uri))\n                            return \"uri: string expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a Location message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.Location\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.Location} Location\n                 */\n                Location.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.Location)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.Location();\n                    if (object.uri != null)\n                        message.uri = String(object.uri);\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a Location message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.Location\n                 * @static\n                 * @param {arrow.flight.protocol.Location} message Location\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                Location.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults)\n                        object.uri = \"\";\n                    if (message.uri != null && message.hasOwnProperty(\"uri\"))\n                        object.uri = message.uri;\n                    return object;\n                };\n\n                /**\n                 * Converts this Location to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.Location\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                Location.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for Location\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.Location\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                Location.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.Location\";\n                };\n\n                return Location;\n            })();\n\n            protocol.FlightEndpoint = (function() {\n\n                /**\n                 * Properties of a FlightEndpoint.\n                 * @memberof arrow.flight.protocol\n                 * @interface IFlightEndpoint\n                 * @property {arrow.flight.protocol.ITicket|null} [ticket] FlightEndpoint ticket\n                 * @property {Array.<arrow.flight.protocol.ILocation>|null} [location] FlightEndpoint location\n                 * @property {google.protobuf.ITimestamp|null} [expirationTime] FlightEndpoint expirationTime\n                 * @property {Uint8Array|null} [appMetadata] FlightEndpoint appMetadata\n                 */\n\n                /**\n                 * Constructs a new FlightEndpoint.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a FlightEndpoint.\n                 * @implements IFlightEndpoint\n                 * @constructor\n                 * @param {arrow.flight.protocol.IFlightEndpoint=} [properties] Properties to set\n                 */\n                function FlightEndpoint(properties) {\n                    this.location = [];\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                 * FlightEndpoint ticket.\n                 * @member {arrow.flight.protocol.ITicket|null|undefined} ticket\n                 * @memberof arrow.flight.protocol.FlightEndpoint\n                 * @instance\n                 */\n                FlightEndpoint.prototype.ticket = null;\n\n                /**\n                 * FlightEndpoint location.\n                 * @member {Array.<arrow.flight.protocol.ILocation>} location\n                 * @memberof arrow.flight.protocol.FlightEndpoint\n                 * @instance\n                 */\n                FlightEndpoint.prototype.location = $util.emptyArray;\n\n                /**\n                 * FlightEndpoint expirationTime.\n                 * @member {google.protobuf.ITimestamp|null|undefined} expirationTime\n                 * @memberof arrow.flight.protocol.FlightEndpoint\n                 * @instance\n                 */\n                FlightEndpoint.prototype.expirationTime = null;\n\n                /**\n                 * FlightEndpoint appMetadata.\n                 * @member {Uint8Array} appMetadata\n                 * @memberof arrow.flight.protocol.FlightEndpoint\n                 * @instance\n                 */\n                FlightEndpoint.prototype.appMetadata = $util.newBuffer([]);\n\n                /**\n                 * Creates a new FlightEndpoint instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.FlightEndpoint\n                 * @static\n                 * @param {arrow.flight.protocol.IFlightEndpoint=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.FlightEndpoint} FlightEndpoint instance\n                 */\n                FlightEndpoint.create = function create(properties) {\n                    return new FlightEndpoint(properties);\n                };\n\n                /**\n                 * Encodes the specified FlightEndpoint message. Does not implicitly {@link arrow.flight.protocol.FlightEndpoint.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.FlightEndpoint\n                 * @static\n                 * @param {arrow.flight.protocol.IFlightEndpoint} message FlightEndpoint message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                FlightEndpoint.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.ticket != null && Object.hasOwnProperty.call(message, \"ticket\"))\n                        $root.arrow.flight.protocol.Ticket.encode(message.ticket, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n                    if (message.location != null && message.location.length)\n                        for (var i = 0; i < message.location.length; ++i)\n                            $root.arrow.flight.protocol.Location.encode(message.location[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n                    if (message.expirationTime != null && Object.hasOwnProperty.call(message, \"expirationTime\"))\n                        $root.google.protobuf.Timestamp.encode(message.expirationTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n                    if (message.appMetadata != null && Object.hasOwnProperty.call(message, \"appMetadata\"))\n                        writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.appMetadata);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified FlightEndpoint message, length delimited. Does not implicitly {@link arrow.flight.protocol.FlightEndpoint.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.FlightEndpoint\n                 * @static\n                 * @param {arrow.flight.protocol.IFlightEndpoint} message FlightEndpoint message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                FlightEndpoint.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a FlightEndpoint message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.FlightEndpoint\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 {arrow.flight.protocol.FlightEndpoint} FlightEndpoint\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                FlightEndpoint.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.arrow.flight.protocol.FlightEndpoint();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.ticket = $root.arrow.flight.protocol.Ticket.decode(reader, reader.uint32());\n                                break;\n                            }\n                        case 2: {\n                                if (!(message.location && message.location.length))\n                                    message.location = [];\n                                message.location.push($root.arrow.flight.protocol.Location.decode(reader, reader.uint32()));\n                                break;\n                            }\n                        case 3: {\n                                message.expirationTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());\n                                break;\n                            }\n                        case 4: {\n                                message.appMetadata = reader.bytes();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a FlightEndpoint message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.FlightEndpoint\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.FlightEndpoint} FlightEndpoint\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                FlightEndpoint.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 FlightEndpoint message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.FlightEndpoint\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                FlightEndpoint.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.ticket != null && message.hasOwnProperty(\"ticket\")) {\n                        var error = $root.arrow.flight.protocol.Ticket.verify(message.ticket);\n                        if (error)\n                            return \"ticket.\" + error;\n                    }\n                    if (message.location != null && message.hasOwnProperty(\"location\")) {\n                        if (!Array.isArray(message.location))\n                            return \"location: array expected\";\n                        for (var i = 0; i < message.location.length; ++i) {\n                            var error = $root.arrow.flight.protocol.Location.verify(message.location[i]);\n                            if (error)\n                                return \"location.\" + error;\n                        }\n                    }\n                    if (message.expirationTime != null && message.hasOwnProperty(\"expirationTime\")) {\n                        var error = $root.google.protobuf.Timestamp.verify(message.expirationTime);\n                        if (error)\n                            return \"expirationTime.\" + error;\n                    }\n                    if (message.appMetadata != null && message.hasOwnProperty(\"appMetadata\"))\n                        if (!(message.appMetadata && typeof message.appMetadata.length === \"number\" || $util.isString(message.appMetadata)))\n                            return \"appMetadata: buffer expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a FlightEndpoint message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.FlightEndpoint\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.FlightEndpoint} FlightEndpoint\n                 */\n                FlightEndpoint.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.FlightEndpoint)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.FlightEndpoint();\n                    if (object.ticket != null) {\n                        if (typeof object.ticket !== \"object\")\n                            throw TypeError(\".arrow.flight.protocol.FlightEndpoint.ticket: object expected\");\n                        message.ticket = $root.arrow.flight.protocol.Ticket.fromObject(object.ticket);\n                    }\n                    if (object.location) {\n                        if (!Array.isArray(object.location))\n                            throw TypeError(\".arrow.flight.protocol.FlightEndpoint.location: array expected\");\n                        message.location = [];\n                        for (var i = 0; i < object.location.length; ++i) {\n                            if (typeof object.location[i] !== \"object\")\n                                throw TypeError(\".arrow.flight.protocol.FlightEndpoint.location: object expected\");\n                            message.location[i] = $root.arrow.flight.protocol.Location.fromObject(object.location[i]);\n                        }\n                    }\n                    if (object.expirationTime != null) {\n                        if (typeof object.expirationTime !== \"object\")\n                            throw TypeError(\".arrow.flight.protocol.FlightEndpoint.expirationTime: object expected\");\n                        message.expirationTime = $root.google.protobuf.Timestamp.fromObject(object.expirationTime);\n                    }\n                    if (object.appMetadata != null)\n                        if (typeof object.appMetadata === \"string\")\n                            $util.base64.decode(object.appMetadata, message.appMetadata = $util.newBuffer($util.base64.length(object.appMetadata)), 0);\n                        else if (object.appMetadata.length >= 0)\n                            message.appMetadata = object.appMetadata;\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a FlightEndpoint message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.FlightEndpoint\n                 * @static\n                 * @param {arrow.flight.protocol.FlightEndpoint} message FlightEndpoint\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                FlightEndpoint.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.arrays || options.defaults)\n                        object.location = [];\n                    if (options.defaults) {\n                        object.ticket = null;\n                        object.expirationTime = null;\n                        if (options.bytes === String)\n                            object.appMetadata = \"\";\n                        else {\n                            object.appMetadata = [];\n                            if (options.bytes !== Array)\n                                object.appMetadata = $util.newBuffer(object.appMetadata);\n                        }\n                    }\n                    if (message.ticket != null && message.hasOwnProperty(\"ticket\"))\n                        object.ticket = $root.arrow.flight.protocol.Ticket.toObject(message.ticket, options);\n                    if (message.location && message.location.length) {\n                        object.location = [];\n                        for (var j = 0; j < message.location.length; ++j)\n                            object.location[j] = $root.arrow.flight.protocol.Location.toObject(message.location[j], options);\n                    }\n                    if (message.expirationTime != null && message.hasOwnProperty(\"expirationTime\"))\n                        object.expirationTime = $root.google.protobuf.Timestamp.toObject(message.expirationTime, options);\n                    if (message.appMetadata != null && message.hasOwnProperty(\"appMetadata\"))\n                        object.appMetadata = options.bytes === String ? $util.base64.encode(message.appMetadata, 0, message.appMetadata.length) : options.bytes === Array ? Array.prototype.slice.call(message.appMetadata) : message.appMetadata;\n                    return object;\n                };\n\n                /**\n                 * Converts this FlightEndpoint to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.FlightEndpoint\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                FlightEndpoint.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for FlightEndpoint\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.FlightEndpoint\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                FlightEndpoint.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.FlightEndpoint\";\n                };\n\n                return FlightEndpoint;\n            })();\n\n            protocol.RenewFlightEndpointRequest = (function() {\n\n                /**\n                 * Properties of a RenewFlightEndpointRequest.\n                 * @memberof arrow.flight.protocol\n                 * @interface IRenewFlightEndpointRequest\n                 * @property {arrow.flight.protocol.IFlightEndpoint|null} [endpoint] RenewFlightEndpointRequest endpoint\n                 */\n\n                /**\n                 * Constructs a new RenewFlightEndpointRequest.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a RenewFlightEndpointRequest.\n                 * @implements IRenewFlightEndpointRequest\n                 * @constructor\n                 * @param {arrow.flight.protocol.IRenewFlightEndpointRequest=} [properties] Properties to set\n                 */\n                function RenewFlightEndpointRequest(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                 * RenewFlightEndpointRequest endpoint.\n                 * @member {arrow.flight.protocol.IFlightEndpoint|null|undefined} endpoint\n                 * @memberof arrow.flight.protocol.RenewFlightEndpointRequest\n                 * @instance\n                 */\n                RenewFlightEndpointRequest.prototype.endpoint = null;\n\n                /**\n                 * Creates a new RenewFlightEndpointRequest instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.RenewFlightEndpointRequest\n                 * @static\n                 * @param {arrow.flight.protocol.IRenewFlightEndpointRequest=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.RenewFlightEndpointRequest} RenewFlightEndpointRequest instance\n                 */\n                RenewFlightEndpointRequest.create = function create(properties) {\n                    return new RenewFlightEndpointRequest(properties);\n                };\n\n                /**\n                 * Encodes the specified RenewFlightEndpointRequest message. Does not implicitly {@link arrow.flight.protocol.RenewFlightEndpointRequest.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.RenewFlightEndpointRequest\n                 * @static\n                 * @param {arrow.flight.protocol.IRenewFlightEndpointRequest} message RenewFlightEndpointRequest message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                RenewFlightEndpointRequest.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.endpoint != null && Object.hasOwnProperty.call(message, \"endpoint\"))\n                        $root.arrow.flight.protocol.FlightEndpoint.encode(message.endpoint, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified RenewFlightEndpointRequest message, length delimited. Does not implicitly {@link arrow.flight.protocol.RenewFlightEndpointRequest.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.RenewFlightEndpointRequest\n                 * @static\n                 * @param {arrow.flight.protocol.IRenewFlightEndpointRequest} message RenewFlightEndpointRequest message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                RenewFlightEndpointRequest.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a RenewFlightEndpointRequest message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.RenewFlightEndpointRequest\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 {arrow.flight.protocol.RenewFlightEndpointRequest} RenewFlightEndpointRequest\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                RenewFlightEndpointRequest.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.arrow.flight.protocol.RenewFlightEndpointRequest();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.endpoint = $root.arrow.flight.protocol.FlightEndpoint.decode(reader, reader.uint32());\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a RenewFlightEndpointRequest message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.RenewFlightEndpointRequest\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.RenewFlightEndpointRequest} RenewFlightEndpointRequest\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                RenewFlightEndpointRequest.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 RenewFlightEndpointRequest message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.RenewFlightEndpointRequest\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                RenewFlightEndpointRequest.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.endpoint != null && message.hasOwnProperty(\"endpoint\")) {\n                        var error = $root.arrow.flight.protocol.FlightEndpoint.verify(message.endpoint);\n                        if (error)\n                            return \"endpoint.\" + error;\n                    }\n                    return null;\n                };\n\n                /**\n                 * Creates a RenewFlightEndpointRequest message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.RenewFlightEndpointRequest\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.RenewFlightEndpointRequest} RenewFlightEndpointRequest\n                 */\n                RenewFlightEndpointRequest.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.RenewFlightEndpointRequest)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.RenewFlightEndpointRequest();\n                    if (object.endpoint != null) {\n                        if (typeof object.endpoint !== \"object\")\n                            throw TypeError(\".arrow.flight.protocol.RenewFlightEndpointRequest.endpoint: object expected\");\n                        message.endpoint = $root.arrow.flight.protocol.FlightEndpoint.fromObject(object.endpoint);\n                    }\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a RenewFlightEndpointRequest message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.RenewFlightEndpointRequest\n                 * @static\n                 * @param {arrow.flight.protocol.RenewFlightEndpointRequest} message RenewFlightEndpointRequest\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                RenewFlightEndpointRequest.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults)\n                        object.endpoint = null;\n                    if (message.endpoint != null && message.hasOwnProperty(\"endpoint\"))\n                        object.endpoint = $root.arrow.flight.protocol.FlightEndpoint.toObject(message.endpoint, options);\n                    return object;\n                };\n\n                /**\n                 * Converts this RenewFlightEndpointRequest to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.RenewFlightEndpointRequest\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                RenewFlightEndpointRequest.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for RenewFlightEndpointRequest\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.RenewFlightEndpointRequest\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                RenewFlightEndpointRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.RenewFlightEndpointRequest\";\n                };\n\n                return RenewFlightEndpointRequest;\n            })();\n\n            protocol.FlightData = (function() {\n\n                /**\n                 * Properties of a FlightData.\n                 * @memberof arrow.flight.protocol\n                 * @interface IFlightData\n                 * @property {arrow.flight.protocol.IFlightDescriptor|null} [flightDescriptor] FlightData flightDescriptor\n                 * @property {Uint8Array|null} [dataHeader] FlightData dataHeader\n                 * @property {Uint8Array|null} [appMetadata] FlightData appMetadata\n                 * @property {Uint8Array|null} [dataBody] FlightData dataBody\n                 */\n\n                /**\n                 * Constructs a new FlightData.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a FlightData.\n                 * @implements IFlightData\n                 * @constructor\n                 * @param {arrow.flight.protocol.IFlightData=} [properties] Properties to set\n                 */\n                function FlightData(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                 * FlightData flightDescriptor.\n                 * @member {arrow.flight.protocol.IFlightDescriptor|null|undefined} flightDescriptor\n                 * @memberof arrow.flight.protocol.FlightData\n                 * @instance\n                 */\n                FlightData.prototype.flightDescriptor = null;\n\n                /**\n                 * FlightData dataHeader.\n                 * @member {Uint8Array} dataHeader\n                 * @memberof arrow.flight.protocol.FlightData\n                 * @instance\n                 */\n                FlightData.prototype.dataHeader = $util.newBuffer([]);\n\n                /**\n                 * FlightData appMetadata.\n                 * @member {Uint8Array} appMetadata\n                 * @memberof arrow.flight.protocol.FlightData\n                 * @instance\n                 */\n                FlightData.prototype.appMetadata = $util.newBuffer([]);\n\n                /**\n                 * FlightData dataBody.\n                 * @member {Uint8Array} dataBody\n                 * @memberof arrow.flight.protocol.FlightData\n                 * @instance\n                 */\n                FlightData.prototype.dataBody = $util.newBuffer([]);\n\n                /**\n                 * Creates a new FlightData instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.FlightData\n                 * @static\n                 * @param {arrow.flight.protocol.IFlightData=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.FlightData} FlightData instance\n                 */\n                FlightData.create = function create(properties) {\n                    return new FlightData(properties);\n                };\n\n                /**\n                 * Encodes the specified FlightData message. Does not implicitly {@link arrow.flight.protocol.FlightData.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.FlightData\n                 * @static\n                 * @param {arrow.flight.protocol.IFlightData} message FlightData message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                FlightData.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.flightDescriptor != null && Object.hasOwnProperty.call(message, \"flightDescriptor\"))\n                        $root.arrow.flight.protocol.FlightDescriptor.encode(message.flightDescriptor, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n                    if (message.dataHeader != null && Object.hasOwnProperty.call(message, \"dataHeader\"))\n                        writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.dataHeader);\n                    if (message.appMetadata != null && Object.hasOwnProperty.call(message, \"appMetadata\"))\n                        writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.appMetadata);\n                    if (message.dataBody != null && Object.hasOwnProperty.call(message, \"dataBody\"))\n                        writer.uint32(/* id 1000, wireType 2 =*/8002).bytes(message.dataBody);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified FlightData message, length delimited. Does not implicitly {@link arrow.flight.protocol.FlightData.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.FlightData\n                 * @static\n                 * @param {arrow.flight.protocol.IFlightData} message FlightData message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                FlightData.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a FlightData message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.FlightData\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 {arrow.flight.protocol.FlightData} FlightData\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                FlightData.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.arrow.flight.protocol.FlightData();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.flightDescriptor = $root.arrow.flight.protocol.FlightDescriptor.decode(reader, reader.uint32());\n                                break;\n                            }\n                        case 2: {\n                                message.dataHeader = reader.bytes();\n                                break;\n                            }\n                        case 3: {\n                                message.appMetadata = reader.bytes();\n                                break;\n                            }\n                        case 1000: {\n                                message.dataBody = reader.bytes();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a FlightData message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.FlightData\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.FlightData} FlightData\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                FlightData.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 FlightData message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.FlightData\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                FlightData.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.flightDescriptor != null && message.hasOwnProperty(\"flightDescriptor\")) {\n                        var error = $root.arrow.flight.protocol.FlightDescriptor.verify(message.flightDescriptor);\n                        if (error)\n                            return \"flightDescriptor.\" + error;\n                    }\n                    if (message.dataHeader != null && message.hasOwnProperty(\"dataHeader\"))\n                        if (!(message.dataHeader && typeof message.dataHeader.length === \"number\" || $util.isString(message.dataHeader)))\n                            return \"dataHeader: buffer expected\";\n                    if (message.appMetadata != null && message.hasOwnProperty(\"appMetadata\"))\n                        if (!(message.appMetadata && typeof message.appMetadata.length === \"number\" || $util.isString(message.appMetadata)))\n                            return \"appMetadata: buffer expected\";\n                    if (message.dataBody != null && message.hasOwnProperty(\"dataBody\"))\n                        if (!(message.dataBody && typeof message.dataBody.length === \"number\" || $util.isString(message.dataBody)))\n                            return \"dataBody: buffer expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a FlightData message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.FlightData\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.FlightData} FlightData\n                 */\n                FlightData.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.FlightData)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.FlightData();\n                    if (object.flightDescriptor != null) {\n                        if (typeof object.flightDescriptor !== \"object\")\n                            throw TypeError(\".arrow.flight.protocol.FlightData.flightDescriptor: object expected\");\n                        message.flightDescriptor = $root.arrow.flight.protocol.FlightDescriptor.fromObject(object.flightDescriptor);\n                    }\n                    if (object.dataHeader != null)\n                        if (typeof object.dataHeader === \"string\")\n                            $util.base64.decode(object.dataHeader, message.dataHeader = $util.newBuffer($util.base64.length(object.dataHeader)), 0);\n                        else if (object.dataHeader.length >= 0)\n                            message.dataHeader = object.dataHeader;\n                    if (object.appMetadata != null)\n                        if (typeof object.appMetadata === \"string\")\n                            $util.base64.decode(object.appMetadata, message.appMetadata = $util.newBuffer($util.base64.length(object.appMetadata)), 0);\n                        else if (object.appMetadata.length >= 0)\n                            message.appMetadata = object.appMetadata;\n                    if (object.dataBody != null)\n                        if (typeof object.dataBody === \"string\")\n                            $util.base64.decode(object.dataBody, message.dataBody = $util.newBuffer($util.base64.length(object.dataBody)), 0);\n                        else if (object.dataBody.length >= 0)\n                            message.dataBody = object.dataBody;\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a FlightData message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.FlightData\n                 * @static\n                 * @param {arrow.flight.protocol.FlightData} message FlightData\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                FlightData.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults) {\n                        object.flightDescriptor = null;\n                        if (options.bytes === String)\n                            object.dataHeader = \"\";\n                        else {\n                            object.dataHeader = [];\n                            if (options.bytes !== Array)\n                                object.dataHeader = $util.newBuffer(object.dataHeader);\n                        }\n                        if (options.bytes === String)\n                            object.appMetadata = \"\";\n                        else {\n                            object.appMetadata = [];\n                            if (options.bytes !== Array)\n                                object.appMetadata = $util.newBuffer(object.appMetadata);\n                        }\n                        if (options.bytes === String)\n                            object.dataBody = \"\";\n                        else {\n                            object.dataBody = [];\n                            if (options.bytes !== Array)\n                                object.dataBody = $util.newBuffer(object.dataBody);\n                        }\n                    }\n                    if (message.flightDescriptor != null && message.hasOwnProperty(\"flightDescriptor\"))\n                        object.flightDescriptor = $root.arrow.flight.protocol.FlightDescriptor.toObject(message.flightDescriptor, options);\n                    if (message.dataHeader != null && message.hasOwnProperty(\"dataHeader\"))\n                        object.dataHeader = options.bytes === String ? $util.base64.encode(message.dataHeader, 0, message.dataHeader.length) : options.bytes === Array ? Array.prototype.slice.call(message.dataHeader) : message.dataHeader;\n                    if (message.appMetadata != null && message.hasOwnProperty(\"appMetadata\"))\n                        object.appMetadata = options.bytes === String ? $util.base64.encode(message.appMetadata, 0, message.appMetadata.length) : options.bytes === Array ? Array.prototype.slice.call(message.appMetadata) : message.appMetadata;\n                    if (message.dataBody != null && message.hasOwnProperty(\"dataBody\"))\n                        object.dataBody = options.bytes === String ? $util.base64.encode(message.dataBody, 0, message.dataBody.length) : options.bytes === Array ? Array.prototype.slice.call(message.dataBody) : message.dataBody;\n                    return object;\n                };\n\n                /**\n                 * Converts this FlightData to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.FlightData\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                FlightData.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for FlightData\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.FlightData\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                FlightData.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.FlightData\";\n                };\n\n                return FlightData;\n            })();\n\n            protocol.PutResult = (function() {\n\n                /**\n                 * Properties of a PutResult.\n                 * @memberof arrow.flight.protocol\n                 * @interface IPutResult\n                 * @property {Uint8Array|null} [appMetadata] PutResult appMetadata\n                 */\n\n                /**\n                 * Constructs a new PutResult.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc The response message associated with the submission of a DoPut.\n                 * @implements IPutResult\n                 * @constructor\n                 * @param {arrow.flight.protocol.IPutResult=} [properties] Properties to set\n                 */\n                function PutResult(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                 * PutResult appMetadata.\n                 * @member {Uint8Array} appMetadata\n                 * @memberof arrow.flight.protocol.PutResult\n                 * @instance\n                 */\n                PutResult.prototype.appMetadata = $util.newBuffer([]);\n\n                /**\n                 * Creates a new PutResult instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.PutResult\n                 * @static\n                 * @param {arrow.flight.protocol.IPutResult=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.PutResult} PutResult instance\n                 */\n                PutResult.create = function create(properties) {\n                    return new PutResult(properties);\n                };\n\n                /**\n                 * Encodes the specified PutResult message. Does not implicitly {@link arrow.flight.protocol.PutResult.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.PutResult\n                 * @static\n                 * @param {arrow.flight.protocol.IPutResult} message PutResult message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                PutResult.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.appMetadata != null && Object.hasOwnProperty.call(message, \"appMetadata\"))\n                        writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.appMetadata);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified PutResult message, length delimited. Does not implicitly {@link arrow.flight.protocol.PutResult.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.PutResult\n                 * @static\n                 * @param {arrow.flight.protocol.IPutResult} message PutResult message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                PutResult.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a PutResult message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.PutResult\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 {arrow.flight.protocol.PutResult} PutResult\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                PutResult.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.arrow.flight.protocol.PutResult();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.appMetadata = reader.bytes();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a PutResult message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.PutResult\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.PutResult} PutResult\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                PutResult.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 PutResult message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.PutResult\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                PutResult.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.appMetadata != null && message.hasOwnProperty(\"appMetadata\"))\n                        if (!(message.appMetadata && typeof message.appMetadata.length === \"number\" || $util.isString(message.appMetadata)))\n                            return \"appMetadata: buffer expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a PutResult message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.PutResult\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.PutResult} PutResult\n                 */\n                PutResult.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.PutResult)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.PutResult();\n                    if (object.appMetadata != null)\n                        if (typeof object.appMetadata === \"string\")\n                            $util.base64.decode(object.appMetadata, message.appMetadata = $util.newBuffer($util.base64.length(object.appMetadata)), 0);\n                        else if (object.appMetadata.length >= 0)\n                            message.appMetadata = object.appMetadata;\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a PutResult message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.PutResult\n                 * @static\n                 * @param {arrow.flight.protocol.PutResult} message PutResult\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                PutResult.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults)\n                        if (options.bytes === String)\n                            object.appMetadata = \"\";\n                        else {\n                            object.appMetadata = [];\n                            if (options.bytes !== Array)\n                                object.appMetadata = $util.newBuffer(object.appMetadata);\n                        }\n                    if (message.appMetadata != null && message.hasOwnProperty(\"appMetadata\"))\n                        object.appMetadata = options.bytes === String ? $util.base64.encode(message.appMetadata, 0, message.appMetadata.length) : options.bytes === Array ? Array.prototype.slice.call(message.appMetadata) : message.appMetadata;\n                    return object;\n                };\n\n                /**\n                 * Converts this PutResult to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.PutResult\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                PutResult.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for PutResult\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.PutResult\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                PutResult.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.PutResult\";\n                };\n\n                return PutResult;\n            })();\n\n            protocol.SessionOptionValue = (function() {\n\n                /**\n                 * Properties of a SessionOptionValue.\n                 * @memberof arrow.flight.protocol\n                 * @interface ISessionOptionValue\n                 * @property {string|null} [stringValue] SessionOptionValue stringValue\n                 * @property {boolean|null} [boolValue] SessionOptionValue boolValue\n                 * @property {number|Long|null} [int64Value] SessionOptionValue int64Value\n                 * @property {number|null} [doubleValue] SessionOptionValue doubleValue\n                 * @property {arrow.flight.protocol.SessionOptionValue.IStringListValue|null} [stringListValue] SessionOptionValue stringListValue\n                 */\n\n                /**\n                 * Constructs a new SessionOptionValue.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a SessionOptionValue.\n                 * @implements ISessionOptionValue\n                 * @constructor\n                 * @param {arrow.flight.protocol.ISessionOptionValue=} [properties] Properties to set\n                 */\n                function SessionOptionValue(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                 * SessionOptionValue stringValue.\n                 * @member {string|null|undefined} stringValue\n                 * @memberof arrow.flight.protocol.SessionOptionValue\n                 * @instance\n                 */\n                SessionOptionValue.prototype.stringValue = null;\n\n                /**\n                 * SessionOptionValue boolValue.\n                 * @member {boolean|null|undefined} boolValue\n                 * @memberof arrow.flight.protocol.SessionOptionValue\n                 * @instance\n                 */\n                SessionOptionValue.prototype.boolValue = null;\n\n                /**\n                 * SessionOptionValue int64Value.\n                 * @member {number|Long|null|undefined} int64Value\n                 * @memberof arrow.flight.protocol.SessionOptionValue\n                 * @instance\n                 */\n                SessionOptionValue.prototype.int64Value = null;\n\n                /**\n                 * SessionOptionValue doubleValue.\n                 * @member {number|null|undefined} doubleValue\n                 * @memberof arrow.flight.protocol.SessionOptionValue\n                 * @instance\n                 */\n                SessionOptionValue.prototype.doubleValue = null;\n\n                /**\n                 * SessionOptionValue stringListValue.\n                 * @member {arrow.flight.protocol.SessionOptionValue.IStringListValue|null|undefined} stringListValue\n                 * @memberof arrow.flight.protocol.SessionOptionValue\n                 * @instance\n                 */\n                SessionOptionValue.prototype.stringListValue = null;\n\n                // OneOf field names bound to virtual getters and setters\n                var $oneOfFields;\n\n                /**\n                 * SessionOptionValue optionValue.\n                 * @member {\"stringValue\"|\"boolValue\"|\"int64Value\"|\"doubleValue\"|\"stringListValue\"|undefined} optionValue\n                 * @memberof arrow.flight.protocol.SessionOptionValue\n                 * @instance\n                 */\n                Object.defineProperty(SessionOptionValue.prototype, \"optionValue\", {\n                    get: $util.oneOfGetter($oneOfFields = [\"stringValue\", \"boolValue\", \"int64Value\", \"doubleValue\", \"stringListValue\"]),\n                    set: $util.oneOfSetter($oneOfFields)\n                });\n\n                /**\n                 * Creates a new SessionOptionValue instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.SessionOptionValue\n                 * @static\n                 * @param {arrow.flight.protocol.ISessionOptionValue=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.SessionOptionValue} SessionOptionValue instance\n                 */\n                SessionOptionValue.create = function create(properties) {\n                    return new SessionOptionValue(properties);\n                };\n\n                /**\n                 * Encodes the specified SessionOptionValue message. Does not implicitly {@link arrow.flight.protocol.SessionOptionValue.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.SessionOptionValue\n                 * @static\n                 * @param {arrow.flight.protocol.ISessionOptionValue} message SessionOptionValue message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                SessionOptionValue.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.stringValue != null && Object.hasOwnProperty.call(message, \"stringValue\"))\n                        writer.uint32(/* id 1, wireType 2 =*/10).string(message.stringValue);\n                    if (message.boolValue != null && Object.hasOwnProperty.call(message, \"boolValue\"))\n                        writer.uint32(/* id 2, wireType 0 =*/16).bool(message.boolValue);\n                    if (message.int64Value != null && Object.hasOwnProperty.call(message, \"int64Value\"))\n                        writer.uint32(/* id 3, wireType 1 =*/25).sfixed64(message.int64Value);\n                    if (message.doubleValue != null && Object.hasOwnProperty.call(message, \"doubleValue\"))\n                        writer.uint32(/* id 4, wireType 1 =*/33).double(message.doubleValue);\n                    if (message.stringListValue != null && Object.hasOwnProperty.call(message, \"stringListValue\"))\n                        $root.arrow.flight.protocol.SessionOptionValue.StringListValue.encode(message.stringListValue, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified SessionOptionValue message, length delimited. Does not implicitly {@link arrow.flight.protocol.SessionOptionValue.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.SessionOptionValue\n                 * @static\n                 * @param {arrow.flight.protocol.ISessionOptionValue} message SessionOptionValue message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                SessionOptionValue.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a SessionOptionValue message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.SessionOptionValue\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 {arrow.flight.protocol.SessionOptionValue} SessionOptionValue\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                SessionOptionValue.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.arrow.flight.protocol.SessionOptionValue();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.stringValue = reader.string();\n                                break;\n                            }\n                        case 2: {\n                                message.boolValue = reader.bool();\n                                break;\n                            }\n                        case 3: {\n                                message.int64Value = reader.sfixed64();\n                                break;\n                            }\n                        case 4: {\n                                message.doubleValue = reader.double();\n                                break;\n                            }\n                        case 5: {\n                                message.stringListValue = $root.arrow.flight.protocol.SessionOptionValue.StringListValue.decode(reader, reader.uint32());\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a SessionOptionValue message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.SessionOptionValue\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.SessionOptionValue} SessionOptionValue\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                SessionOptionValue.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 SessionOptionValue message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.SessionOptionValue\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                SessionOptionValue.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    var properties = {};\n                    if (message.stringValue != null && message.hasOwnProperty(\"stringValue\")) {\n                        properties.optionValue = 1;\n                        if (!$util.isString(message.stringValue))\n                            return \"stringValue: string expected\";\n                    }\n                    if (message.boolValue != null && message.hasOwnProperty(\"boolValue\")) {\n                        if (properties.optionValue === 1)\n                            return \"optionValue: multiple values\";\n                        properties.optionValue = 1;\n                        if (typeof message.boolValue !== \"boolean\")\n                            return \"boolValue: boolean expected\";\n                    }\n                    if (message.int64Value != null && message.hasOwnProperty(\"int64Value\")) {\n                        if (properties.optionValue === 1)\n                            return \"optionValue: multiple values\";\n                        properties.optionValue = 1;\n                        if (!$util.isInteger(message.int64Value) && !(message.int64Value && $util.isInteger(message.int64Value.low) && $util.isInteger(message.int64Value.high)))\n                            return \"int64Value: integer|Long expected\";\n                    }\n                    if (message.doubleValue != null && message.hasOwnProperty(\"doubleValue\")) {\n                        if (properties.optionValue === 1)\n                            return \"optionValue: multiple values\";\n                        properties.optionValue = 1;\n                        if (typeof message.doubleValue !== \"number\")\n                            return \"doubleValue: number expected\";\n                    }\n                    if (message.stringListValue != null && message.hasOwnProperty(\"stringListValue\")) {\n                        if (properties.optionValue === 1)\n                            return \"optionValue: multiple values\";\n                        properties.optionValue = 1;\n                        {\n                            var error = $root.arrow.flight.protocol.SessionOptionValue.StringListValue.verify(message.stringListValue);\n                            if (error)\n                                return \"stringListValue.\" + error;\n                        }\n                    }\n                    return null;\n                };\n\n                /**\n                 * Creates a SessionOptionValue message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.SessionOptionValue\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.SessionOptionValue} SessionOptionValue\n                 */\n                SessionOptionValue.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.SessionOptionValue)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.SessionOptionValue();\n                    if (object.stringValue != null)\n                        message.stringValue = String(object.stringValue);\n                    if (object.boolValue != null)\n                        message.boolValue = Boolean(object.boolValue);\n                    if (object.int64Value != null)\n                        if ($util.Long)\n                            (message.int64Value = $util.Long.fromValue(object.int64Value)).unsigned = false;\n                        else if (typeof object.int64Value === \"string\")\n                            message.int64Value = parseInt(object.int64Value, 10);\n                        else if (typeof object.int64Value === \"number\")\n                            message.int64Value = object.int64Value;\n                        else if (typeof object.int64Value === \"object\")\n                            message.int64Value = new $util.LongBits(object.int64Value.low >>> 0, object.int64Value.high >>> 0).toNumber();\n                    if (object.doubleValue != null)\n                        message.doubleValue = Number(object.doubleValue);\n                    if (object.stringListValue != null) {\n                        if (typeof object.stringListValue !== \"object\")\n                            throw TypeError(\".arrow.flight.protocol.SessionOptionValue.stringListValue: object expected\");\n                        message.stringListValue = $root.arrow.flight.protocol.SessionOptionValue.StringListValue.fromObject(object.stringListValue);\n                    }\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a SessionOptionValue message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.SessionOptionValue\n                 * @static\n                 * @param {arrow.flight.protocol.SessionOptionValue} message SessionOptionValue\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                SessionOptionValue.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (message.stringValue != null && message.hasOwnProperty(\"stringValue\")) {\n                        object.stringValue = message.stringValue;\n                        if (options.oneofs)\n                            object.optionValue = \"stringValue\";\n                    }\n                    if (message.boolValue != null && message.hasOwnProperty(\"boolValue\")) {\n                        object.boolValue = message.boolValue;\n                        if (options.oneofs)\n                            object.optionValue = \"boolValue\";\n                    }\n                    if (message.int64Value != null && message.hasOwnProperty(\"int64Value\")) {\n                        if (typeof message.int64Value === \"number\")\n                            object.int64Value = options.longs === String ? String(message.int64Value) : message.int64Value;\n                        else\n                            object.int64Value = options.longs === String ? $util.Long.prototype.toString.call(message.int64Value) : options.longs === Number ? new $util.LongBits(message.int64Value.low >>> 0, message.int64Value.high >>> 0).toNumber() : message.int64Value;\n                        if (options.oneofs)\n                            object.optionValue = \"int64Value\";\n                    }\n                    if (message.doubleValue != null && message.hasOwnProperty(\"doubleValue\")) {\n                        object.doubleValue = options.json && !isFinite(message.doubleValue) ? String(message.doubleValue) : message.doubleValue;\n                        if (options.oneofs)\n                            object.optionValue = \"doubleValue\";\n                    }\n                    if (message.stringListValue != null && message.hasOwnProperty(\"stringListValue\")) {\n                        object.stringListValue = $root.arrow.flight.protocol.SessionOptionValue.StringListValue.toObject(message.stringListValue, options);\n                        if (options.oneofs)\n                            object.optionValue = \"stringListValue\";\n                    }\n                    return object;\n                };\n\n                /**\n                 * Converts this SessionOptionValue to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.SessionOptionValue\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                SessionOptionValue.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for SessionOptionValue\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.SessionOptionValue\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                SessionOptionValue.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.SessionOptionValue\";\n                };\n\n                SessionOptionValue.StringListValue = (function() {\n\n                    /**\n                     * Properties of a StringListValue.\n                     * @memberof arrow.flight.protocol.SessionOptionValue\n                     * @interface IStringListValue\n                     * @property {Array.<string>|null} [values] StringListValue values\n                     */\n\n                    /**\n                     * Constructs a new StringListValue.\n                     * @memberof arrow.flight.protocol.SessionOptionValue\n                     * @classdesc Represents a StringListValue.\n                     * @implements IStringListValue\n                     * @constructor\n                     * @param {arrow.flight.protocol.SessionOptionValue.IStringListValue=} [properties] Properties to set\n                     */\n                    function StringListValue(properties) {\n                        this.values = [];\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                     * StringListValue values.\n                     * @member {Array.<string>} values\n                     * @memberof arrow.flight.protocol.SessionOptionValue.StringListValue\n                     * @instance\n                     */\n                    StringListValue.prototype.values = $util.emptyArray;\n\n                    /**\n                     * Creates a new StringListValue instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.SessionOptionValue.StringListValue\n                     * @static\n                     * @param {arrow.flight.protocol.SessionOptionValue.IStringListValue=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.SessionOptionValue.StringListValue} StringListValue instance\n                     */\n                    StringListValue.create = function create(properties) {\n                        return new StringListValue(properties);\n                    };\n\n                    /**\n                     * Encodes the specified StringListValue message. Does not implicitly {@link arrow.flight.protocol.SessionOptionValue.StringListValue.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.SessionOptionValue.StringListValue\n                     * @static\n                     * @param {arrow.flight.protocol.SessionOptionValue.IStringListValue} message StringListValue message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    StringListValue.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.values != null && message.values.length)\n                            for (var i = 0; i < message.values.length; ++i)\n                                writer.uint32(/* id 1, wireType 2 =*/10).string(message.values[i]);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified StringListValue message, length delimited. Does not implicitly {@link arrow.flight.protocol.SessionOptionValue.StringListValue.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.SessionOptionValue.StringListValue\n                     * @static\n                     * @param {arrow.flight.protocol.SessionOptionValue.IStringListValue} message StringListValue message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    StringListValue.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a StringListValue message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.SessionOptionValue.StringListValue\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 {arrow.flight.protocol.SessionOptionValue.StringListValue} StringListValue\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                    StringListValue.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.arrow.flight.protocol.SessionOptionValue.StringListValue();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    if (!(message.values && message.values.length))\n                                        message.values = [];\n                                    message.values.push(reader.string());\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a StringListValue message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.SessionOptionValue.StringListValue\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.SessionOptionValue.StringListValue} StringListValue\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                    StringListValue.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 StringListValue message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.SessionOptionValue.StringListValue\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                    StringListValue.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.values != null && message.hasOwnProperty(\"values\")) {\n                            if (!Array.isArray(message.values))\n                                return \"values: array expected\";\n                            for (var i = 0; i < message.values.length; ++i)\n                                if (!$util.isString(message.values[i]))\n                                    return \"values: string[] expected\";\n                        }\n                        return null;\n                    };\n\n                    /**\n                     * Creates a StringListValue message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.SessionOptionValue.StringListValue\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.SessionOptionValue.StringListValue} StringListValue\n                     */\n                    StringListValue.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.SessionOptionValue.StringListValue)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.SessionOptionValue.StringListValue();\n                        if (object.values) {\n                            if (!Array.isArray(object.values))\n                                throw TypeError(\".arrow.flight.protocol.SessionOptionValue.StringListValue.values: array expected\");\n                            message.values = [];\n                            for (var i = 0; i < object.values.length; ++i)\n                                message.values[i] = String(object.values[i]);\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a StringListValue message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.SessionOptionValue.StringListValue\n                     * @static\n                     * @param {arrow.flight.protocol.SessionOptionValue.StringListValue} message StringListValue\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    StringListValue.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.arrays || options.defaults)\n                            object.values = [];\n                        if (message.values && message.values.length) {\n                            object.values = [];\n                            for (var j = 0; j < message.values.length; ++j)\n                                object.values[j] = message.values[j];\n                        }\n                        return object;\n                    };\n\n                    /**\n                     * Converts this StringListValue to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.SessionOptionValue.StringListValue\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    StringListValue.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for StringListValue\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.SessionOptionValue.StringListValue\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    StringListValue.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.SessionOptionValue.StringListValue\";\n                    };\n\n                    return StringListValue;\n                })();\n\n                return SessionOptionValue;\n            })();\n\n            protocol.SetSessionOptionsRequest = (function() {\n\n                /**\n                 * Properties of a SetSessionOptionsRequest.\n                 * @memberof arrow.flight.protocol\n                 * @interface ISetSessionOptionsRequest\n                 * @property {Object.<string,arrow.flight.protocol.ISessionOptionValue>|null} [sessionOptions] SetSessionOptionsRequest sessionOptions\n                 */\n\n                /**\n                 * Constructs a new SetSessionOptionsRequest.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a SetSessionOptionsRequest.\n                 * @implements ISetSessionOptionsRequest\n                 * @constructor\n                 * @param {arrow.flight.protocol.ISetSessionOptionsRequest=} [properties] Properties to set\n                 */\n                function SetSessionOptionsRequest(properties) {\n                    this.sessionOptions = {};\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                 * SetSessionOptionsRequest sessionOptions.\n                 * @member {Object.<string,arrow.flight.protocol.ISessionOptionValue>} sessionOptions\n                 * @memberof arrow.flight.protocol.SetSessionOptionsRequest\n                 * @instance\n                 */\n                SetSessionOptionsRequest.prototype.sessionOptions = $util.emptyObject;\n\n                /**\n                 * Creates a new SetSessionOptionsRequest instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.SetSessionOptionsRequest\n                 * @static\n                 * @param {arrow.flight.protocol.ISetSessionOptionsRequest=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.SetSessionOptionsRequest} SetSessionOptionsRequest instance\n                 */\n                SetSessionOptionsRequest.create = function create(properties) {\n                    return new SetSessionOptionsRequest(properties);\n                };\n\n                /**\n                 * Encodes the specified SetSessionOptionsRequest message. Does not implicitly {@link arrow.flight.protocol.SetSessionOptionsRequest.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.SetSessionOptionsRequest\n                 * @static\n                 * @param {arrow.flight.protocol.ISetSessionOptionsRequest} message SetSessionOptionsRequest message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                SetSessionOptionsRequest.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.sessionOptions != null && Object.hasOwnProperty.call(message, \"sessionOptions\"))\n                        for (var keys = Object.keys(message.sessionOptions), i = 0; i < keys.length; ++i) {\n                            writer.uint32(/* id 1, wireType 2 =*/10).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n                            $root.arrow.flight.protocol.SessionOptionValue.encode(message.sessionOptions[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n                        }\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified SetSessionOptionsRequest message, length delimited. Does not implicitly {@link arrow.flight.protocol.SetSessionOptionsRequest.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.SetSessionOptionsRequest\n                 * @static\n                 * @param {arrow.flight.protocol.ISetSessionOptionsRequest} message SetSessionOptionsRequest message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                SetSessionOptionsRequest.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a SetSessionOptionsRequest message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.SetSessionOptionsRequest\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 {arrow.flight.protocol.SetSessionOptionsRequest} SetSessionOptionsRequest\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                SetSessionOptionsRequest.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.arrow.flight.protocol.SetSessionOptionsRequest(), key, value;\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                if (message.sessionOptions === $util.emptyObject)\n                                    message.sessionOptions = {};\n                                var end2 = reader.uint32() + reader.pos;\n                                key = \"\";\n                                value = null;\n                                while (reader.pos < end2) {\n                                    var tag2 = reader.uint32();\n                                    switch (tag2 >>> 3) {\n                                    case 1:\n                                        key = reader.string();\n                                        break;\n                                    case 2:\n                                        value = $root.arrow.flight.protocol.SessionOptionValue.decode(reader, reader.uint32());\n                                        break;\n                                    default:\n                                        reader.skipType(tag2 & 7);\n                                        break;\n                                    }\n                                }\n                                message.sessionOptions[key] = value;\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a SetSessionOptionsRequest message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.SetSessionOptionsRequest\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.SetSessionOptionsRequest} SetSessionOptionsRequest\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                SetSessionOptionsRequest.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 SetSessionOptionsRequest message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.SetSessionOptionsRequest\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                SetSessionOptionsRequest.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.sessionOptions != null && message.hasOwnProperty(\"sessionOptions\")) {\n                        if (!$util.isObject(message.sessionOptions))\n                            return \"sessionOptions: object expected\";\n                        var key = Object.keys(message.sessionOptions);\n                        for (var i = 0; i < key.length; ++i) {\n                            var error = $root.arrow.flight.protocol.SessionOptionValue.verify(message.sessionOptions[key[i]]);\n                            if (error)\n                                return \"sessionOptions.\" + error;\n                        }\n                    }\n                    return null;\n                };\n\n                /**\n                 * Creates a SetSessionOptionsRequest message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.SetSessionOptionsRequest\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.SetSessionOptionsRequest} SetSessionOptionsRequest\n                 */\n                SetSessionOptionsRequest.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.SetSessionOptionsRequest)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.SetSessionOptionsRequest();\n                    if (object.sessionOptions) {\n                        if (typeof object.sessionOptions !== \"object\")\n                            throw TypeError(\".arrow.flight.protocol.SetSessionOptionsRequest.sessionOptions: object expected\");\n                        message.sessionOptions = {};\n                        for (var keys = Object.keys(object.sessionOptions), i = 0; i < keys.length; ++i) {\n                            if (typeof object.sessionOptions[keys[i]] !== \"object\")\n                                throw TypeError(\".arrow.flight.protocol.SetSessionOptionsRequest.sessionOptions: object expected\");\n                            message.sessionOptions[keys[i]] = $root.arrow.flight.protocol.SessionOptionValue.fromObject(object.sessionOptions[keys[i]]);\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a SetSessionOptionsRequest message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.SetSessionOptionsRequest\n                 * @static\n                 * @param {arrow.flight.protocol.SetSessionOptionsRequest} message SetSessionOptionsRequest\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                SetSessionOptionsRequest.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.objects || options.defaults)\n                        object.sessionOptions = {};\n                    var keys2;\n                    if (message.sessionOptions && (keys2 = Object.keys(message.sessionOptions)).length) {\n                        object.sessionOptions = {};\n                        for (var j = 0; j < keys2.length; ++j)\n                            object.sessionOptions[keys2[j]] = $root.arrow.flight.protocol.SessionOptionValue.toObject(message.sessionOptions[keys2[j]], options);\n                    }\n                    return object;\n                };\n\n                /**\n                 * Converts this SetSessionOptionsRequest to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.SetSessionOptionsRequest\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                SetSessionOptionsRequest.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for SetSessionOptionsRequest\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.SetSessionOptionsRequest\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                SetSessionOptionsRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.SetSessionOptionsRequest\";\n                };\n\n                return SetSessionOptionsRequest;\n            })();\n\n            protocol.SetSessionOptionsResult = (function() {\n\n                /**\n                 * Properties of a SetSessionOptionsResult.\n                 * @memberof arrow.flight.protocol\n                 * @interface ISetSessionOptionsResult\n                 * @property {Object.<string,arrow.flight.protocol.SetSessionOptionsResult.IError>|null} [errors] SetSessionOptionsResult errors\n                 */\n\n                /**\n                 * Constructs a new SetSessionOptionsResult.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a SetSessionOptionsResult.\n                 * @implements ISetSessionOptionsResult\n                 * @constructor\n                 * @param {arrow.flight.protocol.ISetSessionOptionsResult=} [properties] Properties to set\n                 */\n                function SetSessionOptionsResult(properties) {\n                    this.errors = {};\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                 * SetSessionOptionsResult errors.\n                 * @member {Object.<string,arrow.flight.protocol.SetSessionOptionsResult.IError>} errors\n                 * @memberof arrow.flight.protocol.SetSessionOptionsResult\n                 * @instance\n                 */\n                SetSessionOptionsResult.prototype.errors = $util.emptyObject;\n\n                /**\n                 * Creates a new SetSessionOptionsResult instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.SetSessionOptionsResult\n                 * @static\n                 * @param {arrow.flight.protocol.ISetSessionOptionsResult=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.SetSessionOptionsResult} SetSessionOptionsResult instance\n                 */\n                SetSessionOptionsResult.create = function create(properties) {\n                    return new SetSessionOptionsResult(properties);\n                };\n\n                /**\n                 * Encodes the specified SetSessionOptionsResult message. Does not implicitly {@link arrow.flight.protocol.SetSessionOptionsResult.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.SetSessionOptionsResult\n                 * @static\n                 * @param {arrow.flight.protocol.ISetSessionOptionsResult} message SetSessionOptionsResult message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                SetSessionOptionsResult.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.errors != null && Object.hasOwnProperty.call(message, \"errors\"))\n                        for (var keys = Object.keys(message.errors), i = 0; i < keys.length; ++i) {\n                            writer.uint32(/* id 1, wireType 2 =*/10).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n                            $root.arrow.flight.protocol.SetSessionOptionsResult.Error.encode(message.errors[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n                        }\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified SetSessionOptionsResult message, length delimited. Does not implicitly {@link arrow.flight.protocol.SetSessionOptionsResult.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.SetSessionOptionsResult\n                 * @static\n                 * @param {arrow.flight.protocol.ISetSessionOptionsResult} message SetSessionOptionsResult message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                SetSessionOptionsResult.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a SetSessionOptionsResult message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.SetSessionOptionsResult\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 {arrow.flight.protocol.SetSessionOptionsResult} SetSessionOptionsResult\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                SetSessionOptionsResult.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.arrow.flight.protocol.SetSessionOptionsResult(), key, value;\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                if (message.errors === $util.emptyObject)\n                                    message.errors = {};\n                                var end2 = reader.uint32() + reader.pos;\n                                key = \"\";\n                                value = null;\n                                while (reader.pos < end2) {\n                                    var tag2 = reader.uint32();\n                                    switch (tag2 >>> 3) {\n                                    case 1:\n                                        key = reader.string();\n                                        break;\n                                    case 2:\n                                        value = $root.arrow.flight.protocol.SetSessionOptionsResult.Error.decode(reader, reader.uint32());\n                                        break;\n                                    default:\n                                        reader.skipType(tag2 & 7);\n                                        break;\n                                    }\n                                }\n                                message.errors[key] = value;\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a SetSessionOptionsResult message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.SetSessionOptionsResult\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.SetSessionOptionsResult} SetSessionOptionsResult\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                SetSessionOptionsResult.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 SetSessionOptionsResult message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.SetSessionOptionsResult\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                SetSessionOptionsResult.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.errors != null && message.hasOwnProperty(\"errors\")) {\n                        if (!$util.isObject(message.errors))\n                            return \"errors: object expected\";\n                        var key = Object.keys(message.errors);\n                        for (var i = 0; i < key.length; ++i) {\n                            var error = $root.arrow.flight.protocol.SetSessionOptionsResult.Error.verify(message.errors[key[i]]);\n                            if (error)\n                                return \"errors.\" + error;\n                        }\n                    }\n                    return null;\n                };\n\n                /**\n                 * Creates a SetSessionOptionsResult message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.SetSessionOptionsResult\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.SetSessionOptionsResult} SetSessionOptionsResult\n                 */\n                SetSessionOptionsResult.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.SetSessionOptionsResult)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.SetSessionOptionsResult();\n                    if (object.errors) {\n                        if (typeof object.errors !== \"object\")\n                            throw TypeError(\".arrow.flight.protocol.SetSessionOptionsResult.errors: object expected\");\n                        message.errors = {};\n                        for (var keys = Object.keys(object.errors), i = 0; i < keys.length; ++i) {\n                            if (typeof object.errors[keys[i]] !== \"object\")\n                                throw TypeError(\".arrow.flight.protocol.SetSessionOptionsResult.errors: object expected\");\n                            message.errors[keys[i]] = $root.arrow.flight.protocol.SetSessionOptionsResult.Error.fromObject(object.errors[keys[i]]);\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a SetSessionOptionsResult message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.SetSessionOptionsResult\n                 * @static\n                 * @param {arrow.flight.protocol.SetSessionOptionsResult} message SetSessionOptionsResult\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                SetSessionOptionsResult.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.objects || options.defaults)\n                        object.errors = {};\n                    var keys2;\n                    if (message.errors && (keys2 = Object.keys(message.errors)).length) {\n                        object.errors = {};\n                        for (var j = 0; j < keys2.length; ++j)\n                            object.errors[keys2[j]] = $root.arrow.flight.protocol.SetSessionOptionsResult.Error.toObject(message.errors[keys2[j]], options);\n                    }\n                    return object;\n                };\n\n                /**\n                 * Converts this SetSessionOptionsResult to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.SetSessionOptionsResult\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                SetSessionOptionsResult.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for SetSessionOptionsResult\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.SetSessionOptionsResult\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                SetSessionOptionsResult.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.SetSessionOptionsResult\";\n                };\n\n                /**\n                 * ErrorValue enum.\n                 * @name arrow.flight.protocol.SetSessionOptionsResult.ErrorValue\n                 * @enum {number}\n                 * @property {number} UNSPECIFIED=0 UNSPECIFIED value\n                 * @property {number} INVALID_NAME=1 INVALID_NAME value\n                 * @property {number} INVALID_VALUE=2 INVALID_VALUE value\n                 * @property {number} ERROR=3 ERROR value\n                 */\n                SetSessionOptionsResult.ErrorValue = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"UNSPECIFIED\"] = 0;\n                    values[valuesById[1] = \"INVALID_NAME\"] = 1;\n                    values[valuesById[2] = \"INVALID_VALUE\"] = 2;\n                    values[valuesById[3] = \"ERROR\"] = 3;\n                    return values;\n                })();\n\n                SetSessionOptionsResult.Error = (function() {\n\n                    /**\n                     * Properties of an Error.\n                     * @memberof arrow.flight.protocol.SetSessionOptionsResult\n                     * @interface IError\n                     * @property {arrow.flight.protocol.SetSessionOptionsResult.ErrorValue|null} [value] Error value\n                     */\n\n                    /**\n                     * Constructs a new Error.\n                     * @memberof arrow.flight.protocol.SetSessionOptionsResult\n                     * @classdesc Represents an Error.\n                     * @implements IError\n                     * @constructor\n                     * @param {arrow.flight.protocol.SetSessionOptionsResult.IError=} [properties] Properties to set\n                     */\n                    function Error(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                     * Error value.\n                     * @member {arrow.flight.protocol.SetSessionOptionsResult.ErrorValue} value\n                     * @memberof arrow.flight.protocol.SetSessionOptionsResult.Error\n                     * @instance\n                     */\n                    Error.prototype.value = 0;\n\n                    /**\n                     * Creates a new Error instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.SetSessionOptionsResult.Error\n                     * @static\n                     * @param {arrow.flight.protocol.SetSessionOptionsResult.IError=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.SetSessionOptionsResult.Error} Error instance\n                     */\n                    Error.create = function create(properties) {\n                        return new Error(properties);\n                    };\n\n                    /**\n                     * Encodes the specified Error message. Does not implicitly {@link arrow.flight.protocol.SetSessionOptionsResult.Error.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.SetSessionOptionsResult.Error\n                     * @static\n                     * @param {arrow.flight.protocol.SetSessionOptionsResult.IError} message Error message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    Error.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.value != null && Object.hasOwnProperty.call(message, \"value\"))\n                            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.value);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified Error message, length delimited. Does not implicitly {@link arrow.flight.protocol.SetSessionOptionsResult.Error.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.SetSessionOptionsResult.Error\n                     * @static\n                     * @param {arrow.flight.protocol.SetSessionOptionsResult.IError} message Error message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    Error.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes an Error message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.SetSessionOptionsResult.Error\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 {arrow.flight.protocol.SetSessionOptionsResult.Error} Error\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                    Error.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.arrow.flight.protocol.SetSessionOptionsResult.Error();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.value = reader.int32();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes an Error message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.SetSessionOptionsResult.Error\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.SetSessionOptionsResult.Error} Error\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                    Error.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 Error message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.SetSessionOptionsResult.Error\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                    Error.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.value != null && message.hasOwnProperty(\"value\"))\n                            switch (message.value) {\n                            default:\n                                return \"value: enum value expected\";\n                            case 0:\n                            case 1:\n                            case 2:\n                            case 3:\n                                break;\n                            }\n                        return null;\n                    };\n\n                    /**\n                     * Creates an Error message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.SetSessionOptionsResult.Error\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.SetSessionOptionsResult.Error} Error\n                     */\n                    Error.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.SetSessionOptionsResult.Error)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.SetSessionOptionsResult.Error();\n                        switch (object.value) {\n                        default:\n                            if (typeof object.value === \"number\") {\n                                message.value = object.value;\n                                break;\n                            }\n                            break;\n                        case \"UNSPECIFIED\":\n                        case 0:\n                            message.value = 0;\n                            break;\n                        case \"INVALID_NAME\":\n                        case 1:\n                            message.value = 1;\n                            break;\n                        case \"INVALID_VALUE\":\n                        case 2:\n                            message.value = 2;\n                            break;\n                        case \"ERROR\":\n                        case 3:\n                            message.value = 3;\n                            break;\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from an Error message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.SetSessionOptionsResult.Error\n                     * @static\n                     * @param {arrow.flight.protocol.SetSessionOptionsResult.Error} message Error\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    Error.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            object.value = options.enums === String ? \"UNSPECIFIED\" : 0;\n                        if (message.value != null && message.hasOwnProperty(\"value\"))\n                            object.value = options.enums === String ? $root.arrow.flight.protocol.SetSessionOptionsResult.ErrorValue[message.value] === undefined ? message.value : $root.arrow.flight.protocol.SetSessionOptionsResult.ErrorValue[message.value] : message.value;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this Error to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.SetSessionOptionsResult.Error\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    Error.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for Error\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.SetSessionOptionsResult.Error\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    Error.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.SetSessionOptionsResult.Error\";\n                    };\n\n                    return Error;\n                })();\n\n                return SetSessionOptionsResult;\n            })();\n\n            protocol.GetSessionOptionsRequest = (function() {\n\n                /**\n                 * Properties of a GetSessionOptionsRequest.\n                 * @memberof arrow.flight.protocol\n                 * @interface IGetSessionOptionsRequest\n                 */\n\n                /**\n                 * Constructs a new GetSessionOptionsRequest.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a GetSessionOptionsRequest.\n                 * @implements IGetSessionOptionsRequest\n                 * @constructor\n                 * @param {arrow.flight.protocol.IGetSessionOptionsRequest=} [properties] Properties to set\n                 */\n                function GetSessionOptionsRequest(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                 * Creates a new GetSessionOptionsRequest instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.GetSessionOptionsRequest\n                 * @static\n                 * @param {arrow.flight.protocol.IGetSessionOptionsRequest=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.GetSessionOptionsRequest} GetSessionOptionsRequest instance\n                 */\n                GetSessionOptionsRequest.create = function create(properties) {\n                    return new GetSessionOptionsRequest(properties);\n                };\n\n                /**\n                 * Encodes the specified GetSessionOptionsRequest message. Does not implicitly {@link arrow.flight.protocol.GetSessionOptionsRequest.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.GetSessionOptionsRequest\n                 * @static\n                 * @param {arrow.flight.protocol.IGetSessionOptionsRequest} message GetSessionOptionsRequest message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                GetSessionOptionsRequest.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified GetSessionOptionsRequest message, length delimited. Does not implicitly {@link arrow.flight.protocol.GetSessionOptionsRequest.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.GetSessionOptionsRequest\n                 * @static\n                 * @param {arrow.flight.protocol.IGetSessionOptionsRequest} message GetSessionOptionsRequest message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                GetSessionOptionsRequest.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a GetSessionOptionsRequest message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.GetSessionOptionsRequest\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 {arrow.flight.protocol.GetSessionOptionsRequest} GetSessionOptionsRequest\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                GetSessionOptionsRequest.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.arrow.flight.protocol.GetSessionOptionsRequest();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a GetSessionOptionsRequest message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.GetSessionOptionsRequest\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.GetSessionOptionsRequest} GetSessionOptionsRequest\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                GetSessionOptionsRequest.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 GetSessionOptionsRequest message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.GetSessionOptionsRequest\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                GetSessionOptionsRequest.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a GetSessionOptionsRequest message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.GetSessionOptionsRequest\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.GetSessionOptionsRequest} GetSessionOptionsRequest\n                 */\n                GetSessionOptionsRequest.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.GetSessionOptionsRequest)\n                        return object;\n                    return new $root.arrow.flight.protocol.GetSessionOptionsRequest();\n                };\n\n                /**\n                 * Creates a plain object from a GetSessionOptionsRequest message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.GetSessionOptionsRequest\n                 * @static\n                 * @param {arrow.flight.protocol.GetSessionOptionsRequest} message GetSessionOptionsRequest\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                GetSessionOptionsRequest.toObject = function toObject() {\n                    return {};\n                };\n\n                /**\n                 * Converts this GetSessionOptionsRequest to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.GetSessionOptionsRequest\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                GetSessionOptionsRequest.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for GetSessionOptionsRequest\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.GetSessionOptionsRequest\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                GetSessionOptionsRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.GetSessionOptionsRequest\";\n                };\n\n                return GetSessionOptionsRequest;\n            })();\n\n            protocol.GetSessionOptionsResult = (function() {\n\n                /**\n                 * Properties of a GetSessionOptionsResult.\n                 * @memberof arrow.flight.protocol\n                 * @interface IGetSessionOptionsResult\n                 * @property {Object.<string,arrow.flight.protocol.ISessionOptionValue>|null} [sessionOptions] GetSessionOptionsResult sessionOptions\n                 */\n\n                /**\n                 * Constructs a new GetSessionOptionsResult.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a GetSessionOptionsResult.\n                 * @implements IGetSessionOptionsResult\n                 * @constructor\n                 * @param {arrow.flight.protocol.IGetSessionOptionsResult=} [properties] Properties to set\n                 */\n                function GetSessionOptionsResult(properties) {\n                    this.sessionOptions = {};\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                 * GetSessionOptionsResult sessionOptions.\n                 * @member {Object.<string,arrow.flight.protocol.ISessionOptionValue>} sessionOptions\n                 * @memberof arrow.flight.protocol.GetSessionOptionsResult\n                 * @instance\n                 */\n                GetSessionOptionsResult.prototype.sessionOptions = $util.emptyObject;\n\n                /**\n                 * Creates a new GetSessionOptionsResult instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.GetSessionOptionsResult\n                 * @static\n                 * @param {arrow.flight.protocol.IGetSessionOptionsResult=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.GetSessionOptionsResult} GetSessionOptionsResult instance\n                 */\n                GetSessionOptionsResult.create = function create(properties) {\n                    return new GetSessionOptionsResult(properties);\n                };\n\n                /**\n                 * Encodes the specified GetSessionOptionsResult message. Does not implicitly {@link arrow.flight.protocol.GetSessionOptionsResult.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.GetSessionOptionsResult\n                 * @static\n                 * @param {arrow.flight.protocol.IGetSessionOptionsResult} message GetSessionOptionsResult message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                GetSessionOptionsResult.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.sessionOptions != null && Object.hasOwnProperty.call(message, \"sessionOptions\"))\n                        for (var keys = Object.keys(message.sessionOptions), i = 0; i < keys.length; ++i) {\n                            writer.uint32(/* id 1, wireType 2 =*/10).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n                            $root.arrow.flight.protocol.SessionOptionValue.encode(message.sessionOptions[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n                        }\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified GetSessionOptionsResult message, length delimited. Does not implicitly {@link arrow.flight.protocol.GetSessionOptionsResult.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.GetSessionOptionsResult\n                 * @static\n                 * @param {arrow.flight.protocol.IGetSessionOptionsResult} message GetSessionOptionsResult message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                GetSessionOptionsResult.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a GetSessionOptionsResult message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.GetSessionOptionsResult\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 {arrow.flight.protocol.GetSessionOptionsResult} GetSessionOptionsResult\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                GetSessionOptionsResult.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.arrow.flight.protocol.GetSessionOptionsResult(), key, value;\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                if (message.sessionOptions === $util.emptyObject)\n                                    message.sessionOptions = {};\n                                var end2 = reader.uint32() + reader.pos;\n                                key = \"\";\n                                value = null;\n                                while (reader.pos < end2) {\n                                    var tag2 = reader.uint32();\n                                    switch (tag2 >>> 3) {\n                                    case 1:\n                                        key = reader.string();\n                                        break;\n                                    case 2:\n                                        value = $root.arrow.flight.protocol.SessionOptionValue.decode(reader, reader.uint32());\n                                        break;\n                                    default:\n                                        reader.skipType(tag2 & 7);\n                                        break;\n                                    }\n                                }\n                                message.sessionOptions[key] = value;\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a GetSessionOptionsResult message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.GetSessionOptionsResult\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.GetSessionOptionsResult} GetSessionOptionsResult\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                GetSessionOptionsResult.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 GetSessionOptionsResult message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.GetSessionOptionsResult\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                GetSessionOptionsResult.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.sessionOptions != null && message.hasOwnProperty(\"sessionOptions\")) {\n                        if (!$util.isObject(message.sessionOptions))\n                            return \"sessionOptions: object expected\";\n                        var key = Object.keys(message.sessionOptions);\n                        for (var i = 0; i < key.length; ++i) {\n                            var error = $root.arrow.flight.protocol.SessionOptionValue.verify(message.sessionOptions[key[i]]);\n                            if (error)\n                                return \"sessionOptions.\" + error;\n                        }\n                    }\n                    return null;\n                };\n\n                /**\n                 * Creates a GetSessionOptionsResult message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.GetSessionOptionsResult\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.GetSessionOptionsResult} GetSessionOptionsResult\n                 */\n                GetSessionOptionsResult.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.GetSessionOptionsResult)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.GetSessionOptionsResult();\n                    if (object.sessionOptions) {\n                        if (typeof object.sessionOptions !== \"object\")\n                            throw TypeError(\".arrow.flight.protocol.GetSessionOptionsResult.sessionOptions: object expected\");\n                        message.sessionOptions = {};\n                        for (var keys = Object.keys(object.sessionOptions), i = 0; i < keys.length; ++i) {\n                            if (typeof object.sessionOptions[keys[i]] !== \"object\")\n                                throw TypeError(\".arrow.flight.protocol.GetSessionOptionsResult.sessionOptions: object expected\");\n                            message.sessionOptions[keys[i]] = $root.arrow.flight.protocol.SessionOptionValue.fromObject(object.sessionOptions[keys[i]]);\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a GetSessionOptionsResult message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.GetSessionOptionsResult\n                 * @static\n                 * @param {arrow.flight.protocol.GetSessionOptionsResult} message GetSessionOptionsResult\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                GetSessionOptionsResult.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.objects || options.defaults)\n                        object.sessionOptions = {};\n                    var keys2;\n                    if (message.sessionOptions && (keys2 = Object.keys(message.sessionOptions)).length) {\n                        object.sessionOptions = {};\n                        for (var j = 0; j < keys2.length; ++j)\n                            object.sessionOptions[keys2[j]] = $root.arrow.flight.protocol.SessionOptionValue.toObject(message.sessionOptions[keys2[j]], options);\n                    }\n                    return object;\n                };\n\n                /**\n                 * Converts this GetSessionOptionsResult to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.GetSessionOptionsResult\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                GetSessionOptionsResult.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for GetSessionOptionsResult\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.GetSessionOptionsResult\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                GetSessionOptionsResult.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.GetSessionOptionsResult\";\n                };\n\n                return GetSessionOptionsResult;\n            })();\n\n            protocol.CloseSessionRequest = (function() {\n\n                /**\n                 * Properties of a CloseSessionRequest.\n                 * @memberof arrow.flight.protocol\n                 * @interface ICloseSessionRequest\n                 */\n\n                /**\n                 * Constructs a new CloseSessionRequest.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a CloseSessionRequest.\n                 * @implements ICloseSessionRequest\n                 * @constructor\n                 * @param {arrow.flight.protocol.ICloseSessionRequest=} [properties] Properties to set\n                 */\n                function CloseSessionRequest(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                 * Creates a new CloseSessionRequest instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.CloseSessionRequest\n                 * @static\n                 * @param {arrow.flight.protocol.ICloseSessionRequest=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.CloseSessionRequest} CloseSessionRequest instance\n                 */\n                CloseSessionRequest.create = function create(properties) {\n                    return new CloseSessionRequest(properties);\n                };\n\n                /**\n                 * Encodes the specified CloseSessionRequest message. Does not implicitly {@link arrow.flight.protocol.CloseSessionRequest.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.CloseSessionRequest\n                 * @static\n                 * @param {arrow.flight.protocol.ICloseSessionRequest} message CloseSessionRequest message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                CloseSessionRequest.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified CloseSessionRequest message, length delimited. Does not implicitly {@link arrow.flight.protocol.CloseSessionRequest.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.CloseSessionRequest\n                 * @static\n                 * @param {arrow.flight.protocol.ICloseSessionRequest} message CloseSessionRequest message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                CloseSessionRequest.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a CloseSessionRequest message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.CloseSessionRequest\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 {arrow.flight.protocol.CloseSessionRequest} CloseSessionRequest\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                CloseSessionRequest.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.arrow.flight.protocol.CloseSessionRequest();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a CloseSessionRequest message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.CloseSessionRequest\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.CloseSessionRequest} CloseSessionRequest\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                CloseSessionRequest.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 CloseSessionRequest message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.CloseSessionRequest\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                CloseSessionRequest.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a CloseSessionRequest message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.CloseSessionRequest\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.CloseSessionRequest} CloseSessionRequest\n                 */\n                CloseSessionRequest.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.CloseSessionRequest)\n                        return object;\n                    return new $root.arrow.flight.protocol.CloseSessionRequest();\n                };\n\n                /**\n                 * Creates a plain object from a CloseSessionRequest message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.CloseSessionRequest\n                 * @static\n                 * @param {arrow.flight.protocol.CloseSessionRequest} message CloseSessionRequest\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                CloseSessionRequest.toObject = function toObject() {\n                    return {};\n                };\n\n                /**\n                 * Converts this CloseSessionRequest to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.CloseSessionRequest\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                CloseSessionRequest.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for CloseSessionRequest\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.CloseSessionRequest\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                CloseSessionRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.CloseSessionRequest\";\n                };\n\n                return CloseSessionRequest;\n            })();\n\n            protocol.CloseSessionResult = (function() {\n\n                /**\n                 * Properties of a CloseSessionResult.\n                 * @memberof arrow.flight.protocol\n                 * @interface ICloseSessionResult\n                 * @property {arrow.flight.protocol.CloseSessionResult.Status|null} [status] CloseSessionResult status\n                 */\n\n                /**\n                 * Constructs a new CloseSessionResult.\n                 * @memberof arrow.flight.protocol\n                 * @classdesc Represents a CloseSessionResult.\n                 * @implements ICloseSessionResult\n                 * @constructor\n                 * @param {arrow.flight.protocol.ICloseSessionResult=} [properties] Properties to set\n                 */\n                function CloseSessionResult(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                 * CloseSessionResult status.\n                 * @member {arrow.flight.protocol.CloseSessionResult.Status} status\n                 * @memberof arrow.flight.protocol.CloseSessionResult\n                 * @instance\n                 */\n                CloseSessionResult.prototype.status = 0;\n\n                /**\n                 * Creates a new CloseSessionResult instance using the specified properties.\n                 * @function create\n                 * @memberof arrow.flight.protocol.CloseSessionResult\n                 * @static\n                 * @param {arrow.flight.protocol.ICloseSessionResult=} [properties] Properties to set\n                 * @returns {arrow.flight.protocol.CloseSessionResult} CloseSessionResult instance\n                 */\n                CloseSessionResult.create = function create(properties) {\n                    return new CloseSessionResult(properties);\n                };\n\n                /**\n                 * Encodes the specified CloseSessionResult message. Does not implicitly {@link arrow.flight.protocol.CloseSessionResult.verify|verify} messages.\n                 * @function encode\n                 * @memberof arrow.flight.protocol.CloseSessionResult\n                 * @static\n                 * @param {arrow.flight.protocol.ICloseSessionResult} message CloseSessionResult message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                CloseSessionResult.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.status != null && Object.hasOwnProperty.call(message, \"status\"))\n                        writer.uint32(/* id 1, wireType 0 =*/8).int32(message.status);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified CloseSessionResult message, length delimited. Does not implicitly {@link arrow.flight.protocol.CloseSessionResult.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof arrow.flight.protocol.CloseSessionResult\n                 * @static\n                 * @param {arrow.flight.protocol.ICloseSessionResult} message CloseSessionResult message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                CloseSessionResult.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a CloseSessionResult message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof arrow.flight.protocol.CloseSessionResult\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 {arrow.flight.protocol.CloseSessionResult} CloseSessionResult\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                CloseSessionResult.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.arrow.flight.protocol.CloseSessionResult();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.status = reader.int32();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a CloseSessionResult message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof arrow.flight.protocol.CloseSessionResult\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {arrow.flight.protocol.CloseSessionResult} CloseSessionResult\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                CloseSessionResult.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 CloseSessionResult message.\n                 * @function verify\n                 * @memberof arrow.flight.protocol.CloseSessionResult\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                CloseSessionResult.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.status != null && message.hasOwnProperty(\"status\"))\n                        switch (message.status) {\n                        default:\n                            return \"status: enum value expected\";\n                        case 0:\n                        case 1:\n                        case 2:\n                        case 3:\n                            break;\n                        }\n                    return null;\n                };\n\n                /**\n                 * Creates a CloseSessionResult message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof arrow.flight.protocol.CloseSessionResult\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {arrow.flight.protocol.CloseSessionResult} CloseSessionResult\n                 */\n                CloseSessionResult.fromObject = function fromObject(object) {\n                    if (object instanceof $root.arrow.flight.protocol.CloseSessionResult)\n                        return object;\n                    var message = new $root.arrow.flight.protocol.CloseSessionResult();\n                    switch (object.status) {\n                    default:\n                        if (typeof object.status === \"number\") {\n                            message.status = object.status;\n                            break;\n                        }\n                        break;\n                    case \"UNSPECIFIED\":\n                    case 0:\n                        message.status = 0;\n                        break;\n                    case \"CLOSED\":\n                    case 1:\n                        message.status = 1;\n                        break;\n                    case \"CLOSING\":\n                    case 2:\n                        message.status = 2;\n                        break;\n                    case \"NOT_CLOSEABLE\":\n                    case 3:\n                        message.status = 3;\n                        break;\n                    }\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a CloseSessionResult message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof arrow.flight.protocol.CloseSessionResult\n                 * @static\n                 * @param {arrow.flight.protocol.CloseSessionResult} message CloseSessionResult\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                CloseSessionResult.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults)\n                        object.status = options.enums === String ? \"UNSPECIFIED\" : 0;\n                    if (message.status != null && message.hasOwnProperty(\"status\"))\n                        object.status = options.enums === String ? $root.arrow.flight.protocol.CloseSessionResult.Status[message.status] === undefined ? message.status : $root.arrow.flight.protocol.CloseSessionResult.Status[message.status] : message.status;\n                    return object;\n                };\n\n                /**\n                 * Converts this CloseSessionResult to JSON.\n                 * @function toJSON\n                 * @memberof arrow.flight.protocol.CloseSessionResult\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                CloseSessionResult.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for CloseSessionResult\n                 * @function getTypeUrl\n                 * @memberof arrow.flight.protocol.CloseSessionResult\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                CloseSessionResult.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/arrow.flight.protocol.CloseSessionResult\";\n                };\n\n                /**\n                 * Status enum.\n                 * @name arrow.flight.protocol.CloseSessionResult.Status\n                 * @enum {number}\n                 * @property {number} UNSPECIFIED=0 UNSPECIFIED value\n                 * @property {number} CLOSED=1 CLOSED value\n                 * @property {number} CLOSING=2 CLOSING value\n                 * @property {number} NOT_CLOSEABLE=3 NOT_CLOSEABLE value\n                 */\n                CloseSessionResult.Status = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"UNSPECIFIED\"] = 0;\n                    values[valuesById[1] = \"CLOSED\"] = 1;\n                    values[valuesById[2] = \"CLOSING\"] = 2;\n                    values[valuesById[3] = \"NOT_CLOSEABLE\"] = 3;\n                    return values;\n                })();\n\n                return CloseSessionResult;\n            })();\n\n            return protocol;\n        })();\n\n        return flight;\n    })();\n\n    return arrow;\n})();\n\n$root.google = (function() {\n\n    /**\n     * Namespace google.\n     * @exports google\n     * @namespace\n     */\n    var google = {};\n\n    google.protobuf = (function() {\n\n        /**\n         * Namespace protobuf.\n         * @memberof google\n         * @namespace\n         */\n        var protobuf = {};\n\n        protobuf.Timestamp = (function() {\n\n            /**\n             * Properties of a Timestamp.\n             * @memberof google.protobuf\n             * @interface ITimestamp\n             * @property {number|Long|null} [seconds] Timestamp seconds\n             * @property {number|null} [nanos] Timestamp nanos\n             */\n\n            /**\n             * Constructs a new Timestamp.\n             * @memberof google.protobuf\n             * @classdesc Represents a Timestamp.\n             * @implements ITimestamp\n             * @constructor\n             * @param {google.protobuf.ITimestamp=} [properties] Properties to set\n             */\n            function Timestamp(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             * Timestamp seconds.\n             * @member {number|Long} seconds\n             * @memberof google.protobuf.Timestamp\n             * @instance\n             */\n            Timestamp.prototype.seconds = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n            /**\n             * Timestamp nanos.\n             * @member {number} nanos\n             * @memberof google.protobuf.Timestamp\n             * @instance\n             */\n            Timestamp.prototype.nanos = 0;\n\n            /**\n             * Creates a new Timestamp instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.Timestamp\n             * @static\n             * @param {google.protobuf.ITimestamp=} [properties] Properties to set\n             * @returns {google.protobuf.Timestamp} Timestamp instance\n             */\n            Timestamp.create = function create(properties) {\n                return new Timestamp(properties);\n            };\n\n            /**\n             * Encodes the specified Timestamp message. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.Timestamp\n             * @static\n             * @param {google.protobuf.ITimestamp} message Timestamp message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Timestamp.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.seconds != null && Object.hasOwnProperty.call(message, \"seconds\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds);\n                if (message.nanos != null && Object.hasOwnProperty.call(message, \"nanos\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.nanos);\n                return writer;\n            };\n\n            /**\n             * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.Timestamp\n             * @static\n             * @param {google.protobuf.ITimestamp} message Timestamp message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Timestamp.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes a Timestamp message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.Timestamp\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 {google.protobuf.Timestamp} Timestamp\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            Timestamp.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.google.protobuf.Timestamp();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1: {\n                            message.seconds = reader.int64();\n                            break;\n                        }\n                    case 2: {\n                            message.nanos = reader.int32();\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes a Timestamp message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.Timestamp\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.Timestamp} Timestamp\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            Timestamp.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 Timestamp message.\n             * @function verify\n             * @memberof google.protobuf.Timestamp\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            Timestamp.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.seconds != null && message.hasOwnProperty(\"seconds\"))\n                    if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high)))\n                        return \"seconds: integer|Long expected\";\n                if (message.nanos != null && message.hasOwnProperty(\"nanos\"))\n                    if (!$util.isInteger(message.nanos))\n                        return \"nanos: integer expected\";\n                return null;\n            };\n\n            /**\n             * Creates a Timestamp message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.Timestamp\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.Timestamp} Timestamp\n             */\n            Timestamp.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.Timestamp)\n                    return object;\n                var message = new $root.google.protobuf.Timestamp();\n                if (object.seconds != null)\n                    if ($util.Long)\n                        (message.seconds = $util.Long.fromValue(object.seconds)).unsigned = false;\n                    else if (typeof object.seconds === \"string\")\n                        message.seconds = parseInt(object.seconds, 10);\n                    else if (typeof object.seconds === \"number\")\n                        message.seconds = object.seconds;\n                    else if (typeof object.seconds === \"object\")\n                        message.seconds = new $util.LongBits(object.seconds.low >>> 0, object.seconds.high >>> 0).toNumber();\n                if (object.nanos != null)\n                    message.nanos = object.nanos | 0;\n                return message;\n            };\n\n            /**\n             * Creates a plain object from a Timestamp message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.Timestamp\n             * @static\n             * @param {google.protobuf.Timestamp} message Timestamp\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            Timestamp.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    if ($util.Long) {\n                        var long = new $util.Long(0, 0, false);\n                        object.seconds = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n                    } else\n                        object.seconds = options.longs === String ? \"0\" : 0;\n                    object.nanos = 0;\n                }\n                if (message.seconds != null && message.hasOwnProperty(\"seconds\"))\n                    if (typeof message.seconds === \"number\")\n                        object.seconds = options.longs === String ? String(message.seconds) : message.seconds;\n                    else\n                        object.seconds = options.longs === String ? $util.Long.prototype.toString.call(message.seconds) : options.longs === Number ? new $util.LongBits(message.seconds.low >>> 0, message.seconds.high >>> 0).toNumber() : message.seconds;\n                if (message.nanos != null && message.hasOwnProperty(\"nanos\"))\n                    object.nanos = message.nanos;\n                return object;\n            };\n\n            /**\n             * Converts this Timestamp to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.Timestamp\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            Timestamp.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for Timestamp\n             * @function getTypeUrl\n             * @memberof google.protobuf.Timestamp\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            Timestamp.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.Timestamp\";\n            };\n\n            return Timestamp;\n        })();\n\n        return protobuf;\n    })();\n\n    return google;\n})();\n\nmodule.exports = $root;\n","/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/\n\"use strict\";\n\nvar $protobuf = require(\"protobufjs/minimal\");\n\n// Common aliases\nvar $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n\n// Exported root namespace\nvar $root = $protobuf.roots.fsql || ($protobuf.roots.fsql = {});\n\n$root.arrow = (function() {\n\n    /**\n     * Namespace arrow.\n     * @exports arrow\n     * @namespace\n     */\n    var arrow = {};\n\n    arrow.flight = (function() {\n\n        /**\n         * Namespace flight.\n         * @memberof arrow\n         * @namespace\n         */\n        var flight = {};\n\n        flight.protocol = (function() {\n\n            /**\n             * Namespace protocol.\n             * @memberof arrow.flight\n             * @namespace\n             */\n            var protocol = {};\n\n            protocol.sql = (function() {\n\n                /**\n                 * Namespace sql.\n                 * @memberof arrow.flight.protocol\n                 * @namespace\n                 */\n                var sql = {};\n\n                sql.CommandGetSqlInfo = (function() {\n\n                    /**\n                     * Properties of a CommandGetSqlInfo.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandGetSqlInfo\n                     * @property {Array.<number>|null} [info] CommandGetSqlInfo info\n                     */\n\n                    /**\n                     * Constructs a new CommandGetSqlInfo.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandGetSqlInfo.\n                     * @implements ICommandGetSqlInfo\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandGetSqlInfo=} [properties] Properties to set\n                     */\n                    function CommandGetSqlInfo(properties) {\n                        this.info = [];\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                     * CommandGetSqlInfo info.\n                     * @member {Array.<number>} info\n                     * @memberof arrow.flight.protocol.sql.CommandGetSqlInfo\n                     * @instance\n                     */\n                    CommandGetSqlInfo.prototype.info = $util.emptyArray;\n\n                    /**\n                     * Creates a new CommandGetSqlInfo instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandGetSqlInfo\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetSqlInfo=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandGetSqlInfo} CommandGetSqlInfo instance\n                     */\n                    CommandGetSqlInfo.create = function create(properties) {\n                        return new CommandGetSqlInfo(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetSqlInfo message. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetSqlInfo.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandGetSqlInfo\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetSqlInfo} message CommandGetSqlInfo message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetSqlInfo.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.info != null && message.info.length) {\n                            writer.uint32(/* id 1, wireType 2 =*/10).fork();\n                            for (var i = 0; i < message.info.length; ++i)\n                                writer.uint32(message.info[i]);\n                            writer.ldelim();\n                        }\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetSqlInfo message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetSqlInfo.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetSqlInfo\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetSqlInfo} message CommandGetSqlInfo message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetSqlInfo.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandGetSqlInfo message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandGetSqlInfo\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 {arrow.flight.protocol.sql.CommandGetSqlInfo} CommandGetSqlInfo\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                    CommandGetSqlInfo.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.arrow.flight.protocol.sql.CommandGetSqlInfo();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    if (!(message.info && message.info.length))\n                                        message.info = [];\n                                    if ((tag & 7) === 2) {\n                                        var end2 = reader.uint32() + reader.pos;\n                                        while (reader.pos < end2)\n                                            message.info.push(reader.uint32());\n                                    } else\n                                        message.info.push(reader.uint32());\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandGetSqlInfo message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetSqlInfo\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandGetSqlInfo} CommandGetSqlInfo\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                    CommandGetSqlInfo.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 CommandGetSqlInfo message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandGetSqlInfo\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                    CommandGetSqlInfo.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.info != null && message.hasOwnProperty(\"info\")) {\n                            if (!Array.isArray(message.info))\n                                return \"info: array expected\";\n                            for (var i = 0; i < message.info.length; ++i)\n                                if (!$util.isInteger(message.info[i]))\n                                    return \"info: integer[] expected\";\n                        }\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandGetSqlInfo message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetSqlInfo\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandGetSqlInfo} CommandGetSqlInfo\n                     */\n                    CommandGetSqlInfo.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandGetSqlInfo)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.CommandGetSqlInfo();\n                        if (object.info) {\n                            if (!Array.isArray(object.info))\n                                throw TypeError(\".arrow.flight.protocol.sql.CommandGetSqlInfo.info: array expected\");\n                            message.info = [];\n                            for (var i = 0; i < object.info.length; ++i)\n                                message.info[i] = object.info[i] >>> 0;\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandGetSqlInfo message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetSqlInfo\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandGetSqlInfo} message CommandGetSqlInfo\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandGetSqlInfo.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.arrays || options.defaults)\n                            object.info = [];\n                        if (message.info && message.info.length) {\n                            object.info = [];\n                            for (var j = 0; j < message.info.length; ++j)\n                                object.info[j] = message.info[j];\n                        }\n                        return object;\n                    };\n\n                    /**\n                     * Converts this CommandGetSqlInfo to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandGetSqlInfo\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandGetSqlInfo.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandGetSqlInfo\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandGetSqlInfo\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandGetSqlInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandGetSqlInfo\";\n                    };\n\n                    return CommandGetSqlInfo;\n                })();\n\n                /**\n                 * SqlInfo enum.\n                 * @name arrow.flight.protocol.sql.SqlInfo\n                 * @enum {number}\n                 * @property {number} FLIGHT_SQL_SERVER_NAME=0 FLIGHT_SQL_SERVER_NAME value\n                 * @property {number} FLIGHT_SQL_SERVER_VERSION=1 FLIGHT_SQL_SERVER_VERSION value\n                 * @property {number} FLIGHT_SQL_SERVER_ARROW_VERSION=2 FLIGHT_SQL_SERVER_ARROW_VERSION value\n                 * @property {number} FLIGHT_SQL_SERVER_READ_ONLY=3 FLIGHT_SQL_SERVER_READ_ONLY value\n                 * @property {number} FLIGHT_SQL_SERVER_SQL=4 FLIGHT_SQL_SERVER_SQL value\n                 * @property {number} FLIGHT_SQL_SERVER_SUBSTRAIT=5 FLIGHT_SQL_SERVER_SUBSTRAIT value\n                 * @property {number} FLIGHT_SQL_SERVER_SUBSTRAIT_MIN_VERSION=6 FLIGHT_SQL_SERVER_SUBSTRAIT_MIN_VERSION value\n                 * @property {number} FLIGHT_SQL_SERVER_SUBSTRAIT_MAX_VERSION=7 FLIGHT_SQL_SERVER_SUBSTRAIT_MAX_VERSION value\n                 * @property {number} FLIGHT_SQL_SERVER_TRANSACTION=8 FLIGHT_SQL_SERVER_TRANSACTION value\n                 * @property {number} FLIGHT_SQL_SERVER_CANCEL=9 FLIGHT_SQL_SERVER_CANCEL value\n                 * @property {number} FLIGHT_SQL_SERVER_BULK_INGESTION=10 FLIGHT_SQL_SERVER_BULK_INGESTION value\n                 * @property {number} FLIGHT_SQL_SERVER_INGEST_TRANSACTIONS_SUPPORTED=11 FLIGHT_SQL_SERVER_INGEST_TRANSACTIONS_SUPPORTED value\n                 * @property {number} FLIGHT_SQL_SERVER_STATEMENT_TIMEOUT=100 FLIGHT_SQL_SERVER_STATEMENT_TIMEOUT value\n                 * @property {number} FLIGHT_SQL_SERVER_TRANSACTION_TIMEOUT=101 FLIGHT_SQL_SERVER_TRANSACTION_TIMEOUT value\n                 * @property {number} SQL_DDL_CATALOG=500 SQL_DDL_CATALOG value\n                 * @property {number} SQL_DDL_SCHEMA=501 SQL_DDL_SCHEMA value\n                 * @property {number} SQL_DDL_TABLE=502 SQL_DDL_TABLE value\n                 * @property {number} SQL_IDENTIFIER_CASE=503 SQL_IDENTIFIER_CASE value\n                 * @property {number} SQL_IDENTIFIER_QUOTE_CHAR=504 SQL_IDENTIFIER_QUOTE_CHAR value\n                 * @property {number} SQL_QUOTED_IDENTIFIER_CASE=505 SQL_QUOTED_IDENTIFIER_CASE value\n                 * @property {number} SQL_ALL_TABLES_ARE_SELECTABLE=506 SQL_ALL_TABLES_ARE_SELECTABLE value\n                 * @property {number} SQL_NULL_ORDERING=507 SQL_NULL_ORDERING value\n                 * @property {number} SQL_KEYWORDS=508 SQL_KEYWORDS value\n                 * @property {number} SQL_NUMERIC_FUNCTIONS=509 SQL_NUMERIC_FUNCTIONS value\n                 * @property {number} SQL_STRING_FUNCTIONS=510 SQL_STRING_FUNCTIONS value\n                 * @property {number} SQL_SYSTEM_FUNCTIONS=511 SQL_SYSTEM_FUNCTIONS value\n                 * @property {number} SQL_DATETIME_FUNCTIONS=512 SQL_DATETIME_FUNCTIONS value\n                 * @property {number} SQL_SEARCH_STRING_ESCAPE=513 SQL_SEARCH_STRING_ESCAPE value\n                 * @property {number} SQL_EXTRA_NAME_CHARACTERS=514 SQL_EXTRA_NAME_CHARACTERS value\n                 * @property {number} SQL_SUPPORTS_COLUMN_ALIASING=515 SQL_SUPPORTS_COLUMN_ALIASING value\n                 * @property {number} SQL_NULL_PLUS_NULL_IS_NULL=516 SQL_NULL_PLUS_NULL_IS_NULL value\n                 * @property {number} SQL_SUPPORTS_CONVERT=517 SQL_SUPPORTS_CONVERT value\n                 * @property {number} SQL_SUPPORTS_TABLE_CORRELATION_NAMES=518 SQL_SUPPORTS_TABLE_CORRELATION_NAMES value\n                 * @property {number} SQL_SUPPORTS_DIFFERENT_TABLE_CORRELATION_NAMES=519 SQL_SUPPORTS_DIFFERENT_TABLE_CORRELATION_NAMES value\n                 * @property {number} SQL_SUPPORTS_EXPRESSIONS_IN_ORDER_BY=520 SQL_SUPPORTS_EXPRESSIONS_IN_ORDER_BY value\n                 * @property {number} SQL_SUPPORTS_ORDER_BY_UNRELATED=521 SQL_SUPPORTS_ORDER_BY_UNRELATED value\n                 * @property {number} SQL_SUPPORTED_GROUP_BY=522 SQL_SUPPORTED_GROUP_BY value\n                 * @property {number} SQL_SUPPORTS_LIKE_ESCAPE_CLAUSE=523 SQL_SUPPORTS_LIKE_ESCAPE_CLAUSE value\n                 * @property {number} SQL_SUPPORTS_NON_NULLABLE_COLUMNS=524 SQL_SUPPORTS_NON_NULLABLE_COLUMNS value\n                 * @property {number} SQL_SUPPORTED_GRAMMAR=525 SQL_SUPPORTED_GRAMMAR value\n                 * @property {number} SQL_ANSI92_SUPPORTED_LEVEL=526 SQL_ANSI92_SUPPORTED_LEVEL value\n                 * @property {number} SQL_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY=527 SQL_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY value\n                 * @property {number} SQL_OUTER_JOINS_SUPPORT_LEVEL=528 SQL_OUTER_JOINS_SUPPORT_LEVEL value\n                 * @property {number} SQL_SCHEMA_TERM=529 SQL_SCHEMA_TERM value\n                 * @property {number} SQL_PROCEDURE_TERM=530 SQL_PROCEDURE_TERM value\n                 * @property {number} SQL_CATALOG_TERM=531 SQL_CATALOG_TERM value\n                 * @property {number} SQL_CATALOG_AT_START=532 SQL_CATALOG_AT_START value\n                 * @property {number} SQL_SCHEMAS_SUPPORTED_ACTIONS=533 SQL_SCHEMAS_SUPPORTED_ACTIONS value\n                 * @property {number} SQL_CATALOGS_SUPPORTED_ACTIONS=534 SQL_CATALOGS_SUPPORTED_ACTIONS value\n                 * @property {number} SQL_SUPPORTED_POSITIONED_COMMANDS=535 SQL_SUPPORTED_POSITIONED_COMMANDS value\n                 * @property {number} SQL_SELECT_FOR_UPDATE_SUPPORTED=536 SQL_SELECT_FOR_UPDATE_SUPPORTED value\n                 * @property {number} SQL_STORED_PROCEDURES_SUPPORTED=537 SQL_STORED_PROCEDURES_SUPPORTED value\n                 * @property {number} SQL_SUPPORTED_SUBQUERIES=538 SQL_SUPPORTED_SUBQUERIES value\n                 * @property {number} SQL_CORRELATED_SUBQUERIES_SUPPORTED=539 SQL_CORRELATED_SUBQUERIES_SUPPORTED value\n                 * @property {number} SQL_SUPPORTED_UNIONS=540 SQL_SUPPORTED_UNIONS value\n                 * @property {number} SQL_MAX_BINARY_LITERAL_LENGTH=541 SQL_MAX_BINARY_LITERAL_LENGTH value\n                 * @property {number} SQL_MAX_CHAR_LITERAL_LENGTH=542 SQL_MAX_CHAR_LITERAL_LENGTH value\n                 * @property {number} SQL_MAX_COLUMN_NAME_LENGTH=543 SQL_MAX_COLUMN_NAME_LENGTH value\n                 * @property {number} SQL_MAX_COLUMNS_IN_GROUP_BY=544 SQL_MAX_COLUMNS_IN_GROUP_BY value\n                 * @property {number} SQL_MAX_COLUMNS_IN_INDEX=545 SQL_MAX_COLUMNS_IN_INDEX value\n                 * @property {number} SQL_MAX_COLUMNS_IN_ORDER_BY=546 SQL_MAX_COLUMNS_IN_ORDER_BY value\n                 * @property {number} SQL_MAX_COLUMNS_IN_SELECT=547 SQL_MAX_COLUMNS_IN_SELECT value\n                 * @property {number} SQL_MAX_COLUMNS_IN_TABLE=548 SQL_MAX_COLUMNS_IN_TABLE value\n                 * @property {number} SQL_MAX_CONNECTIONS=549 SQL_MAX_CONNECTIONS value\n                 * @property {number} SQL_MAX_CURSOR_NAME_LENGTH=550 SQL_MAX_CURSOR_NAME_LENGTH value\n                 * @property {number} SQL_MAX_INDEX_LENGTH=551 SQL_MAX_INDEX_LENGTH value\n                 * @property {number} SQL_DB_SCHEMA_NAME_LENGTH=552 SQL_DB_SCHEMA_NAME_LENGTH value\n                 * @property {number} SQL_MAX_PROCEDURE_NAME_LENGTH=553 SQL_MAX_PROCEDURE_NAME_LENGTH value\n                 * @property {number} SQL_MAX_CATALOG_NAME_LENGTH=554 SQL_MAX_CATALOG_NAME_LENGTH value\n                 * @property {number} SQL_MAX_ROW_SIZE=555 SQL_MAX_ROW_SIZE value\n                 * @property {number} SQL_MAX_ROW_SIZE_INCLUDES_BLOBS=556 SQL_MAX_ROW_SIZE_INCLUDES_BLOBS value\n                 * @property {number} SQL_MAX_STATEMENT_LENGTH=557 SQL_MAX_STATEMENT_LENGTH value\n                 * @property {number} SQL_MAX_STATEMENTS=558 SQL_MAX_STATEMENTS value\n                 * @property {number} SQL_MAX_TABLE_NAME_LENGTH=559 SQL_MAX_TABLE_NAME_LENGTH value\n                 * @property {number} SQL_MAX_TABLES_IN_SELECT=560 SQL_MAX_TABLES_IN_SELECT value\n                 * @property {number} SQL_MAX_USERNAME_LENGTH=561 SQL_MAX_USERNAME_LENGTH value\n                 * @property {number} SQL_DEFAULT_TRANSACTION_ISOLATION=562 SQL_DEFAULT_TRANSACTION_ISOLATION value\n                 * @property {number} SQL_TRANSACTIONS_SUPPORTED=563 SQL_TRANSACTIONS_SUPPORTED value\n                 * @property {number} SQL_SUPPORTED_TRANSACTIONS_ISOLATION_LEVELS=564 SQL_SUPPORTED_TRANSACTIONS_ISOLATION_LEVELS value\n                 * @property {number} SQL_DATA_DEFINITION_CAUSES_TRANSACTION_COMMIT=565 SQL_DATA_DEFINITION_CAUSES_TRANSACTION_COMMIT value\n                 * @property {number} SQL_DATA_DEFINITIONS_IN_TRANSACTIONS_IGNORED=566 SQL_DATA_DEFINITIONS_IN_TRANSACTIONS_IGNORED value\n                 * @property {number} SQL_SUPPORTED_RESULT_SET_TYPES=567 SQL_SUPPORTED_RESULT_SET_TYPES value\n                 * @property {number} SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_UNSPECIFIED=568 SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_UNSPECIFIED value\n                 * @property {number} SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_FORWARD_ONLY=569 SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_FORWARD_ONLY value\n                 * @property {number} SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_SCROLL_SENSITIVE=570 SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_SCROLL_SENSITIVE value\n                 * @property {number} SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_SCROLL_INSENSITIVE=571 SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_SCROLL_INSENSITIVE value\n                 * @property {number} SQL_BATCH_UPDATES_SUPPORTED=572 SQL_BATCH_UPDATES_SUPPORTED value\n                 * @property {number} SQL_SAVEPOINTS_SUPPORTED=573 SQL_SAVEPOINTS_SUPPORTED value\n                 * @property {number} SQL_NAMED_PARAMETERS_SUPPORTED=574 SQL_NAMED_PARAMETERS_SUPPORTED value\n                 * @property {number} SQL_LOCATORS_UPDATE_COPY=575 SQL_LOCATORS_UPDATE_COPY value\n                 * @property {number} SQL_STORED_FUNCTIONS_USING_CALL_SYNTAX_SUPPORTED=576 SQL_STORED_FUNCTIONS_USING_CALL_SYNTAX_SUPPORTED value\n                 */\n                sql.SqlInfo = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"FLIGHT_SQL_SERVER_NAME\"] = 0;\n                    values[valuesById[1] = \"FLIGHT_SQL_SERVER_VERSION\"] = 1;\n                    values[valuesById[2] = \"FLIGHT_SQL_SERVER_ARROW_VERSION\"] = 2;\n                    values[valuesById[3] = \"FLIGHT_SQL_SERVER_READ_ONLY\"] = 3;\n                    values[valuesById[4] = \"FLIGHT_SQL_SERVER_SQL\"] = 4;\n                    values[valuesById[5] = \"FLIGHT_SQL_SERVER_SUBSTRAIT\"] = 5;\n                    values[valuesById[6] = \"FLIGHT_SQL_SERVER_SUBSTRAIT_MIN_VERSION\"] = 6;\n                    values[valuesById[7] = \"FLIGHT_SQL_SERVER_SUBSTRAIT_MAX_VERSION\"] = 7;\n                    values[valuesById[8] = \"FLIGHT_SQL_SERVER_TRANSACTION\"] = 8;\n                    values[valuesById[9] = \"FLIGHT_SQL_SERVER_CANCEL\"] = 9;\n                    values[valuesById[10] = \"FLIGHT_SQL_SERVER_BULK_INGESTION\"] = 10;\n                    values[valuesById[11] = \"FLIGHT_SQL_SERVER_INGEST_TRANSACTIONS_SUPPORTED\"] = 11;\n                    values[valuesById[100] = \"FLIGHT_SQL_SERVER_STATEMENT_TIMEOUT\"] = 100;\n                    values[valuesById[101] = \"FLIGHT_SQL_SERVER_TRANSACTION_TIMEOUT\"] = 101;\n                    values[valuesById[500] = \"SQL_DDL_CATALOG\"] = 500;\n                    values[valuesById[501] = \"SQL_DDL_SCHEMA\"] = 501;\n                    values[valuesById[502] = \"SQL_DDL_TABLE\"] = 502;\n                    values[valuesById[503] = \"SQL_IDENTIFIER_CASE\"] = 503;\n                    values[valuesById[504] = \"SQL_IDENTIFIER_QUOTE_CHAR\"] = 504;\n                    values[valuesById[505] = \"SQL_QUOTED_IDENTIFIER_CASE\"] = 505;\n                    values[valuesById[506] = \"SQL_ALL_TABLES_ARE_SELECTABLE\"] = 506;\n                    values[valuesById[507] = \"SQL_NULL_ORDERING\"] = 507;\n                    values[valuesById[508] = \"SQL_KEYWORDS\"] = 508;\n                    values[valuesById[509] = \"SQL_NUMERIC_FUNCTIONS\"] = 509;\n                    values[valuesById[510] = \"SQL_STRING_FUNCTIONS\"] = 510;\n                    values[valuesById[511] = \"SQL_SYSTEM_FUNCTIONS\"] = 511;\n                    values[valuesById[512] = \"SQL_DATETIME_FUNCTIONS\"] = 512;\n                    values[valuesById[513] = \"SQL_SEARCH_STRING_ESCAPE\"] = 513;\n                    values[valuesById[514] = \"SQL_EXTRA_NAME_CHARACTERS\"] = 514;\n                    values[valuesById[515] = \"SQL_SUPPORTS_COLUMN_ALIASING\"] = 515;\n                    values[valuesById[516] = \"SQL_NULL_PLUS_NULL_IS_NULL\"] = 516;\n                    values[valuesById[517] = \"SQL_SUPPORTS_CONVERT\"] = 517;\n                    values[valuesById[518] = \"SQL_SUPPORTS_TABLE_CORRELATION_NAMES\"] = 518;\n                    values[valuesById[519] = \"SQL_SUPPORTS_DIFFERENT_TABLE_CORRELATION_NAMES\"] = 519;\n                    values[valuesById[520] = \"SQL_SUPPORTS_EXPRESSIONS_IN_ORDER_BY\"] = 520;\n                    values[valuesById[521] = \"SQL_SUPPORTS_ORDER_BY_UNRELATED\"] = 521;\n                    values[valuesById[522] = \"SQL_SUPPORTED_GROUP_BY\"] = 522;\n                    values[valuesById[523] = \"SQL_SUPPORTS_LIKE_ESCAPE_CLAUSE\"] = 523;\n                    values[valuesById[524] = \"SQL_SUPPORTS_NON_NULLABLE_COLUMNS\"] = 524;\n                    values[valuesById[525] = \"SQL_SUPPORTED_GRAMMAR\"] = 525;\n                    values[valuesById[526] = \"SQL_ANSI92_SUPPORTED_LEVEL\"] = 526;\n                    values[valuesById[527] = \"SQL_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY\"] = 527;\n                    values[valuesById[528] = \"SQL_OUTER_JOINS_SUPPORT_LEVEL\"] = 528;\n                    values[valuesById[529] = \"SQL_SCHEMA_TERM\"] = 529;\n                    values[valuesById[530] = \"SQL_PROCEDURE_TERM\"] = 530;\n                    values[valuesById[531] = \"SQL_CATALOG_TERM\"] = 531;\n                    values[valuesById[532] = \"SQL_CATALOG_AT_START\"] = 532;\n                    values[valuesById[533] = \"SQL_SCHEMAS_SUPPORTED_ACTIONS\"] = 533;\n                    values[valuesById[534] = \"SQL_CATALOGS_SUPPORTED_ACTIONS\"] = 534;\n                    values[valuesById[535] = \"SQL_SUPPORTED_POSITIONED_COMMANDS\"] = 535;\n                    values[valuesById[536] = \"SQL_SELECT_FOR_UPDATE_SUPPORTED\"] = 536;\n                    values[valuesById[537] = \"SQL_STORED_PROCEDURES_SUPPORTED\"] = 537;\n                    values[valuesById[538] = \"SQL_SUPPORTED_SUBQUERIES\"] = 538;\n                    values[valuesById[539] = \"SQL_CORRELATED_SUBQUERIES_SUPPORTED\"] = 539;\n                    values[valuesById[540] = \"SQL_SUPPORTED_UNIONS\"] = 540;\n                    values[valuesById[541] = \"SQL_MAX_BINARY_LITERAL_LENGTH\"] = 541;\n                    values[valuesById[542] = \"SQL_MAX_CHAR_LITERAL_LENGTH\"] = 542;\n                    values[valuesById[543] = \"SQL_MAX_COLUMN_NAME_LENGTH\"] = 543;\n                    values[valuesById[544] = \"SQL_MAX_COLUMNS_IN_GROUP_BY\"] = 544;\n                    values[valuesById[545] = \"SQL_MAX_COLUMNS_IN_INDEX\"] = 545;\n                    values[valuesById[546] = \"SQL_MAX_COLUMNS_IN_ORDER_BY\"] = 546;\n                    values[valuesById[547] = \"SQL_MAX_COLUMNS_IN_SELECT\"] = 547;\n                    values[valuesById[548] = \"SQL_MAX_COLUMNS_IN_TABLE\"] = 548;\n                    values[valuesById[549] = \"SQL_MAX_CONNECTIONS\"] = 549;\n                    values[valuesById[550] = \"SQL_MAX_CURSOR_NAME_LENGTH\"] = 550;\n                    values[valuesById[551] = \"SQL_MAX_INDEX_LENGTH\"] = 551;\n                    values[valuesById[552] = \"SQL_DB_SCHEMA_NAME_LENGTH\"] = 552;\n                    values[valuesById[553] = \"SQL_MAX_PROCEDURE_NAME_LENGTH\"] = 553;\n                    values[valuesById[554] = \"SQL_MAX_CATALOG_NAME_LENGTH\"] = 554;\n                    values[valuesById[555] = \"SQL_MAX_ROW_SIZE\"] = 555;\n                    values[valuesById[556] = \"SQL_MAX_ROW_SIZE_INCLUDES_BLOBS\"] = 556;\n                    values[valuesById[557] = \"SQL_MAX_STATEMENT_LENGTH\"] = 557;\n                    values[valuesById[558] = \"SQL_MAX_STATEMENTS\"] = 558;\n                    values[valuesById[559] = \"SQL_MAX_TABLE_NAME_LENGTH\"] = 559;\n                    values[valuesById[560] = \"SQL_MAX_TABLES_IN_SELECT\"] = 560;\n                    values[valuesById[561] = \"SQL_MAX_USERNAME_LENGTH\"] = 561;\n                    values[valuesById[562] = \"SQL_DEFAULT_TRANSACTION_ISOLATION\"] = 562;\n                    values[valuesById[563] = \"SQL_TRANSACTIONS_SUPPORTED\"] = 563;\n                    values[valuesById[564] = \"SQL_SUPPORTED_TRANSACTIONS_ISOLATION_LEVELS\"] = 564;\n                    values[valuesById[565] = \"SQL_DATA_DEFINITION_CAUSES_TRANSACTION_COMMIT\"] = 565;\n                    values[valuesById[566] = \"SQL_DATA_DEFINITIONS_IN_TRANSACTIONS_IGNORED\"] = 566;\n                    values[valuesById[567] = \"SQL_SUPPORTED_RESULT_SET_TYPES\"] = 567;\n                    values[valuesById[568] = \"SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_UNSPECIFIED\"] = 568;\n                    values[valuesById[569] = \"SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_FORWARD_ONLY\"] = 569;\n                    values[valuesById[570] = \"SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_SCROLL_SENSITIVE\"] = 570;\n                    values[valuesById[571] = \"SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_SCROLL_INSENSITIVE\"] = 571;\n                    values[valuesById[572] = \"SQL_BATCH_UPDATES_SUPPORTED\"] = 572;\n                    values[valuesById[573] = \"SQL_SAVEPOINTS_SUPPORTED\"] = 573;\n                    values[valuesById[574] = \"SQL_NAMED_PARAMETERS_SUPPORTED\"] = 574;\n                    values[valuesById[575] = \"SQL_LOCATORS_UPDATE_COPY\"] = 575;\n                    values[valuesById[576] = \"SQL_STORED_FUNCTIONS_USING_CALL_SYNTAX_SUPPORTED\"] = 576;\n                    return values;\n                })();\n\n                /**\n                 * SqlSupportedTransaction enum.\n                 * @name arrow.flight.protocol.sql.SqlSupportedTransaction\n                 * @enum {number}\n                 * @property {number} SQL_SUPPORTED_TRANSACTION_NONE=0 SQL_SUPPORTED_TRANSACTION_NONE value\n                 * @property {number} SQL_SUPPORTED_TRANSACTION_TRANSACTION=1 SQL_SUPPORTED_TRANSACTION_TRANSACTION value\n                 * @property {number} SQL_SUPPORTED_TRANSACTION_SAVEPOINT=2 SQL_SUPPORTED_TRANSACTION_SAVEPOINT value\n                 */\n                sql.SqlSupportedTransaction = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_SUPPORTED_TRANSACTION_NONE\"] = 0;\n                    values[valuesById[1] = \"SQL_SUPPORTED_TRANSACTION_TRANSACTION\"] = 1;\n                    values[valuesById[2] = \"SQL_SUPPORTED_TRANSACTION_SAVEPOINT\"] = 2;\n                    return values;\n                })();\n\n                /**\n                 * SqlSupportedCaseSensitivity enum.\n                 * @name arrow.flight.protocol.sql.SqlSupportedCaseSensitivity\n                 * @enum {number}\n                 * @property {number} SQL_CASE_SENSITIVITY_UNKNOWN=0 SQL_CASE_SENSITIVITY_UNKNOWN value\n                 * @property {number} SQL_CASE_SENSITIVITY_CASE_INSENSITIVE=1 SQL_CASE_SENSITIVITY_CASE_INSENSITIVE value\n                 * @property {number} SQL_CASE_SENSITIVITY_UPPERCASE=2 SQL_CASE_SENSITIVITY_UPPERCASE value\n                 * @property {number} SQL_CASE_SENSITIVITY_LOWERCASE=3 SQL_CASE_SENSITIVITY_LOWERCASE value\n                 */\n                sql.SqlSupportedCaseSensitivity = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_CASE_SENSITIVITY_UNKNOWN\"] = 0;\n                    values[valuesById[1] = \"SQL_CASE_SENSITIVITY_CASE_INSENSITIVE\"] = 1;\n                    values[valuesById[2] = \"SQL_CASE_SENSITIVITY_UPPERCASE\"] = 2;\n                    values[valuesById[3] = \"SQL_CASE_SENSITIVITY_LOWERCASE\"] = 3;\n                    return values;\n                })();\n\n                /**\n                 * SqlNullOrdering enum.\n                 * @name arrow.flight.protocol.sql.SqlNullOrdering\n                 * @enum {number}\n                 * @property {number} SQL_NULLS_SORTED_HIGH=0 SQL_NULLS_SORTED_HIGH value\n                 * @property {number} SQL_NULLS_SORTED_LOW=1 SQL_NULLS_SORTED_LOW value\n                 * @property {number} SQL_NULLS_SORTED_AT_START=2 SQL_NULLS_SORTED_AT_START value\n                 * @property {number} SQL_NULLS_SORTED_AT_END=3 SQL_NULLS_SORTED_AT_END value\n                 */\n                sql.SqlNullOrdering = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_NULLS_SORTED_HIGH\"] = 0;\n                    values[valuesById[1] = \"SQL_NULLS_SORTED_LOW\"] = 1;\n                    values[valuesById[2] = \"SQL_NULLS_SORTED_AT_START\"] = 2;\n                    values[valuesById[3] = \"SQL_NULLS_SORTED_AT_END\"] = 3;\n                    return values;\n                })();\n\n                /**\n                 * SupportedSqlGrammar enum.\n                 * @name arrow.flight.protocol.sql.SupportedSqlGrammar\n                 * @enum {number}\n                 * @property {number} SQL_MINIMUM_GRAMMAR=0 SQL_MINIMUM_GRAMMAR value\n                 * @property {number} SQL_CORE_GRAMMAR=1 SQL_CORE_GRAMMAR value\n                 * @property {number} SQL_EXTENDED_GRAMMAR=2 SQL_EXTENDED_GRAMMAR value\n                 */\n                sql.SupportedSqlGrammar = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_MINIMUM_GRAMMAR\"] = 0;\n                    values[valuesById[1] = \"SQL_CORE_GRAMMAR\"] = 1;\n                    values[valuesById[2] = \"SQL_EXTENDED_GRAMMAR\"] = 2;\n                    return values;\n                })();\n\n                /**\n                 * SupportedAnsi92SqlGrammarLevel enum.\n                 * @name arrow.flight.protocol.sql.SupportedAnsi92SqlGrammarLevel\n                 * @enum {number}\n                 * @property {number} ANSI92_ENTRY_SQL=0 ANSI92_ENTRY_SQL value\n                 * @property {number} ANSI92_INTERMEDIATE_SQL=1 ANSI92_INTERMEDIATE_SQL value\n                 * @property {number} ANSI92_FULL_SQL=2 ANSI92_FULL_SQL value\n                 */\n                sql.SupportedAnsi92SqlGrammarLevel = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"ANSI92_ENTRY_SQL\"] = 0;\n                    values[valuesById[1] = \"ANSI92_INTERMEDIATE_SQL\"] = 1;\n                    values[valuesById[2] = \"ANSI92_FULL_SQL\"] = 2;\n                    return values;\n                })();\n\n                /**\n                 * SqlOuterJoinsSupportLevel enum.\n                 * @name arrow.flight.protocol.sql.SqlOuterJoinsSupportLevel\n                 * @enum {number}\n                 * @property {number} SQL_JOINS_UNSUPPORTED=0 SQL_JOINS_UNSUPPORTED value\n                 * @property {number} SQL_LIMITED_OUTER_JOINS=1 SQL_LIMITED_OUTER_JOINS value\n                 * @property {number} SQL_FULL_OUTER_JOINS=2 SQL_FULL_OUTER_JOINS value\n                 */\n                sql.SqlOuterJoinsSupportLevel = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_JOINS_UNSUPPORTED\"] = 0;\n                    values[valuesById[1] = \"SQL_LIMITED_OUTER_JOINS\"] = 1;\n                    values[valuesById[2] = \"SQL_FULL_OUTER_JOINS\"] = 2;\n                    return values;\n                })();\n\n                /**\n                 * SqlSupportedGroupBy enum.\n                 * @name arrow.flight.protocol.sql.SqlSupportedGroupBy\n                 * @enum {number}\n                 * @property {number} SQL_GROUP_BY_UNRELATED=0 SQL_GROUP_BY_UNRELATED value\n                 * @property {number} SQL_GROUP_BY_BEYOND_SELECT=1 SQL_GROUP_BY_BEYOND_SELECT value\n                 */\n                sql.SqlSupportedGroupBy = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_GROUP_BY_UNRELATED\"] = 0;\n                    values[valuesById[1] = \"SQL_GROUP_BY_BEYOND_SELECT\"] = 1;\n                    return values;\n                })();\n\n                /**\n                 * SqlSupportedElementActions enum.\n                 * @name arrow.flight.protocol.sql.SqlSupportedElementActions\n                 * @enum {number}\n                 * @property {number} SQL_ELEMENT_IN_PROCEDURE_CALLS=0 SQL_ELEMENT_IN_PROCEDURE_CALLS value\n                 * @property {number} SQL_ELEMENT_IN_INDEX_DEFINITIONS=1 SQL_ELEMENT_IN_INDEX_DEFINITIONS value\n                 * @property {number} SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS=2 SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS value\n                 */\n                sql.SqlSupportedElementActions = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_ELEMENT_IN_PROCEDURE_CALLS\"] = 0;\n                    values[valuesById[1] = \"SQL_ELEMENT_IN_INDEX_DEFINITIONS\"] = 1;\n                    values[valuesById[2] = \"SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS\"] = 2;\n                    return values;\n                })();\n\n                /**\n                 * SqlSupportedPositionedCommands enum.\n                 * @name arrow.flight.protocol.sql.SqlSupportedPositionedCommands\n                 * @enum {number}\n                 * @property {number} SQL_POSITIONED_DELETE=0 SQL_POSITIONED_DELETE value\n                 * @property {number} SQL_POSITIONED_UPDATE=1 SQL_POSITIONED_UPDATE value\n                 */\n                sql.SqlSupportedPositionedCommands = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_POSITIONED_DELETE\"] = 0;\n                    values[valuesById[1] = \"SQL_POSITIONED_UPDATE\"] = 1;\n                    return values;\n                })();\n\n                /**\n                 * SqlSupportedSubqueries enum.\n                 * @name arrow.flight.protocol.sql.SqlSupportedSubqueries\n                 * @enum {number}\n                 * @property {number} SQL_SUBQUERIES_IN_COMPARISONS=0 SQL_SUBQUERIES_IN_COMPARISONS value\n                 * @property {number} SQL_SUBQUERIES_IN_EXISTS=1 SQL_SUBQUERIES_IN_EXISTS value\n                 * @property {number} SQL_SUBQUERIES_IN_INS=2 SQL_SUBQUERIES_IN_INS value\n                 * @property {number} SQL_SUBQUERIES_IN_QUANTIFIEDS=3 SQL_SUBQUERIES_IN_QUANTIFIEDS value\n                 */\n                sql.SqlSupportedSubqueries = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_SUBQUERIES_IN_COMPARISONS\"] = 0;\n                    values[valuesById[1] = \"SQL_SUBQUERIES_IN_EXISTS\"] = 1;\n                    values[valuesById[2] = \"SQL_SUBQUERIES_IN_INS\"] = 2;\n                    values[valuesById[3] = \"SQL_SUBQUERIES_IN_QUANTIFIEDS\"] = 3;\n                    return values;\n                })();\n\n                /**\n                 * SqlSupportedUnions enum.\n                 * @name arrow.flight.protocol.sql.SqlSupportedUnions\n                 * @enum {number}\n                 * @property {number} SQL_UNION=0 SQL_UNION value\n                 * @property {number} SQL_UNION_ALL=1 SQL_UNION_ALL value\n                 */\n                sql.SqlSupportedUnions = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_UNION\"] = 0;\n                    values[valuesById[1] = \"SQL_UNION_ALL\"] = 1;\n                    return values;\n                })();\n\n                /**\n                 * SqlTransactionIsolationLevel enum.\n                 * @name arrow.flight.protocol.sql.SqlTransactionIsolationLevel\n                 * @enum {number}\n                 * @property {number} SQL_TRANSACTION_NONE=0 SQL_TRANSACTION_NONE value\n                 * @property {number} SQL_TRANSACTION_READ_UNCOMMITTED=1 SQL_TRANSACTION_READ_UNCOMMITTED value\n                 * @property {number} SQL_TRANSACTION_READ_COMMITTED=2 SQL_TRANSACTION_READ_COMMITTED value\n                 * @property {number} SQL_TRANSACTION_REPEATABLE_READ=3 SQL_TRANSACTION_REPEATABLE_READ value\n                 * @property {number} SQL_TRANSACTION_SERIALIZABLE=4 SQL_TRANSACTION_SERIALIZABLE value\n                 */\n                sql.SqlTransactionIsolationLevel = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_TRANSACTION_NONE\"] = 0;\n                    values[valuesById[1] = \"SQL_TRANSACTION_READ_UNCOMMITTED\"] = 1;\n                    values[valuesById[2] = \"SQL_TRANSACTION_READ_COMMITTED\"] = 2;\n                    values[valuesById[3] = \"SQL_TRANSACTION_REPEATABLE_READ\"] = 3;\n                    values[valuesById[4] = \"SQL_TRANSACTION_SERIALIZABLE\"] = 4;\n                    return values;\n                })();\n\n                /**\n                 * SqlSupportedTransactions enum.\n                 * @name arrow.flight.protocol.sql.SqlSupportedTransactions\n                 * @enum {number}\n                 * @property {number} SQL_TRANSACTION_UNSPECIFIED=0 SQL_TRANSACTION_UNSPECIFIED value\n                 * @property {number} SQL_DATA_DEFINITION_TRANSACTIONS=1 SQL_DATA_DEFINITION_TRANSACTIONS value\n                 * @property {number} SQL_DATA_MANIPULATION_TRANSACTIONS=2 SQL_DATA_MANIPULATION_TRANSACTIONS value\n                 */\n                sql.SqlSupportedTransactions = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_TRANSACTION_UNSPECIFIED\"] = 0;\n                    values[valuesById[1] = \"SQL_DATA_DEFINITION_TRANSACTIONS\"] = 1;\n                    values[valuesById[2] = \"SQL_DATA_MANIPULATION_TRANSACTIONS\"] = 2;\n                    return values;\n                })();\n\n                /**\n                 * SqlSupportedResultSetType enum.\n                 * @name arrow.flight.protocol.sql.SqlSupportedResultSetType\n                 * @enum {number}\n                 * @property {number} SQL_RESULT_SET_TYPE_UNSPECIFIED=0 SQL_RESULT_SET_TYPE_UNSPECIFIED value\n                 * @property {number} SQL_RESULT_SET_TYPE_FORWARD_ONLY=1 SQL_RESULT_SET_TYPE_FORWARD_ONLY value\n                 * @property {number} SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE=2 SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE value\n                 * @property {number} SQL_RESULT_SET_TYPE_SCROLL_SENSITIVE=3 SQL_RESULT_SET_TYPE_SCROLL_SENSITIVE value\n                 */\n                sql.SqlSupportedResultSetType = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_RESULT_SET_TYPE_UNSPECIFIED\"] = 0;\n                    values[valuesById[1] = \"SQL_RESULT_SET_TYPE_FORWARD_ONLY\"] = 1;\n                    values[valuesById[2] = \"SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE\"] = 2;\n                    values[valuesById[3] = \"SQL_RESULT_SET_TYPE_SCROLL_SENSITIVE\"] = 3;\n                    return values;\n                })();\n\n                /**\n                 * SqlSupportedResultSetConcurrency enum.\n                 * @name arrow.flight.protocol.sql.SqlSupportedResultSetConcurrency\n                 * @enum {number}\n                 * @property {number} SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED=0 SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED value\n                 * @property {number} SQL_RESULT_SET_CONCURRENCY_READ_ONLY=1 SQL_RESULT_SET_CONCURRENCY_READ_ONLY value\n                 * @property {number} SQL_RESULT_SET_CONCURRENCY_UPDATABLE=2 SQL_RESULT_SET_CONCURRENCY_UPDATABLE value\n                 */\n                sql.SqlSupportedResultSetConcurrency = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED\"] = 0;\n                    values[valuesById[1] = \"SQL_RESULT_SET_CONCURRENCY_READ_ONLY\"] = 1;\n                    values[valuesById[2] = \"SQL_RESULT_SET_CONCURRENCY_UPDATABLE\"] = 2;\n                    return values;\n                })();\n\n                /**\n                 * SqlSupportsConvert enum.\n                 * @name arrow.flight.protocol.sql.SqlSupportsConvert\n                 * @enum {number}\n                 * @property {number} SQL_CONVERT_BIGINT=0 SQL_CONVERT_BIGINT value\n                 * @property {number} SQL_CONVERT_BINARY=1 SQL_CONVERT_BINARY value\n                 * @property {number} SQL_CONVERT_BIT=2 SQL_CONVERT_BIT value\n                 * @property {number} SQL_CONVERT_CHAR=3 SQL_CONVERT_CHAR value\n                 * @property {number} SQL_CONVERT_DATE=4 SQL_CONVERT_DATE value\n                 * @property {number} SQL_CONVERT_DECIMAL=5 SQL_CONVERT_DECIMAL value\n                 * @property {number} SQL_CONVERT_FLOAT=6 SQL_CONVERT_FLOAT value\n                 * @property {number} SQL_CONVERT_INTEGER=7 SQL_CONVERT_INTEGER value\n                 * @property {number} SQL_CONVERT_INTERVAL_DAY_TIME=8 SQL_CONVERT_INTERVAL_DAY_TIME value\n                 * @property {number} SQL_CONVERT_INTERVAL_YEAR_MONTH=9 SQL_CONVERT_INTERVAL_YEAR_MONTH value\n                 * @property {number} SQL_CONVERT_LONGVARBINARY=10 SQL_CONVERT_LONGVARBINARY value\n                 * @property {number} SQL_CONVERT_LONGVARCHAR=11 SQL_CONVERT_LONGVARCHAR value\n                 * @property {number} SQL_CONVERT_NUMERIC=12 SQL_CONVERT_NUMERIC value\n                 * @property {number} SQL_CONVERT_REAL=13 SQL_CONVERT_REAL value\n                 * @property {number} SQL_CONVERT_SMALLINT=14 SQL_CONVERT_SMALLINT value\n                 * @property {number} SQL_CONVERT_TIME=15 SQL_CONVERT_TIME value\n                 * @property {number} SQL_CONVERT_TIMESTAMP=16 SQL_CONVERT_TIMESTAMP value\n                 * @property {number} SQL_CONVERT_TINYINT=17 SQL_CONVERT_TINYINT value\n                 * @property {number} SQL_CONVERT_VARBINARY=18 SQL_CONVERT_VARBINARY value\n                 * @property {number} SQL_CONVERT_VARCHAR=19 SQL_CONVERT_VARCHAR value\n                 */\n                sql.SqlSupportsConvert = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SQL_CONVERT_BIGINT\"] = 0;\n                    values[valuesById[1] = \"SQL_CONVERT_BINARY\"] = 1;\n                    values[valuesById[2] = \"SQL_CONVERT_BIT\"] = 2;\n                    values[valuesById[3] = \"SQL_CONVERT_CHAR\"] = 3;\n                    values[valuesById[4] = \"SQL_CONVERT_DATE\"] = 4;\n                    values[valuesById[5] = \"SQL_CONVERT_DECIMAL\"] = 5;\n                    values[valuesById[6] = \"SQL_CONVERT_FLOAT\"] = 6;\n                    values[valuesById[7] = \"SQL_CONVERT_INTEGER\"] = 7;\n                    values[valuesById[8] = \"SQL_CONVERT_INTERVAL_DAY_TIME\"] = 8;\n                    values[valuesById[9] = \"SQL_CONVERT_INTERVAL_YEAR_MONTH\"] = 9;\n                    values[valuesById[10] = \"SQL_CONVERT_LONGVARBINARY\"] = 10;\n                    values[valuesById[11] = \"SQL_CONVERT_LONGVARCHAR\"] = 11;\n                    values[valuesById[12] = \"SQL_CONVERT_NUMERIC\"] = 12;\n                    values[valuesById[13] = \"SQL_CONVERT_REAL\"] = 13;\n                    values[valuesById[14] = \"SQL_CONVERT_SMALLINT\"] = 14;\n                    values[valuesById[15] = \"SQL_CONVERT_TIME\"] = 15;\n                    values[valuesById[16] = \"SQL_CONVERT_TIMESTAMP\"] = 16;\n                    values[valuesById[17] = \"SQL_CONVERT_TINYINT\"] = 17;\n                    values[valuesById[18] = \"SQL_CONVERT_VARBINARY\"] = 18;\n                    values[valuesById[19] = \"SQL_CONVERT_VARCHAR\"] = 19;\n                    return values;\n                })();\n\n                /**\n                 * The JDBC/ODBC-defined type of any object.\n                 * All the values here are the same as in the JDBC and ODBC specs.\n                 * @name arrow.flight.protocol.sql.XdbcDataType\n                 * @enum {number}\n                 * @property {number} XDBC_UNKNOWN_TYPE=0 XDBC_UNKNOWN_TYPE value\n                 * @property {number} XDBC_CHAR=1 XDBC_CHAR value\n                 * @property {number} XDBC_NUMERIC=2 XDBC_NUMERIC value\n                 * @property {number} XDBC_DECIMAL=3 XDBC_DECIMAL value\n                 * @property {number} XDBC_INTEGER=4 XDBC_INTEGER value\n                 * @property {number} XDBC_SMALLINT=5 XDBC_SMALLINT value\n                 * @property {number} XDBC_FLOAT=6 XDBC_FLOAT value\n                 * @property {number} XDBC_REAL=7 XDBC_REAL value\n                 * @property {number} XDBC_DOUBLE=8 XDBC_DOUBLE value\n                 * @property {number} XDBC_DATETIME=9 XDBC_DATETIME value\n                 * @property {number} XDBC_INTERVAL=10 XDBC_INTERVAL value\n                 * @property {number} XDBC_VARCHAR=12 XDBC_VARCHAR value\n                 * @property {number} XDBC_DATE=91 XDBC_DATE value\n                 * @property {number} XDBC_TIME=92 XDBC_TIME value\n                 * @property {number} XDBC_TIMESTAMP=93 XDBC_TIMESTAMP value\n                 * @property {number} XDBC_LONGVARCHAR=-1 XDBC_LONGVARCHAR value\n                 * @property {number} XDBC_BINARY=-2 XDBC_BINARY value\n                 * @property {number} XDBC_VARBINARY=-3 XDBC_VARBINARY value\n                 * @property {number} XDBC_LONGVARBINARY=-4 XDBC_LONGVARBINARY value\n                 * @property {number} XDBC_BIGINT=-5 XDBC_BIGINT value\n                 * @property {number} XDBC_TINYINT=-6 XDBC_TINYINT value\n                 * @property {number} XDBC_BIT=-7 XDBC_BIT value\n                 * @property {number} XDBC_WCHAR=-8 XDBC_WCHAR value\n                 * @property {number} XDBC_WVARCHAR=-9 XDBC_WVARCHAR value\n                 */\n                sql.XdbcDataType = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"XDBC_UNKNOWN_TYPE\"] = 0;\n                    values[valuesById[1] = \"XDBC_CHAR\"] = 1;\n                    values[valuesById[2] = \"XDBC_NUMERIC\"] = 2;\n                    values[valuesById[3] = \"XDBC_DECIMAL\"] = 3;\n                    values[valuesById[4] = \"XDBC_INTEGER\"] = 4;\n                    values[valuesById[5] = \"XDBC_SMALLINT\"] = 5;\n                    values[valuesById[6] = \"XDBC_FLOAT\"] = 6;\n                    values[valuesById[7] = \"XDBC_REAL\"] = 7;\n                    values[valuesById[8] = \"XDBC_DOUBLE\"] = 8;\n                    values[valuesById[9] = \"XDBC_DATETIME\"] = 9;\n                    values[valuesById[10] = \"XDBC_INTERVAL\"] = 10;\n                    values[valuesById[12] = \"XDBC_VARCHAR\"] = 12;\n                    values[valuesById[91] = \"XDBC_DATE\"] = 91;\n                    values[valuesById[92] = \"XDBC_TIME\"] = 92;\n                    values[valuesById[93] = \"XDBC_TIMESTAMP\"] = 93;\n                    values[valuesById[-1] = \"XDBC_LONGVARCHAR\"] = -1;\n                    values[valuesById[-2] = \"XDBC_BINARY\"] = -2;\n                    values[valuesById[-3] = \"XDBC_VARBINARY\"] = -3;\n                    values[valuesById[-4] = \"XDBC_LONGVARBINARY\"] = -4;\n                    values[valuesById[-5] = \"XDBC_BIGINT\"] = -5;\n                    values[valuesById[-6] = \"XDBC_TINYINT\"] = -6;\n                    values[valuesById[-7] = \"XDBC_BIT\"] = -7;\n                    values[valuesById[-8] = \"XDBC_WCHAR\"] = -8;\n                    values[valuesById[-9] = \"XDBC_WVARCHAR\"] = -9;\n                    return values;\n                })();\n\n                /**\n                 * Detailed subtype information for XDBC_TYPE_DATETIME and XDBC_TYPE_INTERVAL.\n                 * @name arrow.flight.protocol.sql.XdbcDatetimeSubcode\n                 * @enum {number}\n                 * @property {number} XDBC_SUBCODE_UNKNOWN=0 XDBC_SUBCODE_UNKNOWN value\n                 * @property {number} XDBC_SUBCODE_YEAR=1 XDBC_SUBCODE_YEAR value\n                 * @property {number} XDBC_SUBCODE_DATE=1 XDBC_SUBCODE_DATE value\n                 * @property {number} XDBC_SUBCODE_TIME=2 XDBC_SUBCODE_TIME value\n                 * @property {number} XDBC_SUBCODE_MONTH=2 XDBC_SUBCODE_MONTH value\n                 * @property {number} XDBC_SUBCODE_TIMESTAMP=3 XDBC_SUBCODE_TIMESTAMP value\n                 * @property {number} XDBC_SUBCODE_DAY=3 XDBC_SUBCODE_DAY value\n                 * @property {number} XDBC_SUBCODE_TIME_WITH_TIMEZONE=4 XDBC_SUBCODE_TIME_WITH_TIMEZONE value\n                 * @property {number} XDBC_SUBCODE_HOUR=4 XDBC_SUBCODE_HOUR value\n                 * @property {number} XDBC_SUBCODE_TIMESTAMP_WITH_TIMEZONE=5 XDBC_SUBCODE_TIMESTAMP_WITH_TIMEZONE value\n                 * @property {number} XDBC_SUBCODE_MINUTE=5 XDBC_SUBCODE_MINUTE value\n                 * @property {number} XDBC_SUBCODE_SECOND=6 XDBC_SUBCODE_SECOND value\n                 * @property {number} XDBC_SUBCODE_YEAR_TO_MONTH=7 XDBC_SUBCODE_YEAR_TO_MONTH value\n                 * @property {number} XDBC_SUBCODE_DAY_TO_HOUR=8 XDBC_SUBCODE_DAY_TO_HOUR value\n                 * @property {number} XDBC_SUBCODE_DAY_TO_MINUTE=9 XDBC_SUBCODE_DAY_TO_MINUTE value\n                 * @property {number} XDBC_SUBCODE_DAY_TO_SECOND=10 XDBC_SUBCODE_DAY_TO_SECOND value\n                 * @property {number} XDBC_SUBCODE_HOUR_TO_MINUTE=11 XDBC_SUBCODE_HOUR_TO_MINUTE value\n                 * @property {number} XDBC_SUBCODE_HOUR_TO_SECOND=12 XDBC_SUBCODE_HOUR_TO_SECOND value\n                 * @property {number} XDBC_SUBCODE_MINUTE_TO_SECOND=13 XDBC_SUBCODE_MINUTE_TO_SECOND value\n                 * @property {number} XDBC_SUBCODE_INTERVAL_YEAR=101 XDBC_SUBCODE_INTERVAL_YEAR value\n                 * @property {number} XDBC_SUBCODE_INTERVAL_MONTH=102 XDBC_SUBCODE_INTERVAL_MONTH value\n                 * @property {number} XDBC_SUBCODE_INTERVAL_DAY=103 XDBC_SUBCODE_INTERVAL_DAY value\n                 * @property {number} XDBC_SUBCODE_INTERVAL_HOUR=104 XDBC_SUBCODE_INTERVAL_HOUR value\n                 * @property {number} XDBC_SUBCODE_INTERVAL_MINUTE=105 XDBC_SUBCODE_INTERVAL_MINUTE value\n                 * @property {number} XDBC_SUBCODE_INTERVAL_SECOND=106 XDBC_SUBCODE_INTERVAL_SECOND value\n                 * @property {number} XDBC_SUBCODE_INTERVAL_YEAR_TO_MONTH=107 XDBC_SUBCODE_INTERVAL_YEAR_TO_MONTH value\n                 * @property {number} XDBC_SUBCODE_INTERVAL_DAY_TO_HOUR=108 XDBC_SUBCODE_INTERVAL_DAY_TO_HOUR value\n                 * @property {number} XDBC_SUBCODE_INTERVAL_DAY_TO_MINUTE=109 XDBC_SUBCODE_INTERVAL_DAY_TO_MINUTE value\n                 * @property {number} XDBC_SUBCODE_INTERVAL_DAY_TO_SECOND=110 XDBC_SUBCODE_INTERVAL_DAY_TO_SECOND value\n                 * @property {number} XDBC_SUBCODE_INTERVAL_HOUR_TO_MINUTE=111 XDBC_SUBCODE_INTERVAL_HOUR_TO_MINUTE value\n                 * @property {number} XDBC_SUBCODE_INTERVAL_HOUR_TO_SECOND=112 XDBC_SUBCODE_INTERVAL_HOUR_TO_SECOND value\n                 * @property {number} XDBC_SUBCODE_INTERVAL_MINUTE_TO_SECOND=113 XDBC_SUBCODE_INTERVAL_MINUTE_TO_SECOND value\n                 */\n                sql.XdbcDatetimeSubcode = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"XDBC_SUBCODE_UNKNOWN\"] = 0;\n                    values[valuesById[1] = \"XDBC_SUBCODE_YEAR\"] = 1;\n                    values[\"XDBC_SUBCODE_DATE\"] = 1;\n                    values[valuesById[2] = \"XDBC_SUBCODE_TIME\"] = 2;\n                    values[\"XDBC_SUBCODE_MONTH\"] = 2;\n                    values[valuesById[3] = \"XDBC_SUBCODE_TIMESTAMP\"] = 3;\n                    values[\"XDBC_SUBCODE_DAY\"] = 3;\n                    values[valuesById[4] = \"XDBC_SUBCODE_TIME_WITH_TIMEZONE\"] = 4;\n                    values[\"XDBC_SUBCODE_HOUR\"] = 4;\n                    values[valuesById[5] = \"XDBC_SUBCODE_TIMESTAMP_WITH_TIMEZONE\"] = 5;\n                    values[\"XDBC_SUBCODE_MINUTE\"] = 5;\n                    values[valuesById[6] = \"XDBC_SUBCODE_SECOND\"] = 6;\n                    values[valuesById[7] = \"XDBC_SUBCODE_YEAR_TO_MONTH\"] = 7;\n                    values[valuesById[8] = \"XDBC_SUBCODE_DAY_TO_HOUR\"] = 8;\n                    values[valuesById[9] = \"XDBC_SUBCODE_DAY_TO_MINUTE\"] = 9;\n                    values[valuesById[10] = \"XDBC_SUBCODE_DAY_TO_SECOND\"] = 10;\n                    values[valuesById[11] = \"XDBC_SUBCODE_HOUR_TO_MINUTE\"] = 11;\n                    values[valuesById[12] = \"XDBC_SUBCODE_HOUR_TO_SECOND\"] = 12;\n                    values[valuesById[13] = \"XDBC_SUBCODE_MINUTE_TO_SECOND\"] = 13;\n                    values[valuesById[101] = \"XDBC_SUBCODE_INTERVAL_YEAR\"] = 101;\n                    values[valuesById[102] = \"XDBC_SUBCODE_INTERVAL_MONTH\"] = 102;\n                    values[valuesById[103] = \"XDBC_SUBCODE_INTERVAL_DAY\"] = 103;\n                    values[valuesById[104] = \"XDBC_SUBCODE_INTERVAL_HOUR\"] = 104;\n                    values[valuesById[105] = \"XDBC_SUBCODE_INTERVAL_MINUTE\"] = 105;\n                    values[valuesById[106] = \"XDBC_SUBCODE_INTERVAL_SECOND\"] = 106;\n                    values[valuesById[107] = \"XDBC_SUBCODE_INTERVAL_YEAR_TO_MONTH\"] = 107;\n                    values[valuesById[108] = \"XDBC_SUBCODE_INTERVAL_DAY_TO_HOUR\"] = 108;\n                    values[valuesById[109] = \"XDBC_SUBCODE_INTERVAL_DAY_TO_MINUTE\"] = 109;\n                    values[valuesById[110] = \"XDBC_SUBCODE_INTERVAL_DAY_TO_SECOND\"] = 110;\n                    values[valuesById[111] = \"XDBC_SUBCODE_INTERVAL_HOUR_TO_MINUTE\"] = 111;\n                    values[valuesById[112] = \"XDBC_SUBCODE_INTERVAL_HOUR_TO_SECOND\"] = 112;\n                    values[valuesById[113] = \"XDBC_SUBCODE_INTERVAL_MINUTE_TO_SECOND\"] = 113;\n                    return values;\n                })();\n\n                /**\n                 * Nullable enum.\n                 * @name arrow.flight.protocol.sql.Nullable\n                 * @enum {number}\n                 * @property {number} NULLABILITY_NO_NULLS=0 Indicates that the fields does not allow the use of null values.\n                 * @property {number} NULLABILITY_NULLABLE=1 Indicates that the fields allow the use of null values.\n                 * @property {number} NULLABILITY_UNKNOWN=2 Indicates that nullability of the fields cannot be determined.\n                 */\n                sql.Nullable = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"NULLABILITY_NO_NULLS\"] = 0;\n                    values[valuesById[1] = \"NULLABILITY_NULLABLE\"] = 1;\n                    values[valuesById[2] = \"NULLABILITY_UNKNOWN\"] = 2;\n                    return values;\n                })();\n\n                /**\n                 * Searchable enum.\n                 * @name arrow.flight.protocol.sql.Searchable\n                 * @enum {number}\n                 * @property {number} SEARCHABLE_NONE=0 Indicates that column cannot be used in a WHERE clause.\n                 * @property {number} SEARCHABLE_CHAR=1 Indicates that the column can be used in a WHERE clause if it is using a\n                 * LIKE operator.\n                 * @property {number} SEARCHABLE_BASIC=2 Indicates that the column can be used In a WHERE clause with any\n                 * operator other than LIKE.\n                 * \n                 * - Allowed operators: comparison, quantified comparison, BETWEEN,\n                 * DISTINCT, IN, MATCH, and UNIQUE.\n                 * @property {number} SEARCHABLE_FULL=3 Indicates that the column can be used in a WHERE clause using any operator.\n                 */\n                sql.Searchable = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"SEARCHABLE_NONE\"] = 0;\n                    values[valuesById[1] = \"SEARCHABLE_CHAR\"] = 1;\n                    values[valuesById[2] = \"SEARCHABLE_BASIC\"] = 2;\n                    values[valuesById[3] = \"SEARCHABLE_FULL\"] = 3;\n                    return values;\n                })();\n\n                sql.CommandGetXdbcTypeInfo = (function() {\n\n                    /**\n                     * Properties of a CommandGetXdbcTypeInfo.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandGetXdbcTypeInfo\n                     * @property {number|null} [dataType] CommandGetXdbcTypeInfo dataType\n                     */\n\n                    /**\n                     * Constructs a new CommandGetXdbcTypeInfo.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandGetXdbcTypeInfo.\n                     * @implements ICommandGetXdbcTypeInfo\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandGetXdbcTypeInfo=} [properties] Properties to set\n                     */\n                    function CommandGetXdbcTypeInfo(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                     * CommandGetXdbcTypeInfo dataType.\n                     * @member {number|null|undefined} dataType\n                     * @memberof arrow.flight.protocol.sql.CommandGetXdbcTypeInfo\n                     * @instance\n                     */\n                    CommandGetXdbcTypeInfo.prototype.dataType = null;\n\n                    // OneOf field names bound to virtual getters and setters\n                    var $oneOfFields;\n\n                    /**\n                     * CommandGetXdbcTypeInfo _dataType.\n                     * @member {\"dataType\"|undefined} _dataType\n                     * @memberof arrow.flight.protocol.sql.CommandGetXdbcTypeInfo\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetXdbcTypeInfo.prototype, \"_dataType\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"dataType\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * Creates a new CommandGetXdbcTypeInfo instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandGetXdbcTypeInfo\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetXdbcTypeInfo=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandGetXdbcTypeInfo} CommandGetXdbcTypeInfo instance\n                     */\n                    CommandGetXdbcTypeInfo.create = function create(properties) {\n                        return new CommandGetXdbcTypeInfo(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetXdbcTypeInfo message. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetXdbcTypeInfo.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandGetXdbcTypeInfo\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetXdbcTypeInfo} message CommandGetXdbcTypeInfo message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetXdbcTypeInfo.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.dataType != null && Object.hasOwnProperty.call(message, \"dataType\"))\n                            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.dataType);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetXdbcTypeInfo message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetXdbcTypeInfo.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetXdbcTypeInfo\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetXdbcTypeInfo} message CommandGetXdbcTypeInfo message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetXdbcTypeInfo.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandGetXdbcTypeInfo message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandGetXdbcTypeInfo\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 {arrow.flight.protocol.sql.CommandGetXdbcTypeInfo} CommandGetXdbcTypeInfo\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                    CommandGetXdbcTypeInfo.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.arrow.flight.protocol.sql.CommandGetXdbcTypeInfo();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.dataType = reader.int32();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandGetXdbcTypeInfo message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetXdbcTypeInfo\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandGetXdbcTypeInfo} CommandGetXdbcTypeInfo\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                    CommandGetXdbcTypeInfo.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 CommandGetXdbcTypeInfo message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandGetXdbcTypeInfo\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                    CommandGetXdbcTypeInfo.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        var properties = {};\n                        if (message.dataType != null && message.hasOwnProperty(\"dataType\")) {\n                            properties._dataType = 1;\n                            if (!$util.isInteger(message.dataType))\n                                return \"dataType: integer expected\";\n                        }\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandGetXdbcTypeInfo message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetXdbcTypeInfo\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandGetXdbcTypeInfo} CommandGetXdbcTypeInfo\n                     */\n                    CommandGetXdbcTypeInfo.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandGetXdbcTypeInfo)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.CommandGetXdbcTypeInfo();\n                        if (object.dataType != null)\n                            message.dataType = object.dataType | 0;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandGetXdbcTypeInfo message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetXdbcTypeInfo\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandGetXdbcTypeInfo} message CommandGetXdbcTypeInfo\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandGetXdbcTypeInfo.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (message.dataType != null && message.hasOwnProperty(\"dataType\")) {\n                            object.dataType = message.dataType;\n                            if (options.oneofs)\n                                object._dataType = \"dataType\";\n                        }\n                        return object;\n                    };\n\n                    /**\n                     * Converts this CommandGetXdbcTypeInfo to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandGetXdbcTypeInfo\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandGetXdbcTypeInfo.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandGetXdbcTypeInfo\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandGetXdbcTypeInfo\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandGetXdbcTypeInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandGetXdbcTypeInfo\";\n                    };\n\n                    return CommandGetXdbcTypeInfo;\n                })();\n\n                sql.CommandGetCatalogs = (function() {\n\n                    /**\n                     * Properties of a CommandGetCatalogs.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandGetCatalogs\n                     */\n\n                    /**\n                     * Constructs a new CommandGetCatalogs.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandGetCatalogs.\n                     * @implements ICommandGetCatalogs\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandGetCatalogs=} [properties] Properties to set\n                     */\n                    function CommandGetCatalogs(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                     * Creates a new CommandGetCatalogs instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandGetCatalogs\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetCatalogs=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandGetCatalogs} CommandGetCatalogs instance\n                     */\n                    CommandGetCatalogs.create = function create(properties) {\n                        return new CommandGetCatalogs(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetCatalogs message. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetCatalogs.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandGetCatalogs\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetCatalogs} message CommandGetCatalogs message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetCatalogs.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetCatalogs message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetCatalogs.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetCatalogs\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetCatalogs} message CommandGetCatalogs message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetCatalogs.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandGetCatalogs message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandGetCatalogs\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 {arrow.flight.protocol.sql.CommandGetCatalogs} CommandGetCatalogs\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                    CommandGetCatalogs.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.arrow.flight.protocol.sql.CommandGetCatalogs();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandGetCatalogs message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetCatalogs\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandGetCatalogs} CommandGetCatalogs\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                    CommandGetCatalogs.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 CommandGetCatalogs message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandGetCatalogs\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                    CommandGetCatalogs.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandGetCatalogs message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetCatalogs\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandGetCatalogs} CommandGetCatalogs\n                     */\n                    CommandGetCatalogs.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandGetCatalogs)\n                            return object;\n                        return new $root.arrow.flight.protocol.sql.CommandGetCatalogs();\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandGetCatalogs message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetCatalogs\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandGetCatalogs} message CommandGetCatalogs\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandGetCatalogs.toObject = function toObject() {\n                        return {};\n                    };\n\n                    /**\n                     * Converts this CommandGetCatalogs to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandGetCatalogs\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandGetCatalogs.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandGetCatalogs\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandGetCatalogs\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandGetCatalogs.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandGetCatalogs\";\n                    };\n\n                    return CommandGetCatalogs;\n                })();\n\n                sql.CommandGetDbSchemas = (function() {\n\n                    /**\n                     * Properties of a CommandGetDbSchemas.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandGetDbSchemas\n                     * @property {string|null} [catalog] CommandGetDbSchemas catalog\n                     * @property {string|null} [dbSchemaFilterPattern] CommandGetDbSchemas dbSchemaFilterPattern\n                     */\n\n                    /**\n                     * Constructs a new CommandGetDbSchemas.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandGetDbSchemas.\n                     * @implements ICommandGetDbSchemas\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandGetDbSchemas=} [properties] Properties to set\n                     */\n                    function CommandGetDbSchemas(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                     * CommandGetDbSchemas catalog.\n                     * @member {string|null|undefined} catalog\n                     * @memberof arrow.flight.protocol.sql.CommandGetDbSchemas\n                     * @instance\n                     */\n                    CommandGetDbSchemas.prototype.catalog = null;\n\n                    /**\n                     * CommandGetDbSchemas dbSchemaFilterPattern.\n                     * @member {string|null|undefined} dbSchemaFilterPattern\n                     * @memberof arrow.flight.protocol.sql.CommandGetDbSchemas\n                     * @instance\n                     */\n                    CommandGetDbSchemas.prototype.dbSchemaFilterPattern = null;\n\n                    // OneOf field names bound to virtual getters and setters\n                    var $oneOfFields;\n\n                    /**\n                     * CommandGetDbSchemas _catalog.\n                     * @member {\"catalog\"|undefined} _catalog\n                     * @memberof arrow.flight.protocol.sql.CommandGetDbSchemas\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetDbSchemas.prototype, \"_catalog\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"catalog\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * CommandGetDbSchemas _dbSchemaFilterPattern.\n                     * @member {\"dbSchemaFilterPattern\"|undefined} _dbSchemaFilterPattern\n                     * @memberof arrow.flight.protocol.sql.CommandGetDbSchemas\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetDbSchemas.prototype, \"_dbSchemaFilterPattern\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"dbSchemaFilterPattern\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * Creates a new CommandGetDbSchemas instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandGetDbSchemas\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetDbSchemas=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandGetDbSchemas} CommandGetDbSchemas instance\n                     */\n                    CommandGetDbSchemas.create = function create(properties) {\n                        return new CommandGetDbSchemas(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetDbSchemas message. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetDbSchemas.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandGetDbSchemas\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetDbSchemas} message CommandGetDbSchemas message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetDbSchemas.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.catalog != null && Object.hasOwnProperty.call(message, \"catalog\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).string(message.catalog);\n                        if (message.dbSchemaFilterPattern != null && Object.hasOwnProperty.call(message, \"dbSchemaFilterPattern\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).string(message.dbSchemaFilterPattern);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetDbSchemas message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetDbSchemas.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetDbSchemas\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetDbSchemas} message CommandGetDbSchemas message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetDbSchemas.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandGetDbSchemas message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandGetDbSchemas\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 {arrow.flight.protocol.sql.CommandGetDbSchemas} CommandGetDbSchemas\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                    CommandGetDbSchemas.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.arrow.flight.protocol.sql.CommandGetDbSchemas();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.catalog = reader.string();\n                                    break;\n                                }\n                            case 2: {\n                                    message.dbSchemaFilterPattern = reader.string();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandGetDbSchemas message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetDbSchemas\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandGetDbSchemas} CommandGetDbSchemas\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                    CommandGetDbSchemas.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 CommandGetDbSchemas message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandGetDbSchemas\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                    CommandGetDbSchemas.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        var properties = {};\n                        if (message.catalog != null && message.hasOwnProperty(\"catalog\")) {\n                            properties._catalog = 1;\n                            if (!$util.isString(message.catalog))\n                                return \"catalog: string expected\";\n                        }\n                        if (message.dbSchemaFilterPattern != null && message.hasOwnProperty(\"dbSchemaFilterPattern\")) {\n                            properties._dbSchemaFilterPattern = 1;\n                            if (!$util.isString(message.dbSchemaFilterPattern))\n                                return \"dbSchemaFilterPattern: string expected\";\n                        }\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandGetDbSchemas message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetDbSchemas\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandGetDbSchemas} CommandGetDbSchemas\n                     */\n                    CommandGetDbSchemas.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandGetDbSchemas)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.CommandGetDbSchemas();\n                        if (object.catalog != null)\n                            message.catalog = String(object.catalog);\n                        if (object.dbSchemaFilterPattern != null)\n                            message.dbSchemaFilterPattern = String(object.dbSchemaFilterPattern);\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandGetDbSchemas message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetDbSchemas\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandGetDbSchemas} message CommandGetDbSchemas\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandGetDbSchemas.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (message.catalog != null && message.hasOwnProperty(\"catalog\")) {\n                            object.catalog = message.catalog;\n                            if (options.oneofs)\n                                object._catalog = \"catalog\";\n                        }\n                        if (message.dbSchemaFilterPattern != null && message.hasOwnProperty(\"dbSchemaFilterPattern\")) {\n                            object.dbSchemaFilterPattern = message.dbSchemaFilterPattern;\n                            if (options.oneofs)\n                                object._dbSchemaFilterPattern = \"dbSchemaFilterPattern\";\n                        }\n                        return object;\n                    };\n\n                    /**\n                     * Converts this CommandGetDbSchemas to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandGetDbSchemas\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandGetDbSchemas.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandGetDbSchemas\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandGetDbSchemas\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandGetDbSchemas.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandGetDbSchemas\";\n                    };\n\n                    return CommandGetDbSchemas;\n                })();\n\n                sql.CommandGetTables = (function() {\n\n                    /**\n                     * Properties of a CommandGetTables.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandGetTables\n                     * @property {string|null} [catalog] CommandGetTables catalog\n                     * @property {string|null} [dbSchemaFilterPattern] CommandGetTables dbSchemaFilterPattern\n                     * @property {string|null} [tableNameFilterPattern] CommandGetTables tableNameFilterPattern\n                     * @property {Array.<string>|null} [tableTypes] CommandGetTables tableTypes\n                     * @property {boolean|null} [includeSchema] CommandGetTables includeSchema\n                     */\n\n                    /**\n                     * Constructs a new CommandGetTables.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandGetTables.\n                     * @implements ICommandGetTables\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandGetTables=} [properties] Properties to set\n                     */\n                    function CommandGetTables(properties) {\n                        this.tableTypes = [];\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                     * CommandGetTables catalog.\n                     * @member {string|null|undefined} catalog\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @instance\n                     */\n                    CommandGetTables.prototype.catalog = null;\n\n                    /**\n                     * CommandGetTables dbSchemaFilterPattern.\n                     * @member {string|null|undefined} dbSchemaFilterPattern\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @instance\n                     */\n                    CommandGetTables.prototype.dbSchemaFilterPattern = null;\n\n                    /**\n                     * CommandGetTables tableNameFilterPattern.\n                     * @member {string|null|undefined} tableNameFilterPattern\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @instance\n                     */\n                    CommandGetTables.prototype.tableNameFilterPattern = null;\n\n                    /**\n                     * CommandGetTables tableTypes.\n                     * @member {Array.<string>} tableTypes\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @instance\n                     */\n                    CommandGetTables.prototype.tableTypes = $util.emptyArray;\n\n                    /**\n                     * CommandGetTables includeSchema.\n                     * @member {boolean} includeSchema\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @instance\n                     */\n                    CommandGetTables.prototype.includeSchema = false;\n\n                    // OneOf field names bound to virtual getters and setters\n                    var $oneOfFields;\n\n                    /**\n                     * CommandGetTables _catalog.\n                     * @member {\"catalog\"|undefined} _catalog\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetTables.prototype, \"_catalog\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"catalog\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * CommandGetTables _dbSchemaFilterPattern.\n                     * @member {\"dbSchemaFilterPattern\"|undefined} _dbSchemaFilterPattern\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetTables.prototype, \"_dbSchemaFilterPattern\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"dbSchemaFilterPattern\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * CommandGetTables _tableNameFilterPattern.\n                     * @member {\"tableNameFilterPattern\"|undefined} _tableNameFilterPattern\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetTables.prototype, \"_tableNameFilterPattern\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"tableNameFilterPattern\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * Creates a new CommandGetTables instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetTables=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandGetTables} CommandGetTables instance\n                     */\n                    CommandGetTables.create = function create(properties) {\n                        return new CommandGetTables(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetTables message. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetTables.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetTables} message CommandGetTables message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetTables.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.catalog != null && Object.hasOwnProperty.call(message, \"catalog\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).string(message.catalog);\n                        if (message.dbSchemaFilterPattern != null && Object.hasOwnProperty.call(message, \"dbSchemaFilterPattern\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).string(message.dbSchemaFilterPattern);\n                        if (message.tableNameFilterPattern != null && Object.hasOwnProperty.call(message, \"tableNameFilterPattern\"))\n                            writer.uint32(/* id 3, wireType 2 =*/26).string(message.tableNameFilterPattern);\n                        if (message.tableTypes != null && message.tableTypes.length)\n                            for (var i = 0; i < message.tableTypes.length; ++i)\n                                writer.uint32(/* id 4, wireType 2 =*/34).string(message.tableTypes[i]);\n                        if (message.includeSchema != null && Object.hasOwnProperty.call(message, \"includeSchema\"))\n                            writer.uint32(/* id 5, wireType 0 =*/40).bool(message.includeSchema);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetTables message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetTables.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetTables} message CommandGetTables message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetTables.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandGetTables message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\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 {arrow.flight.protocol.sql.CommandGetTables} CommandGetTables\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                    CommandGetTables.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.arrow.flight.protocol.sql.CommandGetTables();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.catalog = reader.string();\n                                    break;\n                                }\n                            case 2: {\n                                    message.dbSchemaFilterPattern = reader.string();\n                                    break;\n                                }\n                            case 3: {\n                                    message.tableNameFilterPattern = reader.string();\n                                    break;\n                                }\n                            case 4: {\n                                    if (!(message.tableTypes && message.tableTypes.length))\n                                        message.tableTypes = [];\n                                    message.tableTypes.push(reader.string());\n                                    break;\n                                }\n                            case 5: {\n                                    message.includeSchema = reader.bool();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandGetTables message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandGetTables} CommandGetTables\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                    CommandGetTables.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 CommandGetTables message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\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                    CommandGetTables.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        var properties = {};\n                        if (message.catalog != null && message.hasOwnProperty(\"catalog\")) {\n                            properties._catalog = 1;\n                            if (!$util.isString(message.catalog))\n                                return \"catalog: string expected\";\n                        }\n                        if (message.dbSchemaFilterPattern != null && message.hasOwnProperty(\"dbSchemaFilterPattern\")) {\n                            properties._dbSchemaFilterPattern = 1;\n                            if (!$util.isString(message.dbSchemaFilterPattern))\n                                return \"dbSchemaFilterPattern: string expected\";\n                        }\n                        if (message.tableNameFilterPattern != null && message.hasOwnProperty(\"tableNameFilterPattern\")) {\n                            properties._tableNameFilterPattern = 1;\n                            if (!$util.isString(message.tableNameFilterPattern))\n                                return \"tableNameFilterPattern: string expected\";\n                        }\n                        if (message.tableTypes != null && message.hasOwnProperty(\"tableTypes\")) {\n                            if (!Array.isArray(message.tableTypes))\n                                return \"tableTypes: array expected\";\n                            for (var i = 0; i < message.tableTypes.length; ++i)\n                                if (!$util.isString(message.tableTypes[i]))\n                                    return \"tableTypes: string[] expected\";\n                        }\n                        if (message.includeSchema != null && message.hasOwnProperty(\"includeSchema\"))\n                            if (typeof message.includeSchema !== \"boolean\")\n                                return \"includeSchema: boolean expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandGetTables message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandGetTables} CommandGetTables\n                     */\n                    CommandGetTables.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandGetTables)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.CommandGetTables();\n                        if (object.catalog != null)\n                            message.catalog = String(object.catalog);\n                        if (object.dbSchemaFilterPattern != null)\n                            message.dbSchemaFilterPattern = String(object.dbSchemaFilterPattern);\n                        if (object.tableNameFilterPattern != null)\n                            message.tableNameFilterPattern = String(object.tableNameFilterPattern);\n                        if (object.tableTypes) {\n                            if (!Array.isArray(object.tableTypes))\n                                throw TypeError(\".arrow.flight.protocol.sql.CommandGetTables.tableTypes: array expected\");\n                            message.tableTypes = [];\n                            for (var i = 0; i < object.tableTypes.length; ++i)\n                                message.tableTypes[i] = String(object.tableTypes[i]);\n                        }\n                        if (object.includeSchema != null)\n                            message.includeSchema = Boolean(object.includeSchema);\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandGetTables message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandGetTables} message CommandGetTables\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandGetTables.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.arrays || options.defaults)\n                            object.tableTypes = [];\n                        if (options.defaults)\n                            object.includeSchema = false;\n                        if (message.catalog != null && message.hasOwnProperty(\"catalog\")) {\n                            object.catalog = message.catalog;\n                            if (options.oneofs)\n                                object._catalog = \"catalog\";\n                        }\n                        if (message.dbSchemaFilterPattern != null && message.hasOwnProperty(\"dbSchemaFilterPattern\")) {\n                            object.dbSchemaFilterPattern = message.dbSchemaFilterPattern;\n                            if (options.oneofs)\n                                object._dbSchemaFilterPattern = \"dbSchemaFilterPattern\";\n                        }\n                        if (message.tableNameFilterPattern != null && message.hasOwnProperty(\"tableNameFilterPattern\")) {\n                            object.tableNameFilterPattern = message.tableNameFilterPattern;\n                            if (options.oneofs)\n                                object._tableNameFilterPattern = \"tableNameFilterPattern\";\n                        }\n                        if (message.tableTypes && message.tableTypes.length) {\n                            object.tableTypes = [];\n                            for (var j = 0; j < message.tableTypes.length; ++j)\n                                object.tableTypes[j] = message.tableTypes[j];\n                        }\n                        if (message.includeSchema != null && message.hasOwnProperty(\"includeSchema\"))\n                            object.includeSchema = message.includeSchema;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this CommandGetTables to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandGetTables.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandGetTables\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandGetTables\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandGetTables.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandGetTables\";\n                    };\n\n                    return CommandGetTables;\n                })();\n\n                sql.CommandGetTableTypes = (function() {\n\n                    /**\n                     * Properties of a CommandGetTableTypes.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandGetTableTypes\n                     */\n\n                    /**\n                     * Constructs a new CommandGetTableTypes.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandGetTableTypes.\n                     * @implements ICommandGetTableTypes\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandGetTableTypes=} [properties] Properties to set\n                     */\n                    function CommandGetTableTypes(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                     * Creates a new CommandGetTableTypes instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandGetTableTypes\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetTableTypes=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandGetTableTypes} CommandGetTableTypes instance\n                     */\n                    CommandGetTableTypes.create = function create(properties) {\n                        return new CommandGetTableTypes(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetTableTypes message. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetTableTypes.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandGetTableTypes\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetTableTypes} message CommandGetTableTypes message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetTableTypes.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetTableTypes message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetTableTypes.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetTableTypes\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetTableTypes} message CommandGetTableTypes message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetTableTypes.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandGetTableTypes message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandGetTableTypes\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 {arrow.flight.protocol.sql.CommandGetTableTypes} CommandGetTableTypes\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                    CommandGetTableTypes.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.arrow.flight.protocol.sql.CommandGetTableTypes();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandGetTableTypes message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetTableTypes\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandGetTableTypes} CommandGetTableTypes\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                    CommandGetTableTypes.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 CommandGetTableTypes message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandGetTableTypes\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                    CommandGetTableTypes.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandGetTableTypes message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetTableTypes\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandGetTableTypes} CommandGetTableTypes\n                     */\n                    CommandGetTableTypes.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandGetTableTypes)\n                            return object;\n                        return new $root.arrow.flight.protocol.sql.CommandGetTableTypes();\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandGetTableTypes message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetTableTypes\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandGetTableTypes} message CommandGetTableTypes\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandGetTableTypes.toObject = function toObject() {\n                        return {};\n                    };\n\n                    /**\n                     * Converts this CommandGetTableTypes to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandGetTableTypes\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandGetTableTypes.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandGetTableTypes\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandGetTableTypes\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandGetTableTypes.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandGetTableTypes\";\n                    };\n\n                    return CommandGetTableTypes;\n                })();\n\n                sql.CommandGetPrimaryKeys = (function() {\n\n                    /**\n                     * Properties of a CommandGetPrimaryKeys.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandGetPrimaryKeys\n                     * @property {string|null} [catalog] CommandGetPrimaryKeys catalog\n                     * @property {string|null} [dbSchema] CommandGetPrimaryKeys dbSchema\n                     * @property {string|null} [table] CommandGetPrimaryKeys table\n                     */\n\n                    /**\n                     * Constructs a new CommandGetPrimaryKeys.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandGetPrimaryKeys.\n                     * @implements ICommandGetPrimaryKeys\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandGetPrimaryKeys=} [properties] Properties to set\n                     */\n                    function CommandGetPrimaryKeys(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                     * CommandGetPrimaryKeys catalog.\n                     * @member {string|null|undefined} catalog\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\n                     * @instance\n                     */\n                    CommandGetPrimaryKeys.prototype.catalog = null;\n\n                    /**\n                     * CommandGetPrimaryKeys dbSchema.\n                     * @member {string|null|undefined} dbSchema\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\n                     * @instance\n                     */\n                    CommandGetPrimaryKeys.prototype.dbSchema = null;\n\n                    /**\n                     * CommandGetPrimaryKeys table.\n                     * @member {string} table\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\n                     * @instance\n                     */\n                    CommandGetPrimaryKeys.prototype.table = \"\";\n\n                    // OneOf field names bound to virtual getters and setters\n                    var $oneOfFields;\n\n                    /**\n                     * CommandGetPrimaryKeys _catalog.\n                     * @member {\"catalog\"|undefined} _catalog\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetPrimaryKeys.prototype, \"_catalog\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"catalog\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * CommandGetPrimaryKeys _dbSchema.\n                     * @member {\"dbSchema\"|undefined} _dbSchema\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetPrimaryKeys.prototype, \"_dbSchema\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"dbSchema\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * Creates a new CommandGetPrimaryKeys instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetPrimaryKeys=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandGetPrimaryKeys} CommandGetPrimaryKeys instance\n                     */\n                    CommandGetPrimaryKeys.create = function create(properties) {\n                        return new CommandGetPrimaryKeys(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetPrimaryKeys message. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetPrimaryKeys.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetPrimaryKeys} message CommandGetPrimaryKeys message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetPrimaryKeys.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.catalog != null && Object.hasOwnProperty.call(message, \"catalog\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).string(message.catalog);\n                        if (message.dbSchema != null && Object.hasOwnProperty.call(message, \"dbSchema\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).string(message.dbSchema);\n                        if (message.table != null && Object.hasOwnProperty.call(message, \"table\"))\n                            writer.uint32(/* id 3, wireType 2 =*/26).string(message.table);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetPrimaryKeys message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetPrimaryKeys.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetPrimaryKeys} message CommandGetPrimaryKeys message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetPrimaryKeys.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandGetPrimaryKeys message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\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 {arrow.flight.protocol.sql.CommandGetPrimaryKeys} CommandGetPrimaryKeys\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                    CommandGetPrimaryKeys.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.arrow.flight.protocol.sql.CommandGetPrimaryKeys();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.catalog = reader.string();\n                                    break;\n                                }\n                            case 2: {\n                                    message.dbSchema = reader.string();\n                                    break;\n                                }\n                            case 3: {\n                                    message.table = reader.string();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandGetPrimaryKeys message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandGetPrimaryKeys} CommandGetPrimaryKeys\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                    CommandGetPrimaryKeys.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 CommandGetPrimaryKeys message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\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                    CommandGetPrimaryKeys.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        var properties = {};\n                        if (message.catalog != null && message.hasOwnProperty(\"catalog\")) {\n                            properties._catalog = 1;\n                            if (!$util.isString(message.catalog))\n                                return \"catalog: string expected\";\n                        }\n                        if (message.dbSchema != null && message.hasOwnProperty(\"dbSchema\")) {\n                            properties._dbSchema = 1;\n                            if (!$util.isString(message.dbSchema))\n                                return \"dbSchema: string expected\";\n                        }\n                        if (message.table != null && message.hasOwnProperty(\"table\"))\n                            if (!$util.isString(message.table))\n                                return \"table: string expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandGetPrimaryKeys message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandGetPrimaryKeys} CommandGetPrimaryKeys\n                     */\n                    CommandGetPrimaryKeys.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandGetPrimaryKeys)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.CommandGetPrimaryKeys();\n                        if (object.catalog != null)\n                            message.catalog = String(object.catalog);\n                        if (object.dbSchema != null)\n                            message.dbSchema = String(object.dbSchema);\n                        if (object.table != null)\n                            message.table = String(object.table);\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandGetPrimaryKeys message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandGetPrimaryKeys} message CommandGetPrimaryKeys\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandGetPrimaryKeys.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            object.table = \"\";\n                        if (message.catalog != null && message.hasOwnProperty(\"catalog\")) {\n                            object.catalog = message.catalog;\n                            if (options.oneofs)\n                                object._catalog = \"catalog\";\n                        }\n                        if (message.dbSchema != null && message.hasOwnProperty(\"dbSchema\")) {\n                            object.dbSchema = message.dbSchema;\n                            if (options.oneofs)\n                                object._dbSchema = \"dbSchema\";\n                        }\n                        if (message.table != null && message.hasOwnProperty(\"table\"))\n                            object.table = message.table;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this CommandGetPrimaryKeys to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandGetPrimaryKeys.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandGetPrimaryKeys\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandGetPrimaryKeys\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandGetPrimaryKeys.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandGetPrimaryKeys\";\n                    };\n\n                    return CommandGetPrimaryKeys;\n                })();\n\n                /**\n                 * UpdateDeleteRules enum.\n                 * @name arrow.flight.protocol.sql.UpdateDeleteRules\n                 * @enum {number}\n                 * @property {number} CASCADE=0 CASCADE value\n                 * @property {number} RESTRICT=1 RESTRICT value\n                 * @property {number} SET_NULL=2 SET_NULL value\n                 * @property {number} NO_ACTION=3 NO_ACTION value\n                 * @property {number} SET_DEFAULT=4 SET_DEFAULT value\n                 */\n                sql.UpdateDeleteRules = (function() {\n                    var valuesById = {}, values = Object.create(valuesById);\n                    values[valuesById[0] = \"CASCADE\"] = 0;\n                    values[valuesById[1] = \"RESTRICT\"] = 1;\n                    values[valuesById[2] = \"SET_NULL\"] = 2;\n                    values[valuesById[3] = \"NO_ACTION\"] = 3;\n                    values[valuesById[4] = \"SET_DEFAULT\"] = 4;\n                    return values;\n                })();\n\n                sql.CommandGetExportedKeys = (function() {\n\n                    /**\n                     * Properties of a CommandGetExportedKeys.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandGetExportedKeys\n                     * @property {string|null} [catalog] CommandGetExportedKeys catalog\n                     * @property {string|null} [dbSchema] CommandGetExportedKeys dbSchema\n                     * @property {string|null} [table] CommandGetExportedKeys table\n                     */\n\n                    /**\n                     * Constructs a new CommandGetExportedKeys.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandGetExportedKeys.\n                     * @implements ICommandGetExportedKeys\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandGetExportedKeys=} [properties] Properties to set\n                     */\n                    function CommandGetExportedKeys(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                     * CommandGetExportedKeys catalog.\n                     * @member {string|null|undefined} catalog\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\n                     * @instance\n                     */\n                    CommandGetExportedKeys.prototype.catalog = null;\n\n                    /**\n                     * CommandGetExportedKeys dbSchema.\n                     * @member {string|null|undefined} dbSchema\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\n                     * @instance\n                     */\n                    CommandGetExportedKeys.prototype.dbSchema = null;\n\n                    /**\n                     * CommandGetExportedKeys table.\n                     * @member {string} table\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\n                     * @instance\n                     */\n                    CommandGetExportedKeys.prototype.table = \"\";\n\n                    // OneOf field names bound to virtual getters and setters\n                    var $oneOfFields;\n\n                    /**\n                     * CommandGetExportedKeys _catalog.\n                     * @member {\"catalog\"|undefined} _catalog\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetExportedKeys.prototype, \"_catalog\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"catalog\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * CommandGetExportedKeys _dbSchema.\n                     * @member {\"dbSchema\"|undefined} _dbSchema\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetExportedKeys.prototype, \"_dbSchema\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"dbSchema\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * Creates a new CommandGetExportedKeys instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetExportedKeys=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandGetExportedKeys} CommandGetExportedKeys instance\n                     */\n                    CommandGetExportedKeys.create = function create(properties) {\n                        return new CommandGetExportedKeys(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetExportedKeys message. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetExportedKeys.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetExportedKeys} message CommandGetExportedKeys message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetExportedKeys.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.catalog != null && Object.hasOwnProperty.call(message, \"catalog\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).string(message.catalog);\n                        if (message.dbSchema != null && Object.hasOwnProperty.call(message, \"dbSchema\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).string(message.dbSchema);\n                        if (message.table != null && Object.hasOwnProperty.call(message, \"table\"))\n                            writer.uint32(/* id 3, wireType 2 =*/26).string(message.table);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetExportedKeys message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetExportedKeys.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetExportedKeys} message CommandGetExportedKeys message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetExportedKeys.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandGetExportedKeys message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\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 {arrow.flight.protocol.sql.CommandGetExportedKeys} CommandGetExportedKeys\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                    CommandGetExportedKeys.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.arrow.flight.protocol.sql.CommandGetExportedKeys();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.catalog = reader.string();\n                                    break;\n                                }\n                            case 2: {\n                                    message.dbSchema = reader.string();\n                                    break;\n                                }\n                            case 3: {\n                                    message.table = reader.string();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandGetExportedKeys message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandGetExportedKeys} CommandGetExportedKeys\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                    CommandGetExportedKeys.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 CommandGetExportedKeys message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\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                    CommandGetExportedKeys.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        var properties = {};\n                        if (message.catalog != null && message.hasOwnProperty(\"catalog\")) {\n                            properties._catalog = 1;\n                            if (!$util.isString(message.catalog))\n                                return \"catalog: string expected\";\n                        }\n                        if (message.dbSchema != null && message.hasOwnProperty(\"dbSchema\")) {\n                            properties._dbSchema = 1;\n                            if (!$util.isString(message.dbSchema))\n                                return \"dbSchema: string expected\";\n                        }\n                        if (message.table != null && message.hasOwnProperty(\"table\"))\n                            if (!$util.isString(message.table))\n                                return \"table: string expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandGetExportedKeys message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandGetExportedKeys} CommandGetExportedKeys\n                     */\n                    CommandGetExportedKeys.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandGetExportedKeys)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.CommandGetExportedKeys();\n                        if (object.catalog != null)\n                            message.catalog = String(object.catalog);\n                        if (object.dbSchema != null)\n                            message.dbSchema = String(object.dbSchema);\n                        if (object.table != null)\n                            message.table = String(object.table);\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandGetExportedKeys message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandGetExportedKeys} message CommandGetExportedKeys\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandGetExportedKeys.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            object.table = \"\";\n                        if (message.catalog != null && message.hasOwnProperty(\"catalog\")) {\n                            object.catalog = message.catalog;\n                            if (options.oneofs)\n                                object._catalog = \"catalog\";\n                        }\n                        if (message.dbSchema != null && message.hasOwnProperty(\"dbSchema\")) {\n                            object.dbSchema = message.dbSchema;\n                            if (options.oneofs)\n                                object._dbSchema = \"dbSchema\";\n                        }\n                        if (message.table != null && message.hasOwnProperty(\"table\"))\n                            object.table = message.table;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this CommandGetExportedKeys to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandGetExportedKeys.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandGetExportedKeys\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandGetExportedKeys\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandGetExportedKeys.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandGetExportedKeys\";\n                    };\n\n                    return CommandGetExportedKeys;\n                })();\n\n                sql.CommandGetImportedKeys = (function() {\n\n                    /**\n                     * Properties of a CommandGetImportedKeys.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandGetImportedKeys\n                     * @property {string|null} [catalog] CommandGetImportedKeys catalog\n                     * @property {string|null} [dbSchema] CommandGetImportedKeys dbSchema\n                     * @property {string|null} [table] CommandGetImportedKeys table\n                     */\n\n                    /**\n                     * Constructs a new CommandGetImportedKeys.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandGetImportedKeys.\n                     * @implements ICommandGetImportedKeys\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandGetImportedKeys=} [properties] Properties to set\n                     */\n                    function CommandGetImportedKeys(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                     * CommandGetImportedKeys catalog.\n                     * @member {string|null|undefined} catalog\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\n                     * @instance\n                     */\n                    CommandGetImportedKeys.prototype.catalog = null;\n\n                    /**\n                     * CommandGetImportedKeys dbSchema.\n                     * @member {string|null|undefined} dbSchema\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\n                     * @instance\n                     */\n                    CommandGetImportedKeys.prototype.dbSchema = null;\n\n                    /**\n                     * CommandGetImportedKeys table.\n                     * @member {string} table\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\n                     * @instance\n                     */\n                    CommandGetImportedKeys.prototype.table = \"\";\n\n                    // OneOf field names bound to virtual getters and setters\n                    var $oneOfFields;\n\n                    /**\n                     * CommandGetImportedKeys _catalog.\n                     * @member {\"catalog\"|undefined} _catalog\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetImportedKeys.prototype, \"_catalog\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"catalog\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * CommandGetImportedKeys _dbSchema.\n                     * @member {\"dbSchema\"|undefined} _dbSchema\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetImportedKeys.prototype, \"_dbSchema\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"dbSchema\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * Creates a new CommandGetImportedKeys instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetImportedKeys=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandGetImportedKeys} CommandGetImportedKeys instance\n                     */\n                    CommandGetImportedKeys.create = function create(properties) {\n                        return new CommandGetImportedKeys(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetImportedKeys message. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetImportedKeys.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetImportedKeys} message CommandGetImportedKeys message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetImportedKeys.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.catalog != null && Object.hasOwnProperty.call(message, \"catalog\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).string(message.catalog);\n                        if (message.dbSchema != null && Object.hasOwnProperty.call(message, \"dbSchema\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).string(message.dbSchema);\n                        if (message.table != null && Object.hasOwnProperty.call(message, \"table\"))\n                            writer.uint32(/* id 3, wireType 2 =*/26).string(message.table);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetImportedKeys message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetImportedKeys.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetImportedKeys} message CommandGetImportedKeys message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetImportedKeys.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandGetImportedKeys message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\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 {arrow.flight.protocol.sql.CommandGetImportedKeys} CommandGetImportedKeys\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                    CommandGetImportedKeys.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.arrow.flight.protocol.sql.CommandGetImportedKeys();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.catalog = reader.string();\n                                    break;\n                                }\n                            case 2: {\n                                    message.dbSchema = reader.string();\n                                    break;\n                                }\n                            case 3: {\n                                    message.table = reader.string();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandGetImportedKeys message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandGetImportedKeys} CommandGetImportedKeys\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                    CommandGetImportedKeys.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 CommandGetImportedKeys message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\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                    CommandGetImportedKeys.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        var properties = {};\n                        if (message.catalog != null && message.hasOwnProperty(\"catalog\")) {\n                            properties._catalog = 1;\n                            if (!$util.isString(message.catalog))\n                                return \"catalog: string expected\";\n                        }\n                        if (message.dbSchema != null && message.hasOwnProperty(\"dbSchema\")) {\n                            properties._dbSchema = 1;\n                            if (!$util.isString(message.dbSchema))\n                                return \"dbSchema: string expected\";\n                        }\n                        if (message.table != null && message.hasOwnProperty(\"table\"))\n                            if (!$util.isString(message.table))\n                                return \"table: string expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandGetImportedKeys message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandGetImportedKeys} CommandGetImportedKeys\n                     */\n                    CommandGetImportedKeys.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandGetImportedKeys)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.CommandGetImportedKeys();\n                        if (object.catalog != null)\n                            message.catalog = String(object.catalog);\n                        if (object.dbSchema != null)\n                            message.dbSchema = String(object.dbSchema);\n                        if (object.table != null)\n                            message.table = String(object.table);\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandGetImportedKeys message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandGetImportedKeys} message CommandGetImportedKeys\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandGetImportedKeys.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            object.table = \"\";\n                        if (message.catalog != null && message.hasOwnProperty(\"catalog\")) {\n                            object.catalog = message.catalog;\n                            if (options.oneofs)\n                                object._catalog = \"catalog\";\n                        }\n                        if (message.dbSchema != null && message.hasOwnProperty(\"dbSchema\")) {\n                            object.dbSchema = message.dbSchema;\n                            if (options.oneofs)\n                                object._dbSchema = \"dbSchema\";\n                        }\n                        if (message.table != null && message.hasOwnProperty(\"table\"))\n                            object.table = message.table;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this CommandGetImportedKeys to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandGetImportedKeys.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandGetImportedKeys\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandGetImportedKeys\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandGetImportedKeys.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandGetImportedKeys\";\n                    };\n\n                    return CommandGetImportedKeys;\n                })();\n\n                sql.CommandGetCrossReference = (function() {\n\n                    /**\n                     * Properties of a CommandGetCrossReference.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandGetCrossReference\n                     * @property {string|null} [pkCatalog] The catalog name where the parent table is.\n                     * An empty string retrieves those without a catalog.\n                     * If omitted the catalog name should not be used to narrow the search.\n                     * @property {string|null} [pkDbSchema] The Schema name where the parent table is.\n                     * An empty string retrieves those without a schema.\n                     * If omitted the schema name should not be used to narrow the search.\n                     * @property {string|null} [pkTable] The parent table name. It cannot be null.\n                     * @property {string|null} [fkCatalog] The catalog name where the foreign table is.\n                     * An empty string retrieves those without a catalog.\n                     * If omitted the catalog name should not be used to narrow the search.\n                     * @property {string|null} [fkDbSchema] The schema name where the foreign table is.\n                     * An empty string retrieves those without a schema.\n                     * If omitted the schema name should not be used to narrow the search.\n                     * @property {string|null} [fkTable] The foreign table name. It cannot be null.\n                     */\n\n                    /**\n                     * Constructs a new CommandGetCrossReference.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandGetCrossReference.\n                     * @implements ICommandGetCrossReference\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandGetCrossReference=} [properties] Properties to set\n                     */\n                    function CommandGetCrossReference(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                     * The catalog name where the parent table is.\n                     * An empty string retrieves those without a catalog.\n                     * If omitted the catalog name should not be used to narrow the search.\n                     * @member {string|null|undefined} pkCatalog\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @instance\n                     */\n                    CommandGetCrossReference.prototype.pkCatalog = null;\n\n                    /**\n                     * The Schema name where the parent table is.\n                     * An empty string retrieves those without a schema.\n                     * If omitted the schema name should not be used to narrow the search.\n                     * @member {string|null|undefined} pkDbSchema\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @instance\n                     */\n                    CommandGetCrossReference.prototype.pkDbSchema = null;\n\n                    /**\n                     * The parent table name. It cannot be null.\n                     * @member {string} pkTable\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @instance\n                     */\n                    CommandGetCrossReference.prototype.pkTable = \"\";\n\n                    /**\n                     * The catalog name where the foreign table is.\n                     * An empty string retrieves those without a catalog.\n                     * If omitted the catalog name should not be used to narrow the search.\n                     * @member {string|null|undefined} fkCatalog\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @instance\n                     */\n                    CommandGetCrossReference.prototype.fkCatalog = null;\n\n                    /**\n                     * The schema name where the foreign table is.\n                     * An empty string retrieves those without a schema.\n                     * If omitted the schema name should not be used to narrow the search.\n                     * @member {string|null|undefined} fkDbSchema\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @instance\n                     */\n                    CommandGetCrossReference.prototype.fkDbSchema = null;\n\n                    /**\n                     * The foreign table name. It cannot be null.\n                     * @member {string} fkTable\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @instance\n                     */\n                    CommandGetCrossReference.prototype.fkTable = \"\";\n\n                    // OneOf field names bound to virtual getters and setters\n                    var $oneOfFields;\n\n                    /**\n                     * CommandGetCrossReference _pkCatalog.\n                     * @member {\"pkCatalog\"|undefined} _pkCatalog\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetCrossReference.prototype, \"_pkCatalog\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"pkCatalog\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * CommandGetCrossReference _pkDbSchema.\n                     * @member {\"pkDbSchema\"|undefined} _pkDbSchema\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetCrossReference.prototype, \"_pkDbSchema\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"pkDbSchema\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * CommandGetCrossReference _fkCatalog.\n                     * @member {\"fkCatalog\"|undefined} _fkCatalog\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetCrossReference.prototype, \"_fkCatalog\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"fkCatalog\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * CommandGetCrossReference _fkDbSchema.\n                     * @member {\"fkDbSchema\"|undefined} _fkDbSchema\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @instance\n                     */\n                    Object.defineProperty(CommandGetCrossReference.prototype, \"_fkDbSchema\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"fkDbSchema\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * Creates a new CommandGetCrossReference instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetCrossReference=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandGetCrossReference} CommandGetCrossReference instance\n                     */\n                    CommandGetCrossReference.create = function create(properties) {\n                        return new CommandGetCrossReference(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetCrossReference message. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetCrossReference.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetCrossReference} message CommandGetCrossReference message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetCrossReference.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.pkCatalog != null && Object.hasOwnProperty.call(message, \"pkCatalog\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).string(message.pkCatalog);\n                        if (message.pkDbSchema != null && Object.hasOwnProperty.call(message, \"pkDbSchema\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).string(message.pkDbSchema);\n                        if (message.pkTable != null && Object.hasOwnProperty.call(message, \"pkTable\"))\n                            writer.uint32(/* id 3, wireType 2 =*/26).string(message.pkTable);\n                        if (message.fkCatalog != null && Object.hasOwnProperty.call(message, \"fkCatalog\"))\n                            writer.uint32(/* id 4, wireType 2 =*/34).string(message.fkCatalog);\n                        if (message.fkDbSchema != null && Object.hasOwnProperty.call(message, \"fkDbSchema\"))\n                            writer.uint32(/* id 5, wireType 2 =*/42).string(message.fkDbSchema);\n                        if (message.fkTable != null && Object.hasOwnProperty.call(message, \"fkTable\"))\n                            writer.uint32(/* id 6, wireType 2 =*/50).string(message.fkTable);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandGetCrossReference message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandGetCrossReference.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandGetCrossReference} message CommandGetCrossReference message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandGetCrossReference.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandGetCrossReference message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\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 {arrow.flight.protocol.sql.CommandGetCrossReference} CommandGetCrossReference\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                    CommandGetCrossReference.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.arrow.flight.protocol.sql.CommandGetCrossReference();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.pkCatalog = reader.string();\n                                    break;\n                                }\n                            case 2: {\n                                    message.pkDbSchema = reader.string();\n                                    break;\n                                }\n                            case 3: {\n                                    message.pkTable = reader.string();\n                                    break;\n                                }\n                            case 4: {\n                                    message.fkCatalog = reader.string();\n                                    break;\n                                }\n                            case 5: {\n                                    message.fkDbSchema = reader.string();\n                                    break;\n                                }\n                            case 6: {\n                                    message.fkTable = reader.string();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandGetCrossReference message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandGetCrossReference} CommandGetCrossReference\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                    CommandGetCrossReference.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 CommandGetCrossReference message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\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                    CommandGetCrossReference.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        var properties = {};\n                        if (message.pkCatalog != null && message.hasOwnProperty(\"pkCatalog\")) {\n                            properties._pkCatalog = 1;\n                            if (!$util.isString(message.pkCatalog))\n                                return \"pkCatalog: string expected\";\n                        }\n                        if (message.pkDbSchema != null && message.hasOwnProperty(\"pkDbSchema\")) {\n                            properties._pkDbSchema = 1;\n                            if (!$util.isString(message.pkDbSchema))\n                                return \"pkDbSchema: string expected\";\n                        }\n                        if (message.pkTable != null && message.hasOwnProperty(\"pkTable\"))\n                            if (!$util.isString(message.pkTable))\n                                return \"pkTable: string expected\";\n                        if (message.fkCatalog != null && message.hasOwnProperty(\"fkCatalog\")) {\n                            properties._fkCatalog = 1;\n                            if (!$util.isString(message.fkCatalog))\n                                return \"fkCatalog: string expected\";\n                        }\n                        if (message.fkDbSchema != null && message.hasOwnProperty(\"fkDbSchema\")) {\n                            properties._fkDbSchema = 1;\n                            if (!$util.isString(message.fkDbSchema))\n                                return \"fkDbSchema: string expected\";\n                        }\n                        if (message.fkTable != null && message.hasOwnProperty(\"fkTable\"))\n                            if (!$util.isString(message.fkTable))\n                                return \"fkTable: string expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandGetCrossReference message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandGetCrossReference} CommandGetCrossReference\n                     */\n                    CommandGetCrossReference.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandGetCrossReference)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.CommandGetCrossReference();\n                        if (object.pkCatalog != null)\n                            message.pkCatalog = String(object.pkCatalog);\n                        if (object.pkDbSchema != null)\n                            message.pkDbSchema = String(object.pkDbSchema);\n                        if (object.pkTable != null)\n                            message.pkTable = String(object.pkTable);\n                        if (object.fkCatalog != null)\n                            message.fkCatalog = String(object.fkCatalog);\n                        if (object.fkDbSchema != null)\n                            message.fkDbSchema = String(object.fkDbSchema);\n                        if (object.fkTable != null)\n                            message.fkTable = String(object.fkTable);\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandGetCrossReference message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandGetCrossReference} message CommandGetCrossReference\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandGetCrossReference.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults) {\n                            object.pkTable = \"\";\n                            object.fkTable = \"\";\n                        }\n                        if (message.pkCatalog != null && message.hasOwnProperty(\"pkCatalog\")) {\n                            object.pkCatalog = message.pkCatalog;\n                            if (options.oneofs)\n                                object._pkCatalog = \"pkCatalog\";\n                        }\n                        if (message.pkDbSchema != null && message.hasOwnProperty(\"pkDbSchema\")) {\n                            object.pkDbSchema = message.pkDbSchema;\n                            if (options.oneofs)\n                                object._pkDbSchema = \"pkDbSchema\";\n                        }\n                        if (message.pkTable != null && message.hasOwnProperty(\"pkTable\"))\n                            object.pkTable = message.pkTable;\n                        if (message.fkCatalog != null && message.hasOwnProperty(\"fkCatalog\")) {\n                            object.fkCatalog = message.fkCatalog;\n                            if (options.oneofs)\n                                object._fkCatalog = \"fkCatalog\";\n                        }\n                        if (message.fkDbSchema != null && message.hasOwnProperty(\"fkDbSchema\")) {\n                            object.fkDbSchema = message.fkDbSchema;\n                            if (options.oneofs)\n                                object._fkDbSchema = \"fkDbSchema\";\n                        }\n                        if (message.fkTable != null && message.hasOwnProperty(\"fkTable\"))\n                            object.fkTable = message.fkTable;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this CommandGetCrossReference to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandGetCrossReference.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandGetCrossReference\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandGetCrossReference\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandGetCrossReference.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandGetCrossReference\";\n                    };\n\n                    return CommandGetCrossReference;\n                })();\n\n                sql.ActionCreatePreparedStatementRequest = (function() {\n\n                    /**\n                     * Properties of an ActionCreatePreparedStatementRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface IActionCreatePreparedStatementRequest\n                     * @property {string|null} [query] ActionCreatePreparedStatementRequest query\n                     * @property {Uint8Array|null} [transactionId] ActionCreatePreparedStatementRequest transactionId\n                     */\n\n                    /**\n                     * Constructs a new ActionCreatePreparedStatementRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents an ActionCreatePreparedStatementRequest.\n                     * @implements IActionCreatePreparedStatementRequest\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.IActionCreatePreparedStatementRequest=} [properties] Properties to set\n                     */\n                    function ActionCreatePreparedStatementRequest(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                     * ActionCreatePreparedStatementRequest query.\n                     * @member {string} query\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest\n                     * @instance\n                     */\n                    ActionCreatePreparedStatementRequest.prototype.query = \"\";\n\n                    /**\n                     * ActionCreatePreparedStatementRequest transactionId.\n                     * @member {Uint8Array|null|undefined} transactionId\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest\n                     * @instance\n                     */\n                    ActionCreatePreparedStatementRequest.prototype.transactionId = null;\n\n                    // OneOf field names bound to virtual getters and setters\n                    var $oneOfFields;\n\n                    /**\n                     * ActionCreatePreparedStatementRequest _transactionId.\n                     * @member {\"transactionId\"|undefined} _transactionId\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest\n                     * @instance\n                     */\n                    Object.defineProperty(ActionCreatePreparedStatementRequest.prototype, \"_transactionId\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"transactionId\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * Creates a new ActionCreatePreparedStatementRequest instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCreatePreparedStatementRequest=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest} ActionCreatePreparedStatementRequest instance\n                     */\n                    ActionCreatePreparedStatementRequest.create = function create(properties) {\n                        return new ActionCreatePreparedStatementRequest(properties);\n                    };\n\n                    /**\n                     * Encodes the specified ActionCreatePreparedStatementRequest message. Does not implicitly {@link arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCreatePreparedStatementRequest} message ActionCreatePreparedStatementRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionCreatePreparedStatementRequest.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.query != null && Object.hasOwnProperty.call(message, \"query\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).string(message.query);\n                        if (message.transactionId != null && Object.hasOwnProperty.call(message, \"transactionId\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.transactionId);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified ActionCreatePreparedStatementRequest message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCreatePreparedStatementRequest} message ActionCreatePreparedStatementRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionCreatePreparedStatementRequest.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes an ActionCreatePreparedStatementRequest message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest\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 {arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest} ActionCreatePreparedStatementRequest\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                    ActionCreatePreparedStatementRequest.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.arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.query = reader.string();\n                                    break;\n                                }\n                            case 2: {\n                                    message.transactionId = reader.bytes();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes an ActionCreatePreparedStatementRequest message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest} ActionCreatePreparedStatementRequest\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                    ActionCreatePreparedStatementRequest.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 ActionCreatePreparedStatementRequest message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest\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                    ActionCreatePreparedStatementRequest.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        var properties = {};\n                        if (message.query != null && message.hasOwnProperty(\"query\"))\n                            if (!$util.isString(message.query))\n                                return \"query: string expected\";\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\")) {\n                            properties._transactionId = 1;\n                            if (!(message.transactionId && typeof message.transactionId.length === \"number\" || $util.isString(message.transactionId)))\n                                return \"transactionId: buffer expected\";\n                        }\n                        return null;\n                    };\n\n                    /**\n                     * Creates an ActionCreatePreparedStatementRequest message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest} ActionCreatePreparedStatementRequest\n                     */\n                    ActionCreatePreparedStatementRequest.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest();\n                        if (object.query != null)\n                            message.query = String(object.query);\n                        if (object.transactionId != null)\n                            if (typeof object.transactionId === \"string\")\n                                $util.base64.decode(object.transactionId, message.transactionId = $util.newBuffer($util.base64.length(object.transactionId)), 0);\n                            else if (object.transactionId.length >= 0)\n                                message.transactionId = object.transactionId;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from an ActionCreatePreparedStatementRequest message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest} message ActionCreatePreparedStatementRequest\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    ActionCreatePreparedStatementRequest.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            object.query = \"\";\n                        if (message.query != null && message.hasOwnProperty(\"query\"))\n                            object.query = message.query;\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\")) {\n                            object.transactionId = options.bytes === String ? $util.base64.encode(message.transactionId, 0, message.transactionId.length) : options.bytes === Array ? Array.prototype.slice.call(message.transactionId) : message.transactionId;\n                            if (options.oneofs)\n                                object._transactionId = \"transactionId\";\n                        }\n                        return object;\n                    };\n\n                    /**\n                     * Converts this ActionCreatePreparedStatementRequest to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    ActionCreatePreparedStatementRequest.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for ActionCreatePreparedStatementRequest\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    ActionCreatePreparedStatementRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.ActionCreatePreparedStatementRequest\";\n                    };\n\n                    return ActionCreatePreparedStatementRequest;\n                })();\n\n                sql.SubstraitPlan = (function() {\n\n                    /**\n                     * Properties of a SubstraitPlan.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ISubstraitPlan\n                     * @property {Uint8Array|null} [plan] SubstraitPlan plan\n                     * @property {string|null} [version] SubstraitPlan version\n                     */\n\n                    /**\n                     * Constructs a new SubstraitPlan.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a SubstraitPlan.\n                     * @implements ISubstraitPlan\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ISubstraitPlan=} [properties] Properties to set\n                     */\n                    function SubstraitPlan(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                     * SubstraitPlan plan.\n                     * @member {Uint8Array} plan\n                     * @memberof arrow.flight.protocol.sql.SubstraitPlan\n                     * @instance\n                     */\n                    SubstraitPlan.prototype.plan = $util.newBuffer([]);\n\n                    /**\n                     * SubstraitPlan version.\n                     * @member {string} version\n                     * @memberof arrow.flight.protocol.sql.SubstraitPlan\n                     * @instance\n                     */\n                    SubstraitPlan.prototype.version = \"\";\n\n                    /**\n                     * Creates a new SubstraitPlan instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.SubstraitPlan\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ISubstraitPlan=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.SubstraitPlan} SubstraitPlan instance\n                     */\n                    SubstraitPlan.create = function create(properties) {\n                        return new SubstraitPlan(properties);\n                    };\n\n                    /**\n                     * Encodes the specified SubstraitPlan message. Does not implicitly {@link arrow.flight.protocol.sql.SubstraitPlan.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.SubstraitPlan\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ISubstraitPlan} message SubstraitPlan message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    SubstraitPlan.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.plan != null && Object.hasOwnProperty.call(message, \"plan\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.plan);\n                        if (message.version != null && Object.hasOwnProperty.call(message, \"version\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).string(message.version);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified SubstraitPlan message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.SubstraitPlan.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.SubstraitPlan\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ISubstraitPlan} message SubstraitPlan message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    SubstraitPlan.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a SubstraitPlan message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.SubstraitPlan\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 {arrow.flight.protocol.sql.SubstraitPlan} SubstraitPlan\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                    SubstraitPlan.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.arrow.flight.protocol.sql.SubstraitPlan();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.plan = reader.bytes();\n                                    break;\n                                }\n                            case 2: {\n                                    message.version = reader.string();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a SubstraitPlan message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.SubstraitPlan\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.SubstraitPlan} SubstraitPlan\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                    SubstraitPlan.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 SubstraitPlan message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.SubstraitPlan\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                    SubstraitPlan.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.plan != null && message.hasOwnProperty(\"plan\"))\n                            if (!(message.plan && typeof message.plan.length === \"number\" || $util.isString(message.plan)))\n                                return \"plan: buffer expected\";\n                        if (message.version != null && message.hasOwnProperty(\"version\"))\n                            if (!$util.isString(message.version))\n                                return \"version: string expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates a SubstraitPlan message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.SubstraitPlan\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.SubstraitPlan} SubstraitPlan\n                     */\n                    SubstraitPlan.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.SubstraitPlan)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.SubstraitPlan();\n                        if (object.plan != null)\n                            if (typeof object.plan === \"string\")\n                                $util.base64.decode(object.plan, message.plan = $util.newBuffer($util.base64.length(object.plan)), 0);\n                            else if (object.plan.length >= 0)\n                                message.plan = object.plan;\n                        if (object.version != null)\n                            message.version = String(object.version);\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a SubstraitPlan message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.SubstraitPlan\n                     * @static\n                     * @param {arrow.flight.protocol.sql.SubstraitPlan} message SubstraitPlan\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    SubstraitPlan.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults) {\n                            if (options.bytes === String)\n                                object.plan = \"\";\n                            else {\n                                object.plan = [];\n                                if (options.bytes !== Array)\n                                    object.plan = $util.newBuffer(object.plan);\n                            }\n                            object.version = \"\";\n                        }\n                        if (message.plan != null && message.hasOwnProperty(\"plan\"))\n                            object.plan = options.bytes === String ? $util.base64.encode(message.plan, 0, message.plan.length) : options.bytes === Array ? Array.prototype.slice.call(message.plan) : message.plan;\n                        if (message.version != null && message.hasOwnProperty(\"version\"))\n                            object.version = message.version;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this SubstraitPlan to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.SubstraitPlan\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    SubstraitPlan.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for SubstraitPlan\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.SubstraitPlan\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    SubstraitPlan.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.SubstraitPlan\";\n                    };\n\n                    return SubstraitPlan;\n                })();\n\n                sql.ActionCreatePreparedSubstraitPlanRequest = (function() {\n\n                    /**\n                     * Properties of an ActionCreatePreparedSubstraitPlanRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface IActionCreatePreparedSubstraitPlanRequest\n                     * @property {arrow.flight.protocol.sql.ISubstraitPlan|null} [plan] ActionCreatePreparedSubstraitPlanRequest plan\n                     * @property {Uint8Array|null} [transactionId] ActionCreatePreparedSubstraitPlanRequest transactionId\n                     */\n\n                    /**\n                     * Constructs a new ActionCreatePreparedSubstraitPlanRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents an ActionCreatePreparedSubstraitPlanRequest.\n                     * @implements IActionCreatePreparedSubstraitPlanRequest\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.IActionCreatePreparedSubstraitPlanRequest=} [properties] Properties to set\n                     */\n                    function ActionCreatePreparedSubstraitPlanRequest(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                     * ActionCreatePreparedSubstraitPlanRequest plan.\n                     * @member {arrow.flight.protocol.sql.ISubstraitPlan|null|undefined} plan\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest\n                     * @instance\n                     */\n                    ActionCreatePreparedSubstraitPlanRequest.prototype.plan = null;\n\n                    /**\n                     * ActionCreatePreparedSubstraitPlanRequest transactionId.\n                     * @member {Uint8Array|null|undefined} transactionId\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest\n                     * @instance\n                     */\n                    ActionCreatePreparedSubstraitPlanRequest.prototype.transactionId = null;\n\n                    // OneOf field names bound to virtual getters and setters\n                    var $oneOfFields;\n\n                    /**\n                     * ActionCreatePreparedSubstraitPlanRequest _transactionId.\n                     * @member {\"transactionId\"|undefined} _transactionId\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest\n                     * @instance\n                     */\n                    Object.defineProperty(ActionCreatePreparedSubstraitPlanRequest.prototype, \"_transactionId\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"transactionId\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * Creates a new ActionCreatePreparedSubstraitPlanRequest instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCreatePreparedSubstraitPlanRequest=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest} ActionCreatePreparedSubstraitPlanRequest instance\n                     */\n                    ActionCreatePreparedSubstraitPlanRequest.create = function create(properties) {\n                        return new ActionCreatePreparedSubstraitPlanRequest(properties);\n                    };\n\n                    /**\n                     * Encodes the specified ActionCreatePreparedSubstraitPlanRequest message. Does not implicitly {@link arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCreatePreparedSubstraitPlanRequest} message ActionCreatePreparedSubstraitPlanRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionCreatePreparedSubstraitPlanRequest.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.plan != null && Object.hasOwnProperty.call(message, \"plan\"))\n                            $root.arrow.flight.protocol.sql.SubstraitPlan.encode(message.plan, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n                        if (message.transactionId != null && Object.hasOwnProperty.call(message, \"transactionId\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.transactionId);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified ActionCreatePreparedSubstraitPlanRequest message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCreatePreparedSubstraitPlanRequest} message ActionCreatePreparedSubstraitPlanRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionCreatePreparedSubstraitPlanRequest.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes an ActionCreatePreparedSubstraitPlanRequest message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest\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 {arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest} ActionCreatePreparedSubstraitPlanRequest\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                    ActionCreatePreparedSubstraitPlanRequest.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.arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.plan = $root.arrow.flight.protocol.sql.SubstraitPlan.decode(reader, reader.uint32());\n                                    break;\n                                }\n                            case 2: {\n                                    message.transactionId = reader.bytes();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes an ActionCreatePreparedSubstraitPlanRequest message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest} ActionCreatePreparedSubstraitPlanRequest\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                    ActionCreatePreparedSubstraitPlanRequest.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 ActionCreatePreparedSubstraitPlanRequest message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest\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                    ActionCreatePreparedSubstraitPlanRequest.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        var properties = {};\n                        if (message.plan != null && message.hasOwnProperty(\"plan\")) {\n                            var error = $root.arrow.flight.protocol.sql.SubstraitPlan.verify(message.plan);\n                            if (error)\n                                return \"plan.\" + error;\n                        }\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\")) {\n                            properties._transactionId = 1;\n                            if (!(message.transactionId && typeof message.transactionId.length === \"number\" || $util.isString(message.transactionId)))\n                                return \"transactionId: buffer expected\";\n                        }\n                        return null;\n                    };\n\n                    /**\n                     * Creates an ActionCreatePreparedSubstraitPlanRequest message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest} ActionCreatePreparedSubstraitPlanRequest\n                     */\n                    ActionCreatePreparedSubstraitPlanRequest.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest();\n                        if (object.plan != null) {\n                            if (typeof object.plan !== \"object\")\n                                throw TypeError(\".arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest.plan: object expected\");\n                            message.plan = $root.arrow.flight.protocol.sql.SubstraitPlan.fromObject(object.plan);\n                        }\n                        if (object.transactionId != null)\n                            if (typeof object.transactionId === \"string\")\n                                $util.base64.decode(object.transactionId, message.transactionId = $util.newBuffer($util.base64.length(object.transactionId)), 0);\n                            else if (object.transactionId.length >= 0)\n                                message.transactionId = object.transactionId;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from an ActionCreatePreparedSubstraitPlanRequest message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest} message ActionCreatePreparedSubstraitPlanRequest\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    ActionCreatePreparedSubstraitPlanRequest.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            object.plan = null;\n                        if (message.plan != null && message.hasOwnProperty(\"plan\"))\n                            object.plan = $root.arrow.flight.protocol.sql.SubstraitPlan.toObject(message.plan, options);\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\")) {\n                            object.transactionId = options.bytes === String ? $util.base64.encode(message.transactionId, 0, message.transactionId.length) : options.bytes === Array ? Array.prototype.slice.call(message.transactionId) : message.transactionId;\n                            if (options.oneofs)\n                                object._transactionId = \"transactionId\";\n                        }\n                        return object;\n                    };\n\n                    /**\n                     * Converts this ActionCreatePreparedSubstraitPlanRequest to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    ActionCreatePreparedSubstraitPlanRequest.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for ActionCreatePreparedSubstraitPlanRequest\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    ActionCreatePreparedSubstraitPlanRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.ActionCreatePreparedSubstraitPlanRequest\";\n                    };\n\n                    return ActionCreatePreparedSubstraitPlanRequest;\n                })();\n\n                sql.ActionCreatePreparedStatementResult = (function() {\n\n                    /**\n                     * Properties of an ActionCreatePreparedStatementResult.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface IActionCreatePreparedStatementResult\n                     * @property {Uint8Array|null} [preparedStatementHandle] ActionCreatePreparedStatementResult preparedStatementHandle\n                     * @property {Uint8Array|null} [datasetSchema] ActionCreatePreparedStatementResult datasetSchema\n                     * @property {Uint8Array|null} [parameterSchema] ActionCreatePreparedStatementResult parameterSchema\n                     */\n\n                    /**\n                     * Constructs a new ActionCreatePreparedStatementResult.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents an ActionCreatePreparedStatementResult.\n                     * @implements IActionCreatePreparedStatementResult\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.IActionCreatePreparedStatementResult=} [properties] Properties to set\n                     */\n                    function ActionCreatePreparedStatementResult(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                     * ActionCreatePreparedStatementResult preparedStatementHandle.\n                     * @member {Uint8Array} preparedStatementHandle\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementResult\n                     * @instance\n                     */\n                    ActionCreatePreparedStatementResult.prototype.preparedStatementHandle = $util.newBuffer([]);\n\n                    /**\n                     * ActionCreatePreparedStatementResult datasetSchema.\n                     * @member {Uint8Array} datasetSchema\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementResult\n                     * @instance\n                     */\n                    ActionCreatePreparedStatementResult.prototype.datasetSchema = $util.newBuffer([]);\n\n                    /**\n                     * ActionCreatePreparedStatementResult parameterSchema.\n                     * @member {Uint8Array} parameterSchema\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementResult\n                     * @instance\n                     */\n                    ActionCreatePreparedStatementResult.prototype.parameterSchema = $util.newBuffer([]);\n\n                    /**\n                     * Creates a new ActionCreatePreparedStatementResult instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCreatePreparedStatementResult=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.ActionCreatePreparedStatementResult} ActionCreatePreparedStatementResult instance\n                     */\n                    ActionCreatePreparedStatementResult.create = function create(properties) {\n                        return new ActionCreatePreparedStatementResult(properties);\n                    };\n\n                    /**\n                     * Encodes the specified ActionCreatePreparedStatementResult message. Does not implicitly {@link arrow.flight.protocol.sql.ActionCreatePreparedStatementResult.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCreatePreparedStatementResult} message ActionCreatePreparedStatementResult message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionCreatePreparedStatementResult.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.preparedStatementHandle != null && Object.hasOwnProperty.call(message, \"preparedStatementHandle\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.preparedStatementHandle);\n                        if (message.datasetSchema != null && Object.hasOwnProperty.call(message, \"datasetSchema\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.datasetSchema);\n                        if (message.parameterSchema != null && Object.hasOwnProperty.call(message, \"parameterSchema\"))\n                            writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.parameterSchema);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified ActionCreatePreparedStatementResult message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.ActionCreatePreparedStatementResult.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCreatePreparedStatementResult} message ActionCreatePreparedStatementResult message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionCreatePreparedStatementResult.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes an ActionCreatePreparedStatementResult message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementResult\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 {arrow.flight.protocol.sql.ActionCreatePreparedStatementResult} ActionCreatePreparedStatementResult\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                    ActionCreatePreparedStatementResult.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.arrow.flight.protocol.sql.ActionCreatePreparedStatementResult();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.preparedStatementHandle = reader.bytes();\n                                    break;\n                                }\n                            case 2: {\n                                    message.datasetSchema = reader.bytes();\n                                    break;\n                                }\n                            case 3: {\n                                    message.parameterSchema = reader.bytes();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes an ActionCreatePreparedStatementResult message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementResult\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.ActionCreatePreparedStatementResult} ActionCreatePreparedStatementResult\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                    ActionCreatePreparedStatementResult.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 ActionCreatePreparedStatementResult message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementResult\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                    ActionCreatePreparedStatementResult.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.preparedStatementHandle != null && message.hasOwnProperty(\"preparedStatementHandle\"))\n                            if (!(message.preparedStatementHandle && typeof message.preparedStatementHandle.length === \"number\" || $util.isString(message.preparedStatementHandle)))\n                                return \"preparedStatementHandle: buffer expected\";\n                        if (message.datasetSchema != null && message.hasOwnProperty(\"datasetSchema\"))\n                            if (!(message.datasetSchema && typeof message.datasetSchema.length === \"number\" || $util.isString(message.datasetSchema)))\n                                return \"datasetSchema: buffer expected\";\n                        if (message.parameterSchema != null && message.hasOwnProperty(\"parameterSchema\"))\n                            if (!(message.parameterSchema && typeof message.parameterSchema.length === \"number\" || $util.isString(message.parameterSchema)))\n                                return \"parameterSchema: buffer expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates an ActionCreatePreparedStatementResult message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementResult\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.ActionCreatePreparedStatementResult} ActionCreatePreparedStatementResult\n                     */\n                    ActionCreatePreparedStatementResult.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.ActionCreatePreparedStatementResult)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.ActionCreatePreparedStatementResult();\n                        if (object.preparedStatementHandle != null)\n                            if (typeof object.preparedStatementHandle === \"string\")\n                                $util.base64.decode(object.preparedStatementHandle, message.preparedStatementHandle = $util.newBuffer($util.base64.length(object.preparedStatementHandle)), 0);\n                            else if (object.preparedStatementHandle.length >= 0)\n                                message.preparedStatementHandle = object.preparedStatementHandle;\n                        if (object.datasetSchema != null)\n                            if (typeof object.datasetSchema === \"string\")\n                                $util.base64.decode(object.datasetSchema, message.datasetSchema = $util.newBuffer($util.base64.length(object.datasetSchema)), 0);\n                            else if (object.datasetSchema.length >= 0)\n                                message.datasetSchema = object.datasetSchema;\n                        if (object.parameterSchema != null)\n                            if (typeof object.parameterSchema === \"string\")\n                                $util.base64.decode(object.parameterSchema, message.parameterSchema = $util.newBuffer($util.base64.length(object.parameterSchema)), 0);\n                            else if (object.parameterSchema.length >= 0)\n                                message.parameterSchema = object.parameterSchema;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from an ActionCreatePreparedStatementResult message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ActionCreatePreparedStatementResult} message ActionCreatePreparedStatementResult\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    ActionCreatePreparedStatementResult.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults) {\n                            if (options.bytes === String)\n                                object.preparedStatementHandle = \"\";\n                            else {\n                                object.preparedStatementHandle = [];\n                                if (options.bytes !== Array)\n                                    object.preparedStatementHandle = $util.newBuffer(object.preparedStatementHandle);\n                            }\n                            if (options.bytes === String)\n                                object.datasetSchema = \"\";\n                            else {\n                                object.datasetSchema = [];\n                                if (options.bytes !== Array)\n                                    object.datasetSchema = $util.newBuffer(object.datasetSchema);\n                            }\n                            if (options.bytes === String)\n                                object.parameterSchema = \"\";\n                            else {\n                                object.parameterSchema = [];\n                                if (options.bytes !== Array)\n                                    object.parameterSchema = $util.newBuffer(object.parameterSchema);\n                            }\n                        }\n                        if (message.preparedStatementHandle != null && message.hasOwnProperty(\"preparedStatementHandle\"))\n                            object.preparedStatementHandle = options.bytes === String ? $util.base64.encode(message.preparedStatementHandle, 0, message.preparedStatementHandle.length) : options.bytes === Array ? Array.prototype.slice.call(message.preparedStatementHandle) : message.preparedStatementHandle;\n                        if (message.datasetSchema != null && message.hasOwnProperty(\"datasetSchema\"))\n                            object.datasetSchema = options.bytes === String ? $util.base64.encode(message.datasetSchema, 0, message.datasetSchema.length) : options.bytes === Array ? Array.prototype.slice.call(message.datasetSchema) : message.datasetSchema;\n                        if (message.parameterSchema != null && message.hasOwnProperty(\"parameterSchema\"))\n                            object.parameterSchema = options.bytes === String ? $util.base64.encode(message.parameterSchema, 0, message.parameterSchema.length) : options.bytes === Array ? Array.prototype.slice.call(message.parameterSchema) : message.parameterSchema;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this ActionCreatePreparedStatementResult to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementResult\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    ActionCreatePreparedStatementResult.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for ActionCreatePreparedStatementResult\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.ActionCreatePreparedStatementResult\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    ActionCreatePreparedStatementResult.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.ActionCreatePreparedStatementResult\";\n                    };\n\n                    return ActionCreatePreparedStatementResult;\n                })();\n\n                sql.ActionClosePreparedStatementRequest = (function() {\n\n                    /**\n                     * Properties of an ActionClosePreparedStatementRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface IActionClosePreparedStatementRequest\n                     * @property {Uint8Array|null} [preparedStatementHandle] ActionClosePreparedStatementRequest preparedStatementHandle\n                     */\n\n                    /**\n                     * Constructs a new ActionClosePreparedStatementRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents an ActionClosePreparedStatementRequest.\n                     * @implements IActionClosePreparedStatementRequest\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.IActionClosePreparedStatementRequest=} [properties] Properties to set\n                     */\n                    function ActionClosePreparedStatementRequest(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                     * ActionClosePreparedStatementRequest preparedStatementHandle.\n                     * @member {Uint8Array} preparedStatementHandle\n                     * @memberof arrow.flight.protocol.sql.ActionClosePreparedStatementRequest\n                     * @instance\n                     */\n                    ActionClosePreparedStatementRequest.prototype.preparedStatementHandle = $util.newBuffer([]);\n\n                    /**\n                     * Creates a new ActionClosePreparedStatementRequest instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.ActionClosePreparedStatementRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionClosePreparedStatementRequest=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.ActionClosePreparedStatementRequest} ActionClosePreparedStatementRequest instance\n                     */\n                    ActionClosePreparedStatementRequest.create = function create(properties) {\n                        return new ActionClosePreparedStatementRequest(properties);\n                    };\n\n                    /**\n                     * Encodes the specified ActionClosePreparedStatementRequest message. Does not implicitly {@link arrow.flight.protocol.sql.ActionClosePreparedStatementRequest.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.ActionClosePreparedStatementRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionClosePreparedStatementRequest} message ActionClosePreparedStatementRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionClosePreparedStatementRequest.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.preparedStatementHandle != null && Object.hasOwnProperty.call(message, \"preparedStatementHandle\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.preparedStatementHandle);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified ActionClosePreparedStatementRequest message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.ActionClosePreparedStatementRequest.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionClosePreparedStatementRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionClosePreparedStatementRequest} message ActionClosePreparedStatementRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionClosePreparedStatementRequest.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes an ActionClosePreparedStatementRequest message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.ActionClosePreparedStatementRequest\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 {arrow.flight.protocol.sql.ActionClosePreparedStatementRequest} ActionClosePreparedStatementRequest\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                    ActionClosePreparedStatementRequest.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.arrow.flight.protocol.sql.ActionClosePreparedStatementRequest();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.preparedStatementHandle = reader.bytes();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes an ActionClosePreparedStatementRequest message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionClosePreparedStatementRequest\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.ActionClosePreparedStatementRequest} ActionClosePreparedStatementRequest\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                    ActionClosePreparedStatementRequest.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 ActionClosePreparedStatementRequest message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.ActionClosePreparedStatementRequest\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                    ActionClosePreparedStatementRequest.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.preparedStatementHandle != null && message.hasOwnProperty(\"preparedStatementHandle\"))\n                            if (!(message.preparedStatementHandle && typeof message.preparedStatementHandle.length === \"number\" || $util.isString(message.preparedStatementHandle)))\n                                return \"preparedStatementHandle: buffer expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates an ActionClosePreparedStatementRequest message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.ActionClosePreparedStatementRequest\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.ActionClosePreparedStatementRequest} ActionClosePreparedStatementRequest\n                     */\n                    ActionClosePreparedStatementRequest.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.ActionClosePreparedStatementRequest)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.ActionClosePreparedStatementRequest();\n                        if (object.preparedStatementHandle != null)\n                            if (typeof object.preparedStatementHandle === \"string\")\n                                $util.base64.decode(object.preparedStatementHandle, message.preparedStatementHandle = $util.newBuffer($util.base64.length(object.preparedStatementHandle)), 0);\n                            else if (object.preparedStatementHandle.length >= 0)\n                                message.preparedStatementHandle = object.preparedStatementHandle;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from an ActionClosePreparedStatementRequest message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.ActionClosePreparedStatementRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ActionClosePreparedStatementRequest} message ActionClosePreparedStatementRequest\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    ActionClosePreparedStatementRequest.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            if (options.bytes === String)\n                                object.preparedStatementHandle = \"\";\n                            else {\n                                object.preparedStatementHandle = [];\n                                if (options.bytes !== Array)\n                                    object.preparedStatementHandle = $util.newBuffer(object.preparedStatementHandle);\n                            }\n                        if (message.preparedStatementHandle != null && message.hasOwnProperty(\"preparedStatementHandle\"))\n                            object.preparedStatementHandle = options.bytes === String ? $util.base64.encode(message.preparedStatementHandle, 0, message.preparedStatementHandle.length) : options.bytes === Array ? Array.prototype.slice.call(message.preparedStatementHandle) : message.preparedStatementHandle;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this ActionClosePreparedStatementRequest to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.ActionClosePreparedStatementRequest\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    ActionClosePreparedStatementRequest.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for ActionClosePreparedStatementRequest\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.ActionClosePreparedStatementRequest\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    ActionClosePreparedStatementRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.ActionClosePreparedStatementRequest\";\n                    };\n\n                    return ActionClosePreparedStatementRequest;\n                })();\n\n                sql.ActionBeginTransactionRequest = (function() {\n\n                    /**\n                     * Properties of an ActionBeginTransactionRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface IActionBeginTransactionRequest\n                     */\n\n                    /**\n                     * Constructs a new ActionBeginTransactionRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents an ActionBeginTransactionRequest.\n                     * @implements IActionBeginTransactionRequest\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.IActionBeginTransactionRequest=} [properties] Properties to set\n                     */\n                    function ActionBeginTransactionRequest(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                     * Creates a new ActionBeginTransactionRequest instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionBeginTransactionRequest=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.ActionBeginTransactionRequest} ActionBeginTransactionRequest instance\n                     */\n                    ActionBeginTransactionRequest.create = function create(properties) {\n                        return new ActionBeginTransactionRequest(properties);\n                    };\n\n                    /**\n                     * Encodes the specified ActionBeginTransactionRequest message. Does not implicitly {@link arrow.flight.protocol.sql.ActionBeginTransactionRequest.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionBeginTransactionRequest} message ActionBeginTransactionRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionBeginTransactionRequest.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified ActionBeginTransactionRequest message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.ActionBeginTransactionRequest.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionBeginTransactionRequest} message ActionBeginTransactionRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionBeginTransactionRequest.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes an ActionBeginTransactionRequest message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionRequest\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 {arrow.flight.protocol.sql.ActionBeginTransactionRequest} ActionBeginTransactionRequest\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                    ActionBeginTransactionRequest.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.arrow.flight.protocol.sql.ActionBeginTransactionRequest();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes an ActionBeginTransactionRequest message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionRequest\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.ActionBeginTransactionRequest} ActionBeginTransactionRequest\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                    ActionBeginTransactionRequest.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 ActionBeginTransactionRequest message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionRequest\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                    ActionBeginTransactionRequest.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates an ActionBeginTransactionRequest message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionRequest\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.ActionBeginTransactionRequest} ActionBeginTransactionRequest\n                     */\n                    ActionBeginTransactionRequest.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.ActionBeginTransactionRequest)\n                            return object;\n                        return new $root.arrow.flight.protocol.sql.ActionBeginTransactionRequest();\n                    };\n\n                    /**\n                     * Creates a plain object from an ActionBeginTransactionRequest message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ActionBeginTransactionRequest} message ActionBeginTransactionRequest\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    ActionBeginTransactionRequest.toObject = function toObject() {\n                        return {};\n                    };\n\n                    /**\n                     * Converts this ActionBeginTransactionRequest to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionRequest\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    ActionBeginTransactionRequest.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for ActionBeginTransactionRequest\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionRequest\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    ActionBeginTransactionRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.ActionBeginTransactionRequest\";\n                    };\n\n                    return ActionBeginTransactionRequest;\n                })();\n\n                sql.ActionBeginSavepointRequest = (function() {\n\n                    /**\n                     * Properties of an ActionBeginSavepointRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface IActionBeginSavepointRequest\n                     * @property {Uint8Array|null} [transactionId] ActionBeginSavepointRequest transactionId\n                     * @property {string|null} [name] ActionBeginSavepointRequest name\n                     */\n\n                    /**\n                     * Constructs a new ActionBeginSavepointRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents an ActionBeginSavepointRequest.\n                     * @implements IActionBeginSavepointRequest\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.IActionBeginSavepointRequest=} [properties] Properties to set\n                     */\n                    function ActionBeginSavepointRequest(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                     * ActionBeginSavepointRequest transactionId.\n                     * @member {Uint8Array} transactionId\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointRequest\n                     * @instance\n                     */\n                    ActionBeginSavepointRequest.prototype.transactionId = $util.newBuffer([]);\n\n                    /**\n                     * ActionBeginSavepointRequest name.\n                     * @member {string} name\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointRequest\n                     * @instance\n                     */\n                    ActionBeginSavepointRequest.prototype.name = \"\";\n\n                    /**\n                     * Creates a new ActionBeginSavepointRequest instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionBeginSavepointRequest=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.ActionBeginSavepointRequest} ActionBeginSavepointRequest instance\n                     */\n                    ActionBeginSavepointRequest.create = function create(properties) {\n                        return new ActionBeginSavepointRequest(properties);\n                    };\n\n                    /**\n                     * Encodes the specified ActionBeginSavepointRequest message. Does not implicitly {@link arrow.flight.protocol.sql.ActionBeginSavepointRequest.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionBeginSavepointRequest} message ActionBeginSavepointRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionBeginSavepointRequest.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.transactionId != null && Object.hasOwnProperty.call(message, \"transactionId\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.transactionId);\n                        if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).string(message.name);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified ActionBeginSavepointRequest message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.ActionBeginSavepointRequest.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionBeginSavepointRequest} message ActionBeginSavepointRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionBeginSavepointRequest.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes an ActionBeginSavepointRequest message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointRequest\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 {arrow.flight.protocol.sql.ActionBeginSavepointRequest} ActionBeginSavepointRequest\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                    ActionBeginSavepointRequest.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.arrow.flight.protocol.sql.ActionBeginSavepointRequest();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.transactionId = reader.bytes();\n                                    break;\n                                }\n                            case 2: {\n                                    message.name = reader.string();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes an ActionBeginSavepointRequest message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointRequest\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.ActionBeginSavepointRequest} ActionBeginSavepointRequest\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                    ActionBeginSavepointRequest.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 ActionBeginSavepointRequest message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointRequest\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                    ActionBeginSavepointRequest.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\"))\n                            if (!(message.transactionId && typeof message.transactionId.length === \"number\" || $util.isString(message.transactionId)))\n                                return \"transactionId: buffer expected\";\n                        if (message.name != null && message.hasOwnProperty(\"name\"))\n                            if (!$util.isString(message.name))\n                                return \"name: string expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates an ActionBeginSavepointRequest message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointRequest\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.ActionBeginSavepointRequest} ActionBeginSavepointRequest\n                     */\n                    ActionBeginSavepointRequest.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.ActionBeginSavepointRequest)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.ActionBeginSavepointRequest();\n                        if (object.transactionId != null)\n                            if (typeof object.transactionId === \"string\")\n                                $util.base64.decode(object.transactionId, message.transactionId = $util.newBuffer($util.base64.length(object.transactionId)), 0);\n                            else if (object.transactionId.length >= 0)\n                                message.transactionId = object.transactionId;\n                        if (object.name != null)\n                            message.name = String(object.name);\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from an ActionBeginSavepointRequest message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ActionBeginSavepointRequest} message ActionBeginSavepointRequest\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    ActionBeginSavepointRequest.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults) {\n                            if (options.bytes === String)\n                                object.transactionId = \"\";\n                            else {\n                                object.transactionId = [];\n                                if (options.bytes !== Array)\n                                    object.transactionId = $util.newBuffer(object.transactionId);\n                            }\n                            object.name = \"\";\n                        }\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\"))\n                            object.transactionId = options.bytes === String ? $util.base64.encode(message.transactionId, 0, message.transactionId.length) : options.bytes === Array ? Array.prototype.slice.call(message.transactionId) : message.transactionId;\n                        if (message.name != null && message.hasOwnProperty(\"name\"))\n                            object.name = message.name;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this ActionBeginSavepointRequest to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointRequest\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    ActionBeginSavepointRequest.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for ActionBeginSavepointRequest\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointRequest\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    ActionBeginSavepointRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.ActionBeginSavepointRequest\";\n                    };\n\n                    return ActionBeginSavepointRequest;\n                })();\n\n                sql.ActionBeginTransactionResult = (function() {\n\n                    /**\n                     * Properties of an ActionBeginTransactionResult.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface IActionBeginTransactionResult\n                     * @property {Uint8Array|null} [transactionId] ActionBeginTransactionResult transactionId\n                     */\n\n                    /**\n                     * Constructs a new ActionBeginTransactionResult.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents an ActionBeginTransactionResult.\n                     * @implements IActionBeginTransactionResult\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.IActionBeginTransactionResult=} [properties] Properties to set\n                     */\n                    function ActionBeginTransactionResult(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                     * ActionBeginTransactionResult transactionId.\n                     * @member {Uint8Array} transactionId\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionResult\n                     * @instance\n                     */\n                    ActionBeginTransactionResult.prototype.transactionId = $util.newBuffer([]);\n\n                    /**\n                     * Creates a new ActionBeginTransactionResult instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionBeginTransactionResult=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.ActionBeginTransactionResult} ActionBeginTransactionResult instance\n                     */\n                    ActionBeginTransactionResult.create = function create(properties) {\n                        return new ActionBeginTransactionResult(properties);\n                    };\n\n                    /**\n                     * Encodes the specified ActionBeginTransactionResult message. Does not implicitly {@link arrow.flight.protocol.sql.ActionBeginTransactionResult.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionBeginTransactionResult} message ActionBeginTransactionResult message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionBeginTransactionResult.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.transactionId != null && Object.hasOwnProperty.call(message, \"transactionId\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.transactionId);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified ActionBeginTransactionResult message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.ActionBeginTransactionResult.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionBeginTransactionResult} message ActionBeginTransactionResult message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionBeginTransactionResult.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes an ActionBeginTransactionResult message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionResult\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 {arrow.flight.protocol.sql.ActionBeginTransactionResult} ActionBeginTransactionResult\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                    ActionBeginTransactionResult.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.arrow.flight.protocol.sql.ActionBeginTransactionResult();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.transactionId = reader.bytes();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes an ActionBeginTransactionResult message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionResult\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.ActionBeginTransactionResult} ActionBeginTransactionResult\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                    ActionBeginTransactionResult.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 ActionBeginTransactionResult message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionResult\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                    ActionBeginTransactionResult.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\"))\n                            if (!(message.transactionId && typeof message.transactionId.length === \"number\" || $util.isString(message.transactionId)))\n                                return \"transactionId: buffer expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates an ActionBeginTransactionResult message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionResult\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.ActionBeginTransactionResult} ActionBeginTransactionResult\n                     */\n                    ActionBeginTransactionResult.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.ActionBeginTransactionResult)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.ActionBeginTransactionResult();\n                        if (object.transactionId != null)\n                            if (typeof object.transactionId === \"string\")\n                                $util.base64.decode(object.transactionId, message.transactionId = $util.newBuffer($util.base64.length(object.transactionId)), 0);\n                            else if (object.transactionId.length >= 0)\n                                message.transactionId = object.transactionId;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from an ActionBeginTransactionResult message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ActionBeginTransactionResult} message ActionBeginTransactionResult\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    ActionBeginTransactionResult.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            if (options.bytes === String)\n                                object.transactionId = \"\";\n                            else {\n                                object.transactionId = [];\n                                if (options.bytes !== Array)\n                                    object.transactionId = $util.newBuffer(object.transactionId);\n                            }\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\"))\n                            object.transactionId = options.bytes === String ? $util.base64.encode(message.transactionId, 0, message.transactionId.length) : options.bytes === Array ? Array.prototype.slice.call(message.transactionId) : message.transactionId;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this ActionBeginTransactionResult to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionResult\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    ActionBeginTransactionResult.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for ActionBeginTransactionResult\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.ActionBeginTransactionResult\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    ActionBeginTransactionResult.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.ActionBeginTransactionResult\";\n                    };\n\n                    return ActionBeginTransactionResult;\n                })();\n\n                sql.ActionBeginSavepointResult = (function() {\n\n                    /**\n                     * Properties of an ActionBeginSavepointResult.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface IActionBeginSavepointResult\n                     * @property {Uint8Array|null} [savepointId] ActionBeginSavepointResult savepointId\n                     */\n\n                    /**\n                     * Constructs a new ActionBeginSavepointResult.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents an ActionBeginSavepointResult.\n                     * @implements IActionBeginSavepointResult\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.IActionBeginSavepointResult=} [properties] Properties to set\n                     */\n                    function ActionBeginSavepointResult(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                     * ActionBeginSavepointResult savepointId.\n                     * @member {Uint8Array} savepointId\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointResult\n                     * @instance\n                     */\n                    ActionBeginSavepointResult.prototype.savepointId = $util.newBuffer([]);\n\n                    /**\n                     * Creates a new ActionBeginSavepointResult instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionBeginSavepointResult=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.ActionBeginSavepointResult} ActionBeginSavepointResult instance\n                     */\n                    ActionBeginSavepointResult.create = function create(properties) {\n                        return new ActionBeginSavepointResult(properties);\n                    };\n\n                    /**\n                     * Encodes the specified ActionBeginSavepointResult message. Does not implicitly {@link arrow.flight.protocol.sql.ActionBeginSavepointResult.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionBeginSavepointResult} message ActionBeginSavepointResult message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionBeginSavepointResult.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.savepointId != null && Object.hasOwnProperty.call(message, \"savepointId\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.savepointId);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified ActionBeginSavepointResult message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.ActionBeginSavepointResult.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionBeginSavepointResult} message ActionBeginSavepointResult message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionBeginSavepointResult.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes an ActionBeginSavepointResult message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointResult\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 {arrow.flight.protocol.sql.ActionBeginSavepointResult} ActionBeginSavepointResult\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                    ActionBeginSavepointResult.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.arrow.flight.protocol.sql.ActionBeginSavepointResult();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.savepointId = reader.bytes();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes an ActionBeginSavepointResult message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointResult\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.ActionBeginSavepointResult} ActionBeginSavepointResult\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                    ActionBeginSavepointResult.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 ActionBeginSavepointResult message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointResult\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                    ActionBeginSavepointResult.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.savepointId != null && message.hasOwnProperty(\"savepointId\"))\n                            if (!(message.savepointId && typeof message.savepointId.length === \"number\" || $util.isString(message.savepointId)))\n                                return \"savepointId: buffer expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates an ActionBeginSavepointResult message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointResult\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.ActionBeginSavepointResult} ActionBeginSavepointResult\n                     */\n                    ActionBeginSavepointResult.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.ActionBeginSavepointResult)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.ActionBeginSavepointResult();\n                        if (object.savepointId != null)\n                            if (typeof object.savepointId === \"string\")\n                                $util.base64.decode(object.savepointId, message.savepointId = $util.newBuffer($util.base64.length(object.savepointId)), 0);\n                            else if (object.savepointId.length >= 0)\n                                message.savepointId = object.savepointId;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from an ActionBeginSavepointResult message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ActionBeginSavepointResult} message ActionBeginSavepointResult\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    ActionBeginSavepointResult.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            if (options.bytes === String)\n                                object.savepointId = \"\";\n                            else {\n                                object.savepointId = [];\n                                if (options.bytes !== Array)\n                                    object.savepointId = $util.newBuffer(object.savepointId);\n                            }\n                        if (message.savepointId != null && message.hasOwnProperty(\"savepointId\"))\n                            object.savepointId = options.bytes === String ? $util.base64.encode(message.savepointId, 0, message.savepointId.length) : options.bytes === Array ? Array.prototype.slice.call(message.savepointId) : message.savepointId;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this ActionBeginSavepointResult to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointResult\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    ActionBeginSavepointResult.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for ActionBeginSavepointResult\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.ActionBeginSavepointResult\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    ActionBeginSavepointResult.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.ActionBeginSavepointResult\";\n                    };\n\n                    return ActionBeginSavepointResult;\n                })();\n\n                sql.ActionEndTransactionRequest = (function() {\n\n                    /**\n                     * Properties of an ActionEndTransactionRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface IActionEndTransactionRequest\n                     * @property {Uint8Array|null} [transactionId] ActionEndTransactionRequest transactionId\n                     * @property {arrow.flight.protocol.sql.ActionEndTransactionRequest.EndTransaction|null} [action] ActionEndTransactionRequest action\n                     */\n\n                    /**\n                     * Constructs a new ActionEndTransactionRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents an ActionEndTransactionRequest.\n                     * @implements IActionEndTransactionRequest\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.IActionEndTransactionRequest=} [properties] Properties to set\n                     */\n                    function ActionEndTransactionRequest(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                     * ActionEndTransactionRequest transactionId.\n                     * @member {Uint8Array} transactionId\n                     * @memberof arrow.flight.protocol.sql.ActionEndTransactionRequest\n                     * @instance\n                     */\n                    ActionEndTransactionRequest.prototype.transactionId = $util.newBuffer([]);\n\n                    /**\n                     * ActionEndTransactionRequest action.\n                     * @member {arrow.flight.protocol.sql.ActionEndTransactionRequest.EndTransaction} action\n                     * @memberof arrow.flight.protocol.sql.ActionEndTransactionRequest\n                     * @instance\n                     */\n                    ActionEndTransactionRequest.prototype.action = 0;\n\n                    /**\n                     * Creates a new ActionEndTransactionRequest instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.ActionEndTransactionRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionEndTransactionRequest=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.ActionEndTransactionRequest} ActionEndTransactionRequest instance\n                     */\n                    ActionEndTransactionRequest.create = function create(properties) {\n                        return new ActionEndTransactionRequest(properties);\n                    };\n\n                    /**\n                     * Encodes the specified ActionEndTransactionRequest message. Does not implicitly {@link arrow.flight.protocol.sql.ActionEndTransactionRequest.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.ActionEndTransactionRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionEndTransactionRequest} message ActionEndTransactionRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionEndTransactionRequest.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.transactionId != null && Object.hasOwnProperty.call(message, \"transactionId\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.transactionId);\n                        if (message.action != null && Object.hasOwnProperty.call(message, \"action\"))\n                            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.action);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified ActionEndTransactionRequest message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.ActionEndTransactionRequest.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionEndTransactionRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionEndTransactionRequest} message ActionEndTransactionRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionEndTransactionRequest.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes an ActionEndTransactionRequest message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.ActionEndTransactionRequest\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 {arrow.flight.protocol.sql.ActionEndTransactionRequest} ActionEndTransactionRequest\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                    ActionEndTransactionRequest.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.arrow.flight.protocol.sql.ActionEndTransactionRequest();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.transactionId = reader.bytes();\n                                    break;\n                                }\n                            case 2: {\n                                    message.action = reader.int32();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes an ActionEndTransactionRequest message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionEndTransactionRequest\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.ActionEndTransactionRequest} ActionEndTransactionRequest\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                    ActionEndTransactionRequest.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 ActionEndTransactionRequest message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.ActionEndTransactionRequest\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                    ActionEndTransactionRequest.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\"))\n                            if (!(message.transactionId && typeof message.transactionId.length === \"number\" || $util.isString(message.transactionId)))\n                                return \"transactionId: buffer expected\";\n                        if (message.action != null && message.hasOwnProperty(\"action\"))\n                            switch (message.action) {\n                            default:\n                                return \"action: enum value expected\";\n                            case 0:\n                            case 1:\n                            case 2:\n                                break;\n                            }\n                        return null;\n                    };\n\n                    /**\n                     * Creates an ActionEndTransactionRequest message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.ActionEndTransactionRequest\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.ActionEndTransactionRequest} ActionEndTransactionRequest\n                     */\n                    ActionEndTransactionRequest.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.ActionEndTransactionRequest)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.ActionEndTransactionRequest();\n                        if (object.transactionId != null)\n                            if (typeof object.transactionId === \"string\")\n                                $util.base64.decode(object.transactionId, message.transactionId = $util.newBuffer($util.base64.length(object.transactionId)), 0);\n                            else if (object.transactionId.length >= 0)\n                                message.transactionId = object.transactionId;\n                        switch (object.action) {\n                        default:\n                            if (typeof object.action === \"number\") {\n                                message.action = object.action;\n                                break;\n                            }\n                            break;\n                        case \"END_TRANSACTION_UNSPECIFIED\":\n                        case 0:\n                            message.action = 0;\n                            break;\n                        case \"END_TRANSACTION_COMMIT\":\n                        case 1:\n                            message.action = 1;\n                            break;\n                        case \"END_TRANSACTION_ROLLBACK\":\n                        case 2:\n                            message.action = 2;\n                            break;\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from an ActionEndTransactionRequest message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.ActionEndTransactionRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ActionEndTransactionRequest} message ActionEndTransactionRequest\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    ActionEndTransactionRequest.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults) {\n                            if (options.bytes === String)\n                                object.transactionId = \"\";\n                            else {\n                                object.transactionId = [];\n                                if (options.bytes !== Array)\n                                    object.transactionId = $util.newBuffer(object.transactionId);\n                            }\n                            object.action = options.enums === String ? \"END_TRANSACTION_UNSPECIFIED\" : 0;\n                        }\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\"))\n                            object.transactionId = options.bytes === String ? $util.base64.encode(message.transactionId, 0, message.transactionId.length) : options.bytes === Array ? Array.prototype.slice.call(message.transactionId) : message.transactionId;\n                        if (message.action != null && message.hasOwnProperty(\"action\"))\n                            object.action = options.enums === String ? $root.arrow.flight.protocol.sql.ActionEndTransactionRequest.EndTransaction[message.action] === undefined ? message.action : $root.arrow.flight.protocol.sql.ActionEndTransactionRequest.EndTransaction[message.action] : message.action;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this ActionEndTransactionRequest to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.ActionEndTransactionRequest\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    ActionEndTransactionRequest.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for ActionEndTransactionRequest\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.ActionEndTransactionRequest\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    ActionEndTransactionRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.ActionEndTransactionRequest\";\n                    };\n\n                    /**\n                     * EndTransaction enum.\n                     * @name arrow.flight.protocol.sql.ActionEndTransactionRequest.EndTransaction\n                     * @enum {number}\n                     * @property {number} END_TRANSACTION_UNSPECIFIED=0 END_TRANSACTION_UNSPECIFIED value\n                     * @property {number} END_TRANSACTION_COMMIT=1 END_TRANSACTION_COMMIT value\n                     * @property {number} END_TRANSACTION_ROLLBACK=2 END_TRANSACTION_ROLLBACK value\n                     */\n                    ActionEndTransactionRequest.EndTransaction = (function() {\n                        var valuesById = {}, values = Object.create(valuesById);\n                        values[valuesById[0] = \"END_TRANSACTION_UNSPECIFIED\"] = 0;\n                        values[valuesById[1] = \"END_TRANSACTION_COMMIT\"] = 1;\n                        values[valuesById[2] = \"END_TRANSACTION_ROLLBACK\"] = 2;\n                        return values;\n                    })();\n\n                    return ActionEndTransactionRequest;\n                })();\n\n                sql.ActionEndSavepointRequest = (function() {\n\n                    /**\n                     * Properties of an ActionEndSavepointRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface IActionEndSavepointRequest\n                     * @property {Uint8Array|null} [savepointId] ActionEndSavepointRequest savepointId\n                     * @property {arrow.flight.protocol.sql.ActionEndSavepointRequest.EndSavepoint|null} [action] ActionEndSavepointRequest action\n                     */\n\n                    /**\n                     * Constructs a new ActionEndSavepointRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents an ActionEndSavepointRequest.\n                     * @implements IActionEndSavepointRequest\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.IActionEndSavepointRequest=} [properties] Properties to set\n                     */\n                    function ActionEndSavepointRequest(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                     * ActionEndSavepointRequest savepointId.\n                     * @member {Uint8Array} savepointId\n                     * @memberof arrow.flight.protocol.sql.ActionEndSavepointRequest\n                     * @instance\n                     */\n                    ActionEndSavepointRequest.prototype.savepointId = $util.newBuffer([]);\n\n                    /**\n                     * ActionEndSavepointRequest action.\n                     * @member {arrow.flight.protocol.sql.ActionEndSavepointRequest.EndSavepoint} action\n                     * @memberof arrow.flight.protocol.sql.ActionEndSavepointRequest\n                     * @instance\n                     */\n                    ActionEndSavepointRequest.prototype.action = 0;\n\n                    /**\n                     * Creates a new ActionEndSavepointRequest instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.ActionEndSavepointRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionEndSavepointRequest=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.ActionEndSavepointRequest} ActionEndSavepointRequest instance\n                     */\n                    ActionEndSavepointRequest.create = function create(properties) {\n                        return new ActionEndSavepointRequest(properties);\n                    };\n\n                    /**\n                     * Encodes the specified ActionEndSavepointRequest message. Does not implicitly {@link arrow.flight.protocol.sql.ActionEndSavepointRequest.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.ActionEndSavepointRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionEndSavepointRequest} message ActionEndSavepointRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionEndSavepointRequest.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.savepointId != null && Object.hasOwnProperty.call(message, \"savepointId\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.savepointId);\n                        if (message.action != null && Object.hasOwnProperty.call(message, \"action\"))\n                            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.action);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified ActionEndSavepointRequest message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.ActionEndSavepointRequest.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionEndSavepointRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionEndSavepointRequest} message ActionEndSavepointRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionEndSavepointRequest.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes an ActionEndSavepointRequest message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.ActionEndSavepointRequest\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 {arrow.flight.protocol.sql.ActionEndSavepointRequest} ActionEndSavepointRequest\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                    ActionEndSavepointRequest.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.arrow.flight.protocol.sql.ActionEndSavepointRequest();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.savepointId = reader.bytes();\n                                    break;\n                                }\n                            case 2: {\n                                    message.action = reader.int32();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes an ActionEndSavepointRequest message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionEndSavepointRequest\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.ActionEndSavepointRequest} ActionEndSavepointRequest\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                    ActionEndSavepointRequest.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 ActionEndSavepointRequest message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.ActionEndSavepointRequest\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                    ActionEndSavepointRequest.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.savepointId != null && message.hasOwnProperty(\"savepointId\"))\n                            if (!(message.savepointId && typeof message.savepointId.length === \"number\" || $util.isString(message.savepointId)))\n                                return \"savepointId: buffer expected\";\n                        if (message.action != null && message.hasOwnProperty(\"action\"))\n                            switch (message.action) {\n                            default:\n                                return \"action: enum value expected\";\n                            case 0:\n                            case 1:\n                            case 2:\n                                break;\n                            }\n                        return null;\n                    };\n\n                    /**\n                     * Creates an ActionEndSavepointRequest message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.ActionEndSavepointRequest\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.ActionEndSavepointRequest} ActionEndSavepointRequest\n                     */\n                    ActionEndSavepointRequest.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.ActionEndSavepointRequest)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.ActionEndSavepointRequest();\n                        if (object.savepointId != null)\n                            if (typeof object.savepointId === \"string\")\n                                $util.base64.decode(object.savepointId, message.savepointId = $util.newBuffer($util.base64.length(object.savepointId)), 0);\n                            else if (object.savepointId.length >= 0)\n                                message.savepointId = object.savepointId;\n                        switch (object.action) {\n                        default:\n                            if (typeof object.action === \"number\") {\n                                message.action = object.action;\n                                break;\n                            }\n                            break;\n                        case \"END_SAVEPOINT_UNSPECIFIED\":\n                        case 0:\n                            message.action = 0;\n                            break;\n                        case \"END_SAVEPOINT_RELEASE\":\n                        case 1:\n                            message.action = 1;\n                            break;\n                        case \"END_SAVEPOINT_ROLLBACK\":\n                        case 2:\n                            message.action = 2;\n                            break;\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from an ActionEndSavepointRequest message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.ActionEndSavepointRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ActionEndSavepointRequest} message ActionEndSavepointRequest\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    ActionEndSavepointRequest.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults) {\n                            if (options.bytes === String)\n                                object.savepointId = \"\";\n                            else {\n                                object.savepointId = [];\n                                if (options.bytes !== Array)\n                                    object.savepointId = $util.newBuffer(object.savepointId);\n                            }\n                            object.action = options.enums === String ? \"END_SAVEPOINT_UNSPECIFIED\" : 0;\n                        }\n                        if (message.savepointId != null && message.hasOwnProperty(\"savepointId\"))\n                            object.savepointId = options.bytes === String ? $util.base64.encode(message.savepointId, 0, message.savepointId.length) : options.bytes === Array ? Array.prototype.slice.call(message.savepointId) : message.savepointId;\n                        if (message.action != null && message.hasOwnProperty(\"action\"))\n                            object.action = options.enums === String ? $root.arrow.flight.protocol.sql.ActionEndSavepointRequest.EndSavepoint[message.action] === undefined ? message.action : $root.arrow.flight.protocol.sql.ActionEndSavepointRequest.EndSavepoint[message.action] : message.action;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this ActionEndSavepointRequest to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.ActionEndSavepointRequest\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    ActionEndSavepointRequest.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for ActionEndSavepointRequest\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.ActionEndSavepointRequest\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    ActionEndSavepointRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.ActionEndSavepointRequest\";\n                    };\n\n                    /**\n                     * EndSavepoint enum.\n                     * @name arrow.flight.protocol.sql.ActionEndSavepointRequest.EndSavepoint\n                     * @enum {number}\n                     * @property {number} END_SAVEPOINT_UNSPECIFIED=0 END_SAVEPOINT_UNSPECIFIED value\n                     * @property {number} END_SAVEPOINT_RELEASE=1 END_SAVEPOINT_RELEASE value\n                     * @property {number} END_SAVEPOINT_ROLLBACK=2 END_SAVEPOINT_ROLLBACK value\n                     */\n                    ActionEndSavepointRequest.EndSavepoint = (function() {\n                        var valuesById = {}, values = Object.create(valuesById);\n                        values[valuesById[0] = \"END_SAVEPOINT_UNSPECIFIED\"] = 0;\n                        values[valuesById[1] = \"END_SAVEPOINT_RELEASE\"] = 1;\n                        values[valuesById[2] = \"END_SAVEPOINT_ROLLBACK\"] = 2;\n                        return values;\n                    })();\n\n                    return ActionEndSavepointRequest;\n                })();\n\n                sql.CommandStatementQuery = (function() {\n\n                    /**\n                     * Properties of a CommandStatementQuery.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandStatementQuery\n                     * @property {string|null} [query] CommandStatementQuery query\n                     * @property {Uint8Array|null} [transactionId] CommandStatementQuery transactionId\n                     */\n\n                    /**\n                     * Constructs a new CommandStatementQuery.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandStatementQuery.\n                     * @implements ICommandStatementQuery\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandStatementQuery=} [properties] Properties to set\n                     */\n                    function CommandStatementQuery(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                     * CommandStatementQuery query.\n                     * @member {string} query\n                     * @memberof arrow.flight.protocol.sql.CommandStatementQuery\n                     * @instance\n                     */\n                    CommandStatementQuery.prototype.query = \"\";\n\n                    /**\n                     * CommandStatementQuery transactionId.\n                     * @member {Uint8Array|null|undefined} transactionId\n                     * @memberof arrow.flight.protocol.sql.CommandStatementQuery\n                     * @instance\n                     */\n                    CommandStatementQuery.prototype.transactionId = null;\n\n                    // OneOf field names bound to virtual getters and setters\n                    var $oneOfFields;\n\n                    /**\n                     * CommandStatementQuery _transactionId.\n                     * @member {\"transactionId\"|undefined} _transactionId\n                     * @memberof arrow.flight.protocol.sql.CommandStatementQuery\n                     * @instance\n                     */\n                    Object.defineProperty(CommandStatementQuery.prototype, \"_transactionId\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"transactionId\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * Creates a new CommandStatementQuery instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandStatementQuery\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandStatementQuery=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandStatementQuery} CommandStatementQuery instance\n                     */\n                    CommandStatementQuery.create = function create(properties) {\n                        return new CommandStatementQuery(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandStatementQuery message. Does not implicitly {@link arrow.flight.protocol.sql.CommandStatementQuery.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandStatementQuery\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandStatementQuery} message CommandStatementQuery message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandStatementQuery.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.query != null && Object.hasOwnProperty.call(message, \"query\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).string(message.query);\n                        if (message.transactionId != null && Object.hasOwnProperty.call(message, \"transactionId\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.transactionId);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandStatementQuery message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandStatementQuery.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandStatementQuery\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandStatementQuery} message CommandStatementQuery message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandStatementQuery.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandStatementQuery message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandStatementQuery\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 {arrow.flight.protocol.sql.CommandStatementQuery} CommandStatementQuery\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                    CommandStatementQuery.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.arrow.flight.protocol.sql.CommandStatementQuery();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.query = reader.string();\n                                    break;\n                                }\n                            case 2: {\n                                    message.transactionId = reader.bytes();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandStatementQuery message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandStatementQuery\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandStatementQuery} CommandStatementQuery\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                    CommandStatementQuery.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 CommandStatementQuery message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandStatementQuery\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                    CommandStatementQuery.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        var properties = {};\n                        if (message.query != null && message.hasOwnProperty(\"query\"))\n                            if (!$util.isString(message.query))\n                                return \"query: string expected\";\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\")) {\n                            properties._transactionId = 1;\n                            if (!(message.transactionId && typeof message.transactionId.length === \"number\" || $util.isString(message.transactionId)))\n                                return \"transactionId: buffer expected\";\n                        }\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandStatementQuery message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandStatementQuery\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandStatementQuery} CommandStatementQuery\n                     */\n                    CommandStatementQuery.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandStatementQuery)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.CommandStatementQuery();\n                        if (object.query != null)\n                            message.query = String(object.query);\n                        if (object.transactionId != null)\n                            if (typeof object.transactionId === \"string\")\n                                $util.base64.decode(object.transactionId, message.transactionId = $util.newBuffer($util.base64.length(object.transactionId)), 0);\n                            else if (object.transactionId.length >= 0)\n                                message.transactionId = object.transactionId;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandStatementQuery message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandStatementQuery\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandStatementQuery} message CommandStatementQuery\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandStatementQuery.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            object.query = \"\";\n                        if (message.query != null && message.hasOwnProperty(\"query\"))\n                            object.query = message.query;\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\")) {\n                            object.transactionId = options.bytes === String ? $util.base64.encode(message.transactionId, 0, message.transactionId.length) : options.bytes === Array ? Array.prototype.slice.call(message.transactionId) : message.transactionId;\n                            if (options.oneofs)\n                                object._transactionId = \"transactionId\";\n                        }\n                        return object;\n                    };\n\n                    /**\n                     * Converts this CommandStatementQuery to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandStatementQuery\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandStatementQuery.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandStatementQuery\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandStatementQuery\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandStatementQuery.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandStatementQuery\";\n                    };\n\n                    return CommandStatementQuery;\n                })();\n\n                sql.CommandStatementSubstraitPlan = (function() {\n\n                    /**\n                     * Properties of a CommandStatementSubstraitPlan.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandStatementSubstraitPlan\n                     * @property {arrow.flight.protocol.sql.ISubstraitPlan|null} [plan] CommandStatementSubstraitPlan plan\n                     * @property {Uint8Array|null} [transactionId] CommandStatementSubstraitPlan transactionId\n                     */\n\n                    /**\n                     * Constructs a new CommandStatementSubstraitPlan.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandStatementSubstraitPlan.\n                     * @implements ICommandStatementSubstraitPlan\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandStatementSubstraitPlan=} [properties] Properties to set\n                     */\n                    function CommandStatementSubstraitPlan(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                     * CommandStatementSubstraitPlan plan.\n                     * @member {arrow.flight.protocol.sql.ISubstraitPlan|null|undefined} plan\n                     * @memberof arrow.flight.protocol.sql.CommandStatementSubstraitPlan\n                     * @instance\n                     */\n                    CommandStatementSubstraitPlan.prototype.plan = null;\n\n                    /**\n                     * CommandStatementSubstraitPlan transactionId.\n                     * @member {Uint8Array|null|undefined} transactionId\n                     * @memberof arrow.flight.protocol.sql.CommandStatementSubstraitPlan\n                     * @instance\n                     */\n                    CommandStatementSubstraitPlan.prototype.transactionId = null;\n\n                    // OneOf field names bound to virtual getters and setters\n                    var $oneOfFields;\n\n                    /**\n                     * CommandStatementSubstraitPlan _transactionId.\n                     * @member {\"transactionId\"|undefined} _transactionId\n                     * @memberof arrow.flight.protocol.sql.CommandStatementSubstraitPlan\n                     * @instance\n                     */\n                    Object.defineProperty(CommandStatementSubstraitPlan.prototype, \"_transactionId\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"transactionId\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * Creates a new CommandStatementSubstraitPlan instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandStatementSubstraitPlan\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandStatementSubstraitPlan=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandStatementSubstraitPlan} CommandStatementSubstraitPlan instance\n                     */\n                    CommandStatementSubstraitPlan.create = function create(properties) {\n                        return new CommandStatementSubstraitPlan(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandStatementSubstraitPlan message. Does not implicitly {@link arrow.flight.protocol.sql.CommandStatementSubstraitPlan.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandStatementSubstraitPlan\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandStatementSubstraitPlan} message CommandStatementSubstraitPlan message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandStatementSubstraitPlan.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.plan != null && Object.hasOwnProperty.call(message, \"plan\"))\n                            $root.arrow.flight.protocol.sql.SubstraitPlan.encode(message.plan, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n                        if (message.transactionId != null && Object.hasOwnProperty.call(message, \"transactionId\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.transactionId);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandStatementSubstraitPlan message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandStatementSubstraitPlan.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandStatementSubstraitPlan\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandStatementSubstraitPlan} message CommandStatementSubstraitPlan message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandStatementSubstraitPlan.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandStatementSubstraitPlan message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandStatementSubstraitPlan\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 {arrow.flight.protocol.sql.CommandStatementSubstraitPlan} CommandStatementSubstraitPlan\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                    CommandStatementSubstraitPlan.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.arrow.flight.protocol.sql.CommandStatementSubstraitPlan();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.plan = $root.arrow.flight.protocol.sql.SubstraitPlan.decode(reader, reader.uint32());\n                                    break;\n                                }\n                            case 2: {\n                                    message.transactionId = reader.bytes();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandStatementSubstraitPlan message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandStatementSubstraitPlan\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandStatementSubstraitPlan} CommandStatementSubstraitPlan\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                    CommandStatementSubstraitPlan.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 CommandStatementSubstraitPlan message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandStatementSubstraitPlan\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                    CommandStatementSubstraitPlan.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        var properties = {};\n                        if (message.plan != null && message.hasOwnProperty(\"plan\")) {\n                            var error = $root.arrow.flight.protocol.sql.SubstraitPlan.verify(message.plan);\n                            if (error)\n                                return \"plan.\" + error;\n                        }\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\")) {\n                            properties._transactionId = 1;\n                            if (!(message.transactionId && typeof message.transactionId.length === \"number\" || $util.isString(message.transactionId)))\n                                return \"transactionId: buffer expected\";\n                        }\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandStatementSubstraitPlan message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandStatementSubstraitPlan\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandStatementSubstraitPlan} CommandStatementSubstraitPlan\n                     */\n                    CommandStatementSubstraitPlan.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandStatementSubstraitPlan)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.CommandStatementSubstraitPlan();\n                        if (object.plan != null) {\n                            if (typeof object.plan !== \"object\")\n                                throw TypeError(\".arrow.flight.protocol.sql.CommandStatementSubstraitPlan.plan: object expected\");\n                            message.plan = $root.arrow.flight.protocol.sql.SubstraitPlan.fromObject(object.plan);\n                        }\n                        if (object.transactionId != null)\n                            if (typeof object.transactionId === \"string\")\n                                $util.base64.decode(object.transactionId, message.transactionId = $util.newBuffer($util.base64.length(object.transactionId)), 0);\n                            else if (object.transactionId.length >= 0)\n                                message.transactionId = object.transactionId;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandStatementSubstraitPlan message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandStatementSubstraitPlan\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandStatementSubstraitPlan} message CommandStatementSubstraitPlan\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandStatementSubstraitPlan.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            object.plan = null;\n                        if (message.plan != null && message.hasOwnProperty(\"plan\"))\n                            object.plan = $root.arrow.flight.protocol.sql.SubstraitPlan.toObject(message.plan, options);\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\")) {\n                            object.transactionId = options.bytes === String ? $util.base64.encode(message.transactionId, 0, message.transactionId.length) : options.bytes === Array ? Array.prototype.slice.call(message.transactionId) : message.transactionId;\n                            if (options.oneofs)\n                                object._transactionId = \"transactionId\";\n                        }\n                        return object;\n                    };\n\n                    /**\n                     * Converts this CommandStatementSubstraitPlan to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandStatementSubstraitPlan\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandStatementSubstraitPlan.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandStatementSubstraitPlan\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandStatementSubstraitPlan\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandStatementSubstraitPlan.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandStatementSubstraitPlan\";\n                    };\n\n                    return CommandStatementSubstraitPlan;\n                })();\n\n                sql.TicketStatementQuery = (function() {\n\n                    /**\n                     * Properties of a TicketStatementQuery.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ITicketStatementQuery\n                     * @property {Uint8Array|null} [statementHandle] TicketStatementQuery statementHandle\n                     */\n\n                    /**\n                     * Constructs a new TicketStatementQuery.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a ticket resulting from GetFlightInfo with a CommandStatementQuery.\n                     * This should be used only once and treated as an opaque value, that is, clients should not attempt to parse this.\n                     * @implements ITicketStatementQuery\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ITicketStatementQuery=} [properties] Properties to set\n                     */\n                    function TicketStatementQuery(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                     * TicketStatementQuery statementHandle.\n                     * @member {Uint8Array} statementHandle\n                     * @memberof arrow.flight.protocol.sql.TicketStatementQuery\n                     * @instance\n                     */\n                    TicketStatementQuery.prototype.statementHandle = $util.newBuffer([]);\n\n                    /**\n                     * Creates a new TicketStatementQuery instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.TicketStatementQuery\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ITicketStatementQuery=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.TicketStatementQuery} TicketStatementQuery instance\n                     */\n                    TicketStatementQuery.create = function create(properties) {\n                        return new TicketStatementQuery(properties);\n                    };\n\n                    /**\n                     * Encodes the specified TicketStatementQuery message. Does not implicitly {@link arrow.flight.protocol.sql.TicketStatementQuery.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.TicketStatementQuery\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ITicketStatementQuery} message TicketStatementQuery message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    TicketStatementQuery.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.statementHandle != null && Object.hasOwnProperty.call(message, \"statementHandle\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.statementHandle);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified TicketStatementQuery message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.TicketStatementQuery.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.TicketStatementQuery\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ITicketStatementQuery} message TicketStatementQuery message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    TicketStatementQuery.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a TicketStatementQuery message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.TicketStatementQuery\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 {arrow.flight.protocol.sql.TicketStatementQuery} TicketStatementQuery\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                    TicketStatementQuery.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.arrow.flight.protocol.sql.TicketStatementQuery();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.statementHandle = reader.bytes();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a TicketStatementQuery message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.TicketStatementQuery\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.TicketStatementQuery} TicketStatementQuery\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                    TicketStatementQuery.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 TicketStatementQuery message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.TicketStatementQuery\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                    TicketStatementQuery.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.statementHandle != null && message.hasOwnProperty(\"statementHandle\"))\n                            if (!(message.statementHandle && typeof message.statementHandle.length === \"number\" || $util.isString(message.statementHandle)))\n                                return \"statementHandle: buffer expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates a TicketStatementQuery message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.TicketStatementQuery\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.TicketStatementQuery} TicketStatementQuery\n                     */\n                    TicketStatementQuery.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.TicketStatementQuery)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.TicketStatementQuery();\n                        if (object.statementHandle != null)\n                            if (typeof object.statementHandle === \"string\")\n                                $util.base64.decode(object.statementHandle, message.statementHandle = $util.newBuffer($util.base64.length(object.statementHandle)), 0);\n                            else if (object.statementHandle.length >= 0)\n                                message.statementHandle = object.statementHandle;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a TicketStatementQuery message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.TicketStatementQuery\n                     * @static\n                     * @param {arrow.flight.protocol.sql.TicketStatementQuery} message TicketStatementQuery\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    TicketStatementQuery.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            if (options.bytes === String)\n                                object.statementHandle = \"\";\n                            else {\n                                object.statementHandle = [];\n                                if (options.bytes !== Array)\n                                    object.statementHandle = $util.newBuffer(object.statementHandle);\n                            }\n                        if (message.statementHandle != null && message.hasOwnProperty(\"statementHandle\"))\n                            object.statementHandle = options.bytes === String ? $util.base64.encode(message.statementHandle, 0, message.statementHandle.length) : options.bytes === Array ? Array.prototype.slice.call(message.statementHandle) : message.statementHandle;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this TicketStatementQuery to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.TicketStatementQuery\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    TicketStatementQuery.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for TicketStatementQuery\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.TicketStatementQuery\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    TicketStatementQuery.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.TicketStatementQuery\";\n                    };\n\n                    return TicketStatementQuery;\n                })();\n\n                sql.CommandPreparedStatementQuery = (function() {\n\n                    /**\n                     * Properties of a CommandPreparedStatementQuery.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandPreparedStatementQuery\n                     * @property {Uint8Array|null} [preparedStatementHandle] CommandPreparedStatementQuery preparedStatementHandle\n                     */\n\n                    /**\n                     * Constructs a new CommandPreparedStatementQuery.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandPreparedStatementQuery.\n                     * @implements ICommandPreparedStatementQuery\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandPreparedStatementQuery=} [properties] Properties to set\n                     */\n                    function CommandPreparedStatementQuery(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                     * CommandPreparedStatementQuery preparedStatementHandle.\n                     * @member {Uint8Array} preparedStatementHandle\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementQuery\n                     * @instance\n                     */\n                    CommandPreparedStatementQuery.prototype.preparedStatementHandle = $util.newBuffer([]);\n\n                    /**\n                     * Creates a new CommandPreparedStatementQuery instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementQuery\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandPreparedStatementQuery=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandPreparedStatementQuery} CommandPreparedStatementQuery instance\n                     */\n                    CommandPreparedStatementQuery.create = function create(properties) {\n                        return new CommandPreparedStatementQuery(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandPreparedStatementQuery message. Does not implicitly {@link arrow.flight.protocol.sql.CommandPreparedStatementQuery.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementQuery\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandPreparedStatementQuery} message CommandPreparedStatementQuery message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandPreparedStatementQuery.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.preparedStatementHandle != null && Object.hasOwnProperty.call(message, \"preparedStatementHandle\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.preparedStatementHandle);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandPreparedStatementQuery message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandPreparedStatementQuery.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementQuery\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandPreparedStatementQuery} message CommandPreparedStatementQuery message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandPreparedStatementQuery.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandPreparedStatementQuery message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementQuery\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 {arrow.flight.protocol.sql.CommandPreparedStatementQuery} CommandPreparedStatementQuery\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                    CommandPreparedStatementQuery.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.arrow.flight.protocol.sql.CommandPreparedStatementQuery();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.preparedStatementHandle = reader.bytes();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandPreparedStatementQuery message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementQuery\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandPreparedStatementQuery} CommandPreparedStatementQuery\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                    CommandPreparedStatementQuery.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 CommandPreparedStatementQuery message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementQuery\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                    CommandPreparedStatementQuery.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.preparedStatementHandle != null && message.hasOwnProperty(\"preparedStatementHandle\"))\n                            if (!(message.preparedStatementHandle && typeof message.preparedStatementHandle.length === \"number\" || $util.isString(message.preparedStatementHandle)))\n                                return \"preparedStatementHandle: buffer expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandPreparedStatementQuery message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementQuery\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandPreparedStatementQuery} CommandPreparedStatementQuery\n                     */\n                    CommandPreparedStatementQuery.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandPreparedStatementQuery)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.CommandPreparedStatementQuery();\n                        if (object.preparedStatementHandle != null)\n                            if (typeof object.preparedStatementHandle === \"string\")\n                                $util.base64.decode(object.preparedStatementHandle, message.preparedStatementHandle = $util.newBuffer($util.base64.length(object.preparedStatementHandle)), 0);\n                            else if (object.preparedStatementHandle.length >= 0)\n                                message.preparedStatementHandle = object.preparedStatementHandle;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandPreparedStatementQuery message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementQuery\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandPreparedStatementQuery} message CommandPreparedStatementQuery\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandPreparedStatementQuery.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            if (options.bytes === String)\n                                object.preparedStatementHandle = \"\";\n                            else {\n                                object.preparedStatementHandle = [];\n                                if (options.bytes !== Array)\n                                    object.preparedStatementHandle = $util.newBuffer(object.preparedStatementHandle);\n                            }\n                        if (message.preparedStatementHandle != null && message.hasOwnProperty(\"preparedStatementHandle\"))\n                            object.preparedStatementHandle = options.bytes === String ? $util.base64.encode(message.preparedStatementHandle, 0, message.preparedStatementHandle.length) : options.bytes === Array ? Array.prototype.slice.call(message.preparedStatementHandle) : message.preparedStatementHandle;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this CommandPreparedStatementQuery to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementQuery\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandPreparedStatementQuery.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandPreparedStatementQuery\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementQuery\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandPreparedStatementQuery.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandPreparedStatementQuery\";\n                    };\n\n                    return CommandPreparedStatementQuery;\n                })();\n\n                sql.CommandStatementUpdate = (function() {\n\n                    /**\n                     * Properties of a CommandStatementUpdate.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandStatementUpdate\n                     * @property {string|null} [query] CommandStatementUpdate query\n                     * @property {Uint8Array|null} [transactionId] CommandStatementUpdate transactionId\n                     */\n\n                    /**\n                     * Constructs a new CommandStatementUpdate.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandStatementUpdate.\n                     * @implements ICommandStatementUpdate\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandStatementUpdate=} [properties] Properties to set\n                     */\n                    function CommandStatementUpdate(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                     * CommandStatementUpdate query.\n                     * @member {string} query\n                     * @memberof arrow.flight.protocol.sql.CommandStatementUpdate\n                     * @instance\n                     */\n                    CommandStatementUpdate.prototype.query = \"\";\n\n                    /**\n                     * CommandStatementUpdate transactionId.\n                     * @member {Uint8Array|null|undefined} transactionId\n                     * @memberof arrow.flight.protocol.sql.CommandStatementUpdate\n                     * @instance\n                     */\n                    CommandStatementUpdate.prototype.transactionId = null;\n\n                    // OneOf field names bound to virtual getters and setters\n                    var $oneOfFields;\n\n                    /**\n                     * CommandStatementUpdate _transactionId.\n                     * @member {\"transactionId\"|undefined} _transactionId\n                     * @memberof arrow.flight.protocol.sql.CommandStatementUpdate\n                     * @instance\n                     */\n                    Object.defineProperty(CommandStatementUpdate.prototype, \"_transactionId\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"transactionId\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * Creates a new CommandStatementUpdate instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandStatementUpdate\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandStatementUpdate=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandStatementUpdate} CommandStatementUpdate instance\n                     */\n                    CommandStatementUpdate.create = function create(properties) {\n                        return new CommandStatementUpdate(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandStatementUpdate message. Does not implicitly {@link arrow.flight.protocol.sql.CommandStatementUpdate.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandStatementUpdate\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandStatementUpdate} message CommandStatementUpdate message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandStatementUpdate.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.query != null && Object.hasOwnProperty.call(message, \"query\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).string(message.query);\n                        if (message.transactionId != null && Object.hasOwnProperty.call(message, \"transactionId\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.transactionId);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandStatementUpdate message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandStatementUpdate.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandStatementUpdate\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandStatementUpdate} message CommandStatementUpdate message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandStatementUpdate.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandStatementUpdate message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandStatementUpdate\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 {arrow.flight.protocol.sql.CommandStatementUpdate} CommandStatementUpdate\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                    CommandStatementUpdate.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.arrow.flight.protocol.sql.CommandStatementUpdate();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.query = reader.string();\n                                    break;\n                                }\n                            case 2: {\n                                    message.transactionId = reader.bytes();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandStatementUpdate message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandStatementUpdate\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandStatementUpdate} CommandStatementUpdate\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                    CommandStatementUpdate.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 CommandStatementUpdate message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandStatementUpdate\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                    CommandStatementUpdate.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        var properties = {};\n                        if (message.query != null && message.hasOwnProperty(\"query\"))\n                            if (!$util.isString(message.query))\n                                return \"query: string expected\";\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\")) {\n                            properties._transactionId = 1;\n                            if (!(message.transactionId && typeof message.transactionId.length === \"number\" || $util.isString(message.transactionId)))\n                                return \"transactionId: buffer expected\";\n                        }\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandStatementUpdate message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandStatementUpdate\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandStatementUpdate} CommandStatementUpdate\n                     */\n                    CommandStatementUpdate.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandStatementUpdate)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.CommandStatementUpdate();\n                        if (object.query != null)\n                            message.query = String(object.query);\n                        if (object.transactionId != null)\n                            if (typeof object.transactionId === \"string\")\n                                $util.base64.decode(object.transactionId, message.transactionId = $util.newBuffer($util.base64.length(object.transactionId)), 0);\n                            else if (object.transactionId.length >= 0)\n                                message.transactionId = object.transactionId;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandStatementUpdate message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandStatementUpdate\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandStatementUpdate} message CommandStatementUpdate\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandStatementUpdate.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            object.query = \"\";\n                        if (message.query != null && message.hasOwnProperty(\"query\"))\n                            object.query = message.query;\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\")) {\n                            object.transactionId = options.bytes === String ? $util.base64.encode(message.transactionId, 0, message.transactionId.length) : options.bytes === Array ? Array.prototype.slice.call(message.transactionId) : message.transactionId;\n                            if (options.oneofs)\n                                object._transactionId = \"transactionId\";\n                        }\n                        return object;\n                    };\n\n                    /**\n                     * Converts this CommandStatementUpdate to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandStatementUpdate\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandStatementUpdate.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandStatementUpdate\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandStatementUpdate\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandStatementUpdate.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandStatementUpdate\";\n                    };\n\n                    return CommandStatementUpdate;\n                })();\n\n                sql.CommandPreparedStatementUpdate = (function() {\n\n                    /**\n                     * Properties of a CommandPreparedStatementUpdate.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandPreparedStatementUpdate\n                     * @property {Uint8Array|null} [preparedStatementHandle] CommandPreparedStatementUpdate preparedStatementHandle\n                     */\n\n                    /**\n                     * Constructs a new CommandPreparedStatementUpdate.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandPreparedStatementUpdate.\n                     * @implements ICommandPreparedStatementUpdate\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandPreparedStatementUpdate=} [properties] Properties to set\n                     */\n                    function CommandPreparedStatementUpdate(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                     * CommandPreparedStatementUpdate preparedStatementHandle.\n                     * @member {Uint8Array} preparedStatementHandle\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementUpdate\n                     * @instance\n                     */\n                    CommandPreparedStatementUpdate.prototype.preparedStatementHandle = $util.newBuffer([]);\n\n                    /**\n                     * Creates a new CommandPreparedStatementUpdate instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementUpdate\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandPreparedStatementUpdate=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandPreparedStatementUpdate} CommandPreparedStatementUpdate instance\n                     */\n                    CommandPreparedStatementUpdate.create = function create(properties) {\n                        return new CommandPreparedStatementUpdate(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandPreparedStatementUpdate message. Does not implicitly {@link arrow.flight.protocol.sql.CommandPreparedStatementUpdate.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementUpdate\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandPreparedStatementUpdate} message CommandPreparedStatementUpdate message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandPreparedStatementUpdate.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.preparedStatementHandle != null && Object.hasOwnProperty.call(message, \"preparedStatementHandle\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.preparedStatementHandle);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandPreparedStatementUpdate message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandPreparedStatementUpdate.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementUpdate\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandPreparedStatementUpdate} message CommandPreparedStatementUpdate message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandPreparedStatementUpdate.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandPreparedStatementUpdate message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementUpdate\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 {arrow.flight.protocol.sql.CommandPreparedStatementUpdate} CommandPreparedStatementUpdate\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                    CommandPreparedStatementUpdate.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.arrow.flight.protocol.sql.CommandPreparedStatementUpdate();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.preparedStatementHandle = reader.bytes();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandPreparedStatementUpdate message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementUpdate\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandPreparedStatementUpdate} CommandPreparedStatementUpdate\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                    CommandPreparedStatementUpdate.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 CommandPreparedStatementUpdate message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementUpdate\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                    CommandPreparedStatementUpdate.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.preparedStatementHandle != null && message.hasOwnProperty(\"preparedStatementHandle\"))\n                            if (!(message.preparedStatementHandle && typeof message.preparedStatementHandle.length === \"number\" || $util.isString(message.preparedStatementHandle)))\n                                return \"preparedStatementHandle: buffer expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandPreparedStatementUpdate message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementUpdate\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandPreparedStatementUpdate} CommandPreparedStatementUpdate\n                     */\n                    CommandPreparedStatementUpdate.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandPreparedStatementUpdate)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.CommandPreparedStatementUpdate();\n                        if (object.preparedStatementHandle != null)\n                            if (typeof object.preparedStatementHandle === \"string\")\n                                $util.base64.decode(object.preparedStatementHandle, message.preparedStatementHandle = $util.newBuffer($util.base64.length(object.preparedStatementHandle)), 0);\n                            else if (object.preparedStatementHandle.length >= 0)\n                                message.preparedStatementHandle = object.preparedStatementHandle;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandPreparedStatementUpdate message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementUpdate\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandPreparedStatementUpdate} message CommandPreparedStatementUpdate\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandPreparedStatementUpdate.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            if (options.bytes === String)\n                                object.preparedStatementHandle = \"\";\n                            else {\n                                object.preparedStatementHandle = [];\n                                if (options.bytes !== Array)\n                                    object.preparedStatementHandle = $util.newBuffer(object.preparedStatementHandle);\n                            }\n                        if (message.preparedStatementHandle != null && message.hasOwnProperty(\"preparedStatementHandle\"))\n                            object.preparedStatementHandle = options.bytes === String ? $util.base64.encode(message.preparedStatementHandle, 0, message.preparedStatementHandle.length) : options.bytes === Array ? Array.prototype.slice.call(message.preparedStatementHandle) : message.preparedStatementHandle;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this CommandPreparedStatementUpdate to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementUpdate\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandPreparedStatementUpdate.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandPreparedStatementUpdate\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandPreparedStatementUpdate\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandPreparedStatementUpdate.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandPreparedStatementUpdate\";\n                    };\n\n                    return CommandPreparedStatementUpdate;\n                })();\n\n                sql.CommandStatementIngest = (function() {\n\n                    /**\n                     * Properties of a CommandStatementIngest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface ICommandStatementIngest\n                     * @property {arrow.flight.protocol.sql.CommandStatementIngest.ITableDefinitionOptions|null} [tableDefinitionOptions] CommandStatementIngest tableDefinitionOptions\n                     * @property {string|null} [table] CommandStatementIngest table\n                     * @property {string|null} [schema] CommandStatementIngest schema\n                     * @property {string|null} [catalog] CommandStatementIngest catalog\n                     * @property {boolean|null} [temporary] CommandStatementIngest temporary\n                     * @property {Uint8Array|null} [transactionId] CommandStatementIngest transactionId\n                     * @property {Object.<string,string>|null} [options] CommandStatementIngest options\n                     */\n\n                    /**\n                     * Constructs a new CommandStatementIngest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a CommandStatementIngest.\n                     * @implements ICommandStatementIngest\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.ICommandStatementIngest=} [properties] Properties to set\n                     */\n                    function CommandStatementIngest(properties) {\n                        this.options = {};\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                     * CommandStatementIngest tableDefinitionOptions.\n                     * @member {arrow.flight.protocol.sql.CommandStatementIngest.ITableDefinitionOptions|null|undefined} tableDefinitionOptions\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @instance\n                     */\n                    CommandStatementIngest.prototype.tableDefinitionOptions = null;\n\n                    /**\n                     * CommandStatementIngest table.\n                     * @member {string} table\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @instance\n                     */\n                    CommandStatementIngest.prototype.table = \"\";\n\n                    /**\n                     * CommandStatementIngest schema.\n                     * @member {string|null|undefined} schema\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @instance\n                     */\n                    CommandStatementIngest.prototype.schema = null;\n\n                    /**\n                     * CommandStatementIngest catalog.\n                     * @member {string|null|undefined} catalog\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @instance\n                     */\n                    CommandStatementIngest.prototype.catalog = null;\n\n                    /**\n                     * CommandStatementIngest temporary.\n                     * @member {boolean} temporary\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @instance\n                     */\n                    CommandStatementIngest.prototype.temporary = false;\n\n                    /**\n                     * CommandStatementIngest transactionId.\n                     * @member {Uint8Array|null|undefined} transactionId\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @instance\n                     */\n                    CommandStatementIngest.prototype.transactionId = null;\n\n                    /**\n                     * CommandStatementIngest options.\n                     * @member {Object.<string,string>} options\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @instance\n                     */\n                    CommandStatementIngest.prototype.options = $util.emptyObject;\n\n                    // OneOf field names bound to virtual getters and setters\n                    var $oneOfFields;\n\n                    /**\n                     * CommandStatementIngest _schema.\n                     * @member {\"schema\"|undefined} _schema\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @instance\n                     */\n                    Object.defineProperty(CommandStatementIngest.prototype, \"_schema\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"schema\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * CommandStatementIngest _catalog.\n                     * @member {\"catalog\"|undefined} _catalog\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @instance\n                     */\n                    Object.defineProperty(CommandStatementIngest.prototype, \"_catalog\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"catalog\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * CommandStatementIngest _transactionId.\n                     * @member {\"transactionId\"|undefined} _transactionId\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @instance\n                     */\n                    Object.defineProperty(CommandStatementIngest.prototype, \"_transactionId\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"transactionId\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * Creates a new CommandStatementIngest instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandStatementIngest=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.CommandStatementIngest} CommandStatementIngest instance\n                     */\n                    CommandStatementIngest.create = function create(properties) {\n                        return new CommandStatementIngest(properties);\n                    };\n\n                    /**\n                     * Encodes the specified CommandStatementIngest message. Does not implicitly {@link arrow.flight.protocol.sql.CommandStatementIngest.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandStatementIngest} message CommandStatementIngest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandStatementIngest.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.tableDefinitionOptions != null && Object.hasOwnProperty.call(message, \"tableDefinitionOptions\"))\n                            $root.arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.encode(message.tableDefinitionOptions, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n                        if (message.table != null && Object.hasOwnProperty.call(message, \"table\"))\n                            writer.uint32(/* id 2, wireType 2 =*/18).string(message.table);\n                        if (message.schema != null && Object.hasOwnProperty.call(message, \"schema\"))\n                            writer.uint32(/* id 3, wireType 2 =*/26).string(message.schema);\n                        if (message.catalog != null && Object.hasOwnProperty.call(message, \"catalog\"))\n                            writer.uint32(/* id 4, wireType 2 =*/34).string(message.catalog);\n                        if (message.temporary != null && Object.hasOwnProperty.call(message, \"temporary\"))\n                            writer.uint32(/* id 5, wireType 0 =*/40).bool(message.temporary);\n                        if (message.transactionId != null && Object.hasOwnProperty.call(message, \"transactionId\"))\n                            writer.uint32(/* id 6, wireType 2 =*/50).bytes(message.transactionId);\n                        if (message.options != null && Object.hasOwnProperty.call(message, \"options\"))\n                            for (var keys = Object.keys(message.options), i = 0; i < keys.length; ++i)\n                                writer.uint32(/* id 1000, wireType 2 =*/8002).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.options[keys[i]]).ldelim();\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified CommandStatementIngest message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandStatementIngest.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ICommandStatementIngest} message CommandStatementIngest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    CommandStatementIngest.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a CommandStatementIngest message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\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 {arrow.flight.protocol.sql.CommandStatementIngest} CommandStatementIngest\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                    CommandStatementIngest.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.arrow.flight.protocol.sql.CommandStatementIngest(), key, value;\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.tableDefinitionOptions = $root.arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.decode(reader, reader.uint32());\n                                    break;\n                                }\n                            case 2: {\n                                    message.table = reader.string();\n                                    break;\n                                }\n                            case 3: {\n                                    message.schema = reader.string();\n                                    break;\n                                }\n                            case 4: {\n                                    message.catalog = reader.string();\n                                    break;\n                                }\n                            case 5: {\n                                    message.temporary = reader.bool();\n                                    break;\n                                }\n                            case 6: {\n                                    message.transactionId = reader.bytes();\n                                    break;\n                                }\n                            case 1000: {\n                                    if (message.options === $util.emptyObject)\n                                        message.options = {};\n                                    var end2 = reader.uint32() + reader.pos;\n                                    key = \"\";\n                                    value = \"\";\n                                    while (reader.pos < end2) {\n                                        var tag2 = reader.uint32();\n                                        switch (tag2 >>> 3) {\n                                        case 1:\n                                            key = reader.string();\n                                            break;\n                                        case 2:\n                                            value = reader.string();\n                                            break;\n                                        default:\n                                            reader.skipType(tag2 & 7);\n                                            break;\n                                        }\n                                    }\n                                    message.options[key] = value;\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a CommandStatementIngest message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.CommandStatementIngest} CommandStatementIngest\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                    CommandStatementIngest.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 CommandStatementIngest message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\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                    CommandStatementIngest.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        var properties = {};\n                        if (message.tableDefinitionOptions != null && message.hasOwnProperty(\"tableDefinitionOptions\")) {\n                            var error = $root.arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.verify(message.tableDefinitionOptions);\n                            if (error)\n                                return \"tableDefinitionOptions.\" + error;\n                        }\n                        if (message.table != null && message.hasOwnProperty(\"table\"))\n                            if (!$util.isString(message.table))\n                                return \"table: string expected\";\n                        if (message.schema != null && message.hasOwnProperty(\"schema\")) {\n                            properties._schema = 1;\n                            if (!$util.isString(message.schema))\n                                return \"schema: string expected\";\n                        }\n                        if (message.catalog != null && message.hasOwnProperty(\"catalog\")) {\n                            properties._catalog = 1;\n                            if (!$util.isString(message.catalog))\n                                return \"catalog: string expected\";\n                        }\n                        if (message.temporary != null && message.hasOwnProperty(\"temporary\"))\n                            if (typeof message.temporary !== \"boolean\")\n                                return \"temporary: boolean expected\";\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\")) {\n                            properties._transactionId = 1;\n                            if (!(message.transactionId && typeof message.transactionId.length === \"number\" || $util.isString(message.transactionId)))\n                                return \"transactionId: buffer expected\";\n                        }\n                        if (message.options != null && message.hasOwnProperty(\"options\")) {\n                            if (!$util.isObject(message.options))\n                                return \"options: object expected\";\n                            var key = Object.keys(message.options);\n                            for (var i = 0; i < key.length; ++i)\n                                if (!$util.isString(message.options[key[i]]))\n                                    return \"options: string{k:string} expected\";\n                        }\n                        return null;\n                    };\n\n                    /**\n                     * Creates a CommandStatementIngest message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.CommandStatementIngest} CommandStatementIngest\n                     */\n                    CommandStatementIngest.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.CommandStatementIngest)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.CommandStatementIngest();\n                        if (object.tableDefinitionOptions != null) {\n                            if (typeof object.tableDefinitionOptions !== \"object\")\n                                throw TypeError(\".arrow.flight.protocol.sql.CommandStatementIngest.tableDefinitionOptions: object expected\");\n                            message.tableDefinitionOptions = $root.arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.fromObject(object.tableDefinitionOptions);\n                        }\n                        if (object.table != null)\n                            message.table = String(object.table);\n                        if (object.schema != null)\n                            message.schema = String(object.schema);\n                        if (object.catalog != null)\n                            message.catalog = String(object.catalog);\n                        if (object.temporary != null)\n                            message.temporary = Boolean(object.temporary);\n                        if (object.transactionId != null)\n                            if (typeof object.transactionId === \"string\")\n                                $util.base64.decode(object.transactionId, message.transactionId = $util.newBuffer($util.base64.length(object.transactionId)), 0);\n                            else if (object.transactionId.length >= 0)\n                                message.transactionId = object.transactionId;\n                        if (object.options) {\n                            if (typeof object.options !== \"object\")\n                                throw TypeError(\".arrow.flight.protocol.sql.CommandStatementIngest.options: object expected\");\n                            message.options = {};\n                            for (var keys = Object.keys(object.options), i = 0; i < keys.length; ++i)\n                                message.options[keys[i]] = String(object.options[keys[i]]);\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a CommandStatementIngest message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.CommandStatementIngest} message CommandStatementIngest\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    CommandStatementIngest.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.objects || options.defaults)\n                            object.options = {};\n                        if (options.defaults) {\n                            object.tableDefinitionOptions = null;\n                            object.table = \"\";\n                            object.temporary = false;\n                        }\n                        if (message.tableDefinitionOptions != null && message.hasOwnProperty(\"tableDefinitionOptions\"))\n                            object.tableDefinitionOptions = $root.arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.toObject(message.tableDefinitionOptions, options);\n                        if (message.table != null && message.hasOwnProperty(\"table\"))\n                            object.table = message.table;\n                        if (message.schema != null && message.hasOwnProperty(\"schema\")) {\n                            object.schema = message.schema;\n                            if (options.oneofs)\n                                object._schema = \"schema\";\n                        }\n                        if (message.catalog != null && message.hasOwnProperty(\"catalog\")) {\n                            object.catalog = message.catalog;\n                            if (options.oneofs)\n                                object._catalog = \"catalog\";\n                        }\n                        if (message.temporary != null && message.hasOwnProperty(\"temporary\"))\n                            object.temporary = message.temporary;\n                        if (message.transactionId != null && message.hasOwnProperty(\"transactionId\")) {\n                            object.transactionId = options.bytes === String ? $util.base64.encode(message.transactionId, 0, message.transactionId.length) : options.bytes === Array ? Array.prototype.slice.call(message.transactionId) : message.transactionId;\n                            if (options.oneofs)\n                                object._transactionId = \"transactionId\";\n                        }\n                        var keys2;\n                        if (message.options && (keys2 = Object.keys(message.options)).length) {\n                            object.options = {};\n                            for (var j = 0; j < keys2.length; ++j)\n                                object.options[keys2[j]] = message.options[keys2[j]];\n                        }\n                        return object;\n                    };\n\n                    /**\n                     * Converts this CommandStatementIngest to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    CommandStatementIngest.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for CommandStatementIngest\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    CommandStatementIngest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandStatementIngest\";\n                    };\n\n                    CommandStatementIngest.TableDefinitionOptions = (function() {\n\n                        /**\n                         * Properties of a TableDefinitionOptions.\n                         * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                         * @interface ITableDefinitionOptions\n                         * @property {arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.TableNotExistOption|null} [ifNotExist] TableDefinitionOptions ifNotExist\n                         * @property {arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.TableExistsOption|null} [ifExists] TableDefinitionOptions ifExists\n                         */\n\n                        /**\n                         * Constructs a new TableDefinitionOptions.\n                         * @memberof arrow.flight.protocol.sql.CommandStatementIngest\n                         * @classdesc Represents a TableDefinitionOptions.\n                         * @implements ITableDefinitionOptions\n                         * @constructor\n                         * @param {arrow.flight.protocol.sql.CommandStatementIngest.ITableDefinitionOptions=} [properties] Properties to set\n                         */\n                        function TableDefinitionOptions(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                         * TableDefinitionOptions ifNotExist.\n                         * @member {arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.TableNotExistOption} ifNotExist\n                         * @memberof arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions\n                         * @instance\n                         */\n                        TableDefinitionOptions.prototype.ifNotExist = 0;\n\n                        /**\n                         * TableDefinitionOptions ifExists.\n                         * @member {arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.TableExistsOption} ifExists\n                         * @memberof arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions\n                         * @instance\n                         */\n                        TableDefinitionOptions.prototype.ifExists = 0;\n\n                        /**\n                         * Creates a new TableDefinitionOptions instance using the specified properties.\n                         * @function create\n                         * @memberof arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions\n                         * @static\n                         * @param {arrow.flight.protocol.sql.CommandStatementIngest.ITableDefinitionOptions=} [properties] Properties to set\n                         * @returns {arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions} TableDefinitionOptions instance\n                         */\n                        TableDefinitionOptions.create = function create(properties) {\n                            return new TableDefinitionOptions(properties);\n                        };\n\n                        /**\n                         * Encodes the specified TableDefinitionOptions message. Does not implicitly {@link arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.verify|verify} messages.\n                         * @function encode\n                         * @memberof arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions\n                         * @static\n                         * @param {arrow.flight.protocol.sql.CommandStatementIngest.ITableDefinitionOptions} message TableDefinitionOptions message or plain object to encode\n                         * @param {$protobuf.Writer} [writer] Writer to encode to\n                         * @returns {$protobuf.Writer} Writer\n                         */\n                        TableDefinitionOptions.encode = function encode(message, writer) {\n                            if (!writer)\n                                writer = $Writer.create();\n                            if (message.ifNotExist != null && Object.hasOwnProperty.call(message, \"ifNotExist\"))\n                                writer.uint32(/* id 1, wireType 0 =*/8).int32(message.ifNotExist);\n                            if (message.ifExists != null && Object.hasOwnProperty.call(message, \"ifExists\"))\n                                writer.uint32(/* id 2, wireType 0 =*/16).int32(message.ifExists);\n                            return writer;\n                        };\n\n                        /**\n                         * Encodes the specified TableDefinitionOptions message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.verify|verify} messages.\n                         * @function encodeDelimited\n                         * @memberof arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions\n                         * @static\n                         * @param {arrow.flight.protocol.sql.CommandStatementIngest.ITableDefinitionOptions} message TableDefinitionOptions message or plain object to encode\n                         * @param {$protobuf.Writer} [writer] Writer to encode to\n                         * @returns {$protobuf.Writer} Writer\n                         */\n                        TableDefinitionOptions.encodeDelimited = function encodeDelimited(message, writer) {\n                            return this.encode(message, writer).ldelim();\n                        };\n\n                        /**\n                         * Decodes a TableDefinitionOptions message from the specified reader or buffer.\n                         * @function decode\n                         * @memberof arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions\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 {arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions} TableDefinitionOptions\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                        TableDefinitionOptions.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.arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions();\n                            while (reader.pos < end) {\n                                var tag = reader.uint32();\n                                switch (tag >>> 3) {\n                                case 1: {\n                                        message.ifNotExist = reader.int32();\n                                        break;\n                                    }\n                                case 2: {\n                                        message.ifExists = reader.int32();\n                                        break;\n                                    }\n                                default:\n                                    reader.skipType(tag & 7);\n                                    break;\n                                }\n                            }\n                            return message;\n                        };\n\n                        /**\n                         * Decodes a TableDefinitionOptions message from the specified reader or buffer, length delimited.\n                         * @function decodeDelimited\n                         * @memberof arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions\n                         * @static\n                         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                         * @returns {arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions} TableDefinitionOptions\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                        TableDefinitionOptions.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 TableDefinitionOptions message.\n                         * @function verify\n                         * @memberof arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions\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                        TableDefinitionOptions.verify = function verify(message) {\n                            if (typeof message !== \"object\" || message === null)\n                                return \"object expected\";\n                            if (message.ifNotExist != null && message.hasOwnProperty(\"ifNotExist\"))\n                                switch (message.ifNotExist) {\n                                default:\n                                    return \"ifNotExist: enum value expected\";\n                                case 0:\n                                case 1:\n                                case 2:\n                                    break;\n                                }\n                            if (message.ifExists != null && message.hasOwnProperty(\"ifExists\"))\n                                switch (message.ifExists) {\n                                default:\n                                    return \"ifExists: enum value expected\";\n                                case 0:\n                                case 1:\n                                case 2:\n                                case 3:\n                                    break;\n                                }\n                            return null;\n                        };\n\n                        /**\n                         * Creates a TableDefinitionOptions message from a plain object. Also converts values to their respective internal types.\n                         * @function fromObject\n                         * @memberof arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions\n                         * @static\n                         * @param {Object.<string,*>} object Plain object\n                         * @returns {arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions} TableDefinitionOptions\n                         */\n                        TableDefinitionOptions.fromObject = function fromObject(object) {\n                            if (object instanceof $root.arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions)\n                                return object;\n                            var message = new $root.arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions();\n                            switch (object.ifNotExist) {\n                            default:\n                                if (typeof object.ifNotExist === \"number\") {\n                                    message.ifNotExist = object.ifNotExist;\n                                    break;\n                                }\n                                break;\n                            case \"TABLE_NOT_EXIST_OPTION_UNSPECIFIED\":\n                            case 0:\n                                message.ifNotExist = 0;\n                                break;\n                            case \"TABLE_NOT_EXIST_OPTION_CREATE\":\n                            case 1:\n                                message.ifNotExist = 1;\n                                break;\n                            case \"TABLE_NOT_EXIST_OPTION_FAIL\":\n                            case 2:\n                                message.ifNotExist = 2;\n                                break;\n                            }\n                            switch (object.ifExists) {\n                            default:\n                                if (typeof object.ifExists === \"number\") {\n                                    message.ifExists = object.ifExists;\n                                    break;\n                                }\n                                break;\n                            case \"TABLE_EXISTS_OPTION_UNSPECIFIED\":\n                            case 0:\n                                message.ifExists = 0;\n                                break;\n                            case \"TABLE_EXISTS_OPTION_FAIL\":\n                            case 1:\n                                message.ifExists = 1;\n                                break;\n                            case \"TABLE_EXISTS_OPTION_APPEND\":\n                            case 2:\n                                message.ifExists = 2;\n                                break;\n                            case \"TABLE_EXISTS_OPTION_REPLACE\":\n                            case 3:\n                                message.ifExists = 3;\n                                break;\n                            }\n                            return message;\n                        };\n\n                        /**\n                         * Creates a plain object from a TableDefinitionOptions message. Also converts values to other types if specified.\n                         * @function toObject\n                         * @memberof arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions\n                         * @static\n                         * @param {arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions} message TableDefinitionOptions\n                         * @param {$protobuf.IConversionOptions} [options] Conversion options\n                         * @returns {Object.<string,*>} Plain object\n                         */\n                        TableDefinitionOptions.toObject = function toObject(message, options) {\n                            if (!options)\n                                options = {};\n                            var object = {};\n                            if (options.defaults) {\n                                object.ifNotExist = options.enums === String ? \"TABLE_NOT_EXIST_OPTION_UNSPECIFIED\" : 0;\n                                object.ifExists = options.enums === String ? \"TABLE_EXISTS_OPTION_UNSPECIFIED\" : 0;\n                            }\n                            if (message.ifNotExist != null && message.hasOwnProperty(\"ifNotExist\"))\n                                object.ifNotExist = options.enums === String ? $root.arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.TableNotExistOption[message.ifNotExist] === undefined ? message.ifNotExist : $root.arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.TableNotExistOption[message.ifNotExist] : message.ifNotExist;\n                            if (message.ifExists != null && message.hasOwnProperty(\"ifExists\"))\n                                object.ifExists = options.enums === String ? $root.arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.TableExistsOption[message.ifExists] === undefined ? message.ifExists : $root.arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.TableExistsOption[message.ifExists] : message.ifExists;\n                            return object;\n                        };\n\n                        /**\n                         * Converts this TableDefinitionOptions to JSON.\n                         * @function toJSON\n                         * @memberof arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions\n                         * @instance\n                         * @returns {Object.<string,*>} JSON object\n                         */\n                        TableDefinitionOptions.prototype.toJSON = function toJSON() {\n                            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                        };\n\n                        /**\n                         * Gets the default type url for TableDefinitionOptions\n                         * @function getTypeUrl\n                         * @memberof arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions\n                         * @static\n                         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                         * @returns {string} The default type url\n                         */\n                        TableDefinitionOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                            if (typeUrlPrefix === undefined) {\n                                typeUrlPrefix = \"type.googleapis.com\";\n                            }\n                            return typeUrlPrefix + \"/arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions\";\n                        };\n\n                        /**\n                         * TableNotExistOption enum.\n                         * @name arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.TableNotExistOption\n                         * @enum {number}\n                         * @property {number} TABLE_NOT_EXIST_OPTION_UNSPECIFIED=0 TABLE_NOT_EXIST_OPTION_UNSPECIFIED value\n                         * @property {number} TABLE_NOT_EXIST_OPTION_CREATE=1 TABLE_NOT_EXIST_OPTION_CREATE value\n                         * @property {number} TABLE_NOT_EXIST_OPTION_FAIL=2 TABLE_NOT_EXIST_OPTION_FAIL value\n                         */\n                        TableDefinitionOptions.TableNotExistOption = (function() {\n                            var valuesById = {}, values = Object.create(valuesById);\n                            values[valuesById[0] = \"TABLE_NOT_EXIST_OPTION_UNSPECIFIED\"] = 0;\n                            values[valuesById[1] = \"TABLE_NOT_EXIST_OPTION_CREATE\"] = 1;\n                            values[valuesById[2] = \"TABLE_NOT_EXIST_OPTION_FAIL\"] = 2;\n                            return values;\n                        })();\n\n                        /**\n                         * TableExistsOption enum.\n                         * @name arrow.flight.protocol.sql.CommandStatementIngest.TableDefinitionOptions.TableExistsOption\n                         * @enum {number}\n                         * @property {number} TABLE_EXISTS_OPTION_UNSPECIFIED=0 TABLE_EXISTS_OPTION_UNSPECIFIED value\n                         * @property {number} TABLE_EXISTS_OPTION_FAIL=1 TABLE_EXISTS_OPTION_FAIL value\n                         * @property {number} TABLE_EXISTS_OPTION_APPEND=2 TABLE_EXISTS_OPTION_APPEND value\n                         * @property {number} TABLE_EXISTS_OPTION_REPLACE=3 TABLE_EXISTS_OPTION_REPLACE value\n                         */\n                        TableDefinitionOptions.TableExistsOption = (function() {\n                            var valuesById = {}, values = Object.create(valuesById);\n                            values[valuesById[0] = \"TABLE_EXISTS_OPTION_UNSPECIFIED\"] = 0;\n                            values[valuesById[1] = \"TABLE_EXISTS_OPTION_FAIL\"] = 1;\n                            values[valuesById[2] = \"TABLE_EXISTS_OPTION_APPEND\"] = 2;\n                            values[valuesById[3] = \"TABLE_EXISTS_OPTION_REPLACE\"] = 3;\n                            return values;\n                        })();\n\n                        return TableDefinitionOptions;\n                    })();\n\n                    return CommandStatementIngest;\n                })();\n\n                sql.DoPutUpdateResult = (function() {\n\n                    /**\n                     * Properties of a DoPutUpdateResult.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface IDoPutUpdateResult\n                     * @property {number|Long|null} [recordCount] DoPutUpdateResult recordCount\n                     */\n\n                    /**\n                     * Constructs a new DoPutUpdateResult.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a DoPutUpdateResult.\n                     * @implements IDoPutUpdateResult\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.IDoPutUpdateResult=} [properties] Properties to set\n                     */\n                    function DoPutUpdateResult(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                     * DoPutUpdateResult recordCount.\n                     * @member {number|Long} recordCount\n                     * @memberof arrow.flight.protocol.sql.DoPutUpdateResult\n                     * @instance\n                     */\n                    DoPutUpdateResult.prototype.recordCount = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n                    /**\n                     * Creates a new DoPutUpdateResult instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.DoPutUpdateResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IDoPutUpdateResult=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.DoPutUpdateResult} DoPutUpdateResult instance\n                     */\n                    DoPutUpdateResult.create = function create(properties) {\n                        return new DoPutUpdateResult(properties);\n                    };\n\n                    /**\n                     * Encodes the specified DoPutUpdateResult message. Does not implicitly {@link arrow.flight.protocol.sql.DoPutUpdateResult.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.DoPutUpdateResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IDoPutUpdateResult} message DoPutUpdateResult message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    DoPutUpdateResult.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.recordCount != null && Object.hasOwnProperty.call(message, \"recordCount\"))\n                            writer.uint32(/* id 1, wireType 0 =*/8).int64(message.recordCount);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified DoPutUpdateResult message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.DoPutUpdateResult.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.DoPutUpdateResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IDoPutUpdateResult} message DoPutUpdateResult message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    DoPutUpdateResult.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a DoPutUpdateResult message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.DoPutUpdateResult\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 {arrow.flight.protocol.sql.DoPutUpdateResult} DoPutUpdateResult\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                    DoPutUpdateResult.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.arrow.flight.protocol.sql.DoPutUpdateResult();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.recordCount = reader.int64();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a DoPutUpdateResult message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.DoPutUpdateResult\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.DoPutUpdateResult} DoPutUpdateResult\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                    DoPutUpdateResult.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 DoPutUpdateResult message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.DoPutUpdateResult\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                    DoPutUpdateResult.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.recordCount != null && message.hasOwnProperty(\"recordCount\"))\n                            if (!$util.isInteger(message.recordCount) && !(message.recordCount && $util.isInteger(message.recordCount.low) && $util.isInteger(message.recordCount.high)))\n                                return \"recordCount: integer|Long expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates a DoPutUpdateResult message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.DoPutUpdateResult\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.DoPutUpdateResult} DoPutUpdateResult\n                     */\n                    DoPutUpdateResult.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.DoPutUpdateResult)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.DoPutUpdateResult();\n                        if (object.recordCount != null)\n                            if ($util.Long)\n                                (message.recordCount = $util.Long.fromValue(object.recordCount)).unsigned = false;\n                            else if (typeof object.recordCount === \"string\")\n                                message.recordCount = parseInt(object.recordCount, 10);\n                            else if (typeof object.recordCount === \"number\")\n                                message.recordCount = object.recordCount;\n                            else if (typeof object.recordCount === \"object\")\n                                message.recordCount = new $util.LongBits(object.recordCount.low >>> 0, object.recordCount.high >>> 0).toNumber();\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a DoPutUpdateResult message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.DoPutUpdateResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.DoPutUpdateResult} message DoPutUpdateResult\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    DoPutUpdateResult.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            if ($util.Long) {\n                                var long = new $util.Long(0, 0, false);\n                                object.recordCount = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n                            } else\n                                object.recordCount = options.longs === String ? \"0\" : 0;\n                        if (message.recordCount != null && message.hasOwnProperty(\"recordCount\"))\n                            if (typeof message.recordCount === \"number\")\n                                object.recordCount = options.longs === String ? String(message.recordCount) : message.recordCount;\n                            else\n                                object.recordCount = options.longs === String ? $util.Long.prototype.toString.call(message.recordCount) : options.longs === Number ? new $util.LongBits(message.recordCount.low >>> 0, message.recordCount.high >>> 0).toNumber() : message.recordCount;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this DoPutUpdateResult to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.DoPutUpdateResult\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    DoPutUpdateResult.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for DoPutUpdateResult\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.DoPutUpdateResult\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    DoPutUpdateResult.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.DoPutUpdateResult\";\n                    };\n\n                    return DoPutUpdateResult;\n                })();\n\n                sql.DoPutPreparedStatementResult = (function() {\n\n                    /**\n                     * Properties of a DoPutPreparedStatementResult.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface IDoPutPreparedStatementResult\n                     * @property {Uint8Array|null} [preparedStatementHandle] DoPutPreparedStatementResult preparedStatementHandle\n                     */\n\n                    /**\n                     * Constructs a new DoPutPreparedStatementResult.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents a DoPutPreparedStatementResult.\n                     * @implements IDoPutPreparedStatementResult\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.IDoPutPreparedStatementResult=} [properties] Properties to set\n                     */\n                    function DoPutPreparedStatementResult(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                     * DoPutPreparedStatementResult preparedStatementHandle.\n                     * @member {Uint8Array|null|undefined} preparedStatementHandle\n                     * @memberof arrow.flight.protocol.sql.DoPutPreparedStatementResult\n                     * @instance\n                     */\n                    DoPutPreparedStatementResult.prototype.preparedStatementHandle = null;\n\n                    // OneOf field names bound to virtual getters and setters\n                    var $oneOfFields;\n\n                    /**\n                     * DoPutPreparedStatementResult _preparedStatementHandle.\n                     * @member {\"preparedStatementHandle\"|undefined} _preparedStatementHandle\n                     * @memberof arrow.flight.protocol.sql.DoPutPreparedStatementResult\n                     * @instance\n                     */\n                    Object.defineProperty(DoPutPreparedStatementResult.prototype, \"_preparedStatementHandle\", {\n                        get: $util.oneOfGetter($oneOfFields = [\"preparedStatementHandle\"]),\n                        set: $util.oneOfSetter($oneOfFields)\n                    });\n\n                    /**\n                     * Creates a new DoPutPreparedStatementResult instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.DoPutPreparedStatementResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IDoPutPreparedStatementResult=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.DoPutPreparedStatementResult} DoPutPreparedStatementResult instance\n                     */\n                    DoPutPreparedStatementResult.create = function create(properties) {\n                        return new DoPutPreparedStatementResult(properties);\n                    };\n\n                    /**\n                     * Encodes the specified DoPutPreparedStatementResult message. Does not implicitly {@link arrow.flight.protocol.sql.DoPutPreparedStatementResult.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.DoPutPreparedStatementResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IDoPutPreparedStatementResult} message DoPutPreparedStatementResult message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    DoPutPreparedStatementResult.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.preparedStatementHandle != null && Object.hasOwnProperty.call(message, \"preparedStatementHandle\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.preparedStatementHandle);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified DoPutPreparedStatementResult message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.DoPutPreparedStatementResult.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.DoPutPreparedStatementResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IDoPutPreparedStatementResult} message DoPutPreparedStatementResult message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    DoPutPreparedStatementResult.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes a DoPutPreparedStatementResult message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.DoPutPreparedStatementResult\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 {arrow.flight.protocol.sql.DoPutPreparedStatementResult} DoPutPreparedStatementResult\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                    DoPutPreparedStatementResult.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.arrow.flight.protocol.sql.DoPutPreparedStatementResult();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.preparedStatementHandle = reader.bytes();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes a DoPutPreparedStatementResult message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.DoPutPreparedStatementResult\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.DoPutPreparedStatementResult} DoPutPreparedStatementResult\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                    DoPutPreparedStatementResult.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 DoPutPreparedStatementResult message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.DoPutPreparedStatementResult\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                    DoPutPreparedStatementResult.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        var properties = {};\n                        if (message.preparedStatementHandle != null && message.hasOwnProperty(\"preparedStatementHandle\")) {\n                            properties._preparedStatementHandle = 1;\n                            if (!(message.preparedStatementHandle && typeof message.preparedStatementHandle.length === \"number\" || $util.isString(message.preparedStatementHandle)))\n                                return \"preparedStatementHandle: buffer expected\";\n                        }\n                        return null;\n                    };\n\n                    /**\n                     * Creates a DoPutPreparedStatementResult message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.DoPutPreparedStatementResult\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.DoPutPreparedStatementResult} DoPutPreparedStatementResult\n                     */\n                    DoPutPreparedStatementResult.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.DoPutPreparedStatementResult)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.DoPutPreparedStatementResult();\n                        if (object.preparedStatementHandle != null)\n                            if (typeof object.preparedStatementHandle === \"string\")\n                                $util.base64.decode(object.preparedStatementHandle, message.preparedStatementHandle = $util.newBuffer($util.base64.length(object.preparedStatementHandle)), 0);\n                            else if (object.preparedStatementHandle.length >= 0)\n                                message.preparedStatementHandle = object.preparedStatementHandle;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from a DoPutPreparedStatementResult message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.DoPutPreparedStatementResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.DoPutPreparedStatementResult} message DoPutPreparedStatementResult\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    DoPutPreparedStatementResult.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (message.preparedStatementHandle != null && message.hasOwnProperty(\"preparedStatementHandle\")) {\n                            object.preparedStatementHandle = options.bytes === String ? $util.base64.encode(message.preparedStatementHandle, 0, message.preparedStatementHandle.length) : options.bytes === Array ? Array.prototype.slice.call(message.preparedStatementHandle) : message.preparedStatementHandle;\n                            if (options.oneofs)\n                                object._preparedStatementHandle = \"preparedStatementHandle\";\n                        }\n                        return object;\n                    };\n\n                    /**\n                     * Converts this DoPutPreparedStatementResult to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.DoPutPreparedStatementResult\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    DoPutPreparedStatementResult.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for DoPutPreparedStatementResult\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.DoPutPreparedStatementResult\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    DoPutPreparedStatementResult.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.DoPutPreparedStatementResult\";\n                    };\n\n                    return DoPutPreparedStatementResult;\n                })();\n\n                sql.ActionCancelQueryRequest = (function() {\n\n                    /**\n                     * Properties of an ActionCancelQueryRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface IActionCancelQueryRequest\n                     * @property {Uint8Array|null} [info] ActionCancelQueryRequest info\n                     */\n\n                    /**\n                     * Constructs a new ActionCancelQueryRequest.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents an ActionCancelQueryRequest.\n                     * @implements IActionCancelQueryRequest\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.IActionCancelQueryRequest=} [properties] Properties to set\n                     */\n                    function ActionCancelQueryRequest(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                     * ActionCancelQueryRequest info.\n                     * @member {Uint8Array} info\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryRequest\n                     * @instance\n                     */\n                    ActionCancelQueryRequest.prototype.info = $util.newBuffer([]);\n\n                    /**\n                     * Creates a new ActionCancelQueryRequest instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCancelQueryRequest=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.ActionCancelQueryRequest} ActionCancelQueryRequest instance\n                     */\n                    ActionCancelQueryRequest.create = function create(properties) {\n                        return new ActionCancelQueryRequest(properties);\n                    };\n\n                    /**\n                     * Encodes the specified ActionCancelQueryRequest message. Does not implicitly {@link arrow.flight.protocol.sql.ActionCancelQueryRequest.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCancelQueryRequest} message ActionCancelQueryRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionCancelQueryRequest.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.info != null && Object.hasOwnProperty.call(message, \"info\"))\n                            writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.info);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified ActionCancelQueryRequest message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.ActionCancelQueryRequest.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCancelQueryRequest} message ActionCancelQueryRequest message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionCancelQueryRequest.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes an ActionCancelQueryRequest message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryRequest\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 {arrow.flight.protocol.sql.ActionCancelQueryRequest} ActionCancelQueryRequest\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                    ActionCancelQueryRequest.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.arrow.flight.protocol.sql.ActionCancelQueryRequest();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.info = reader.bytes();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes an ActionCancelQueryRequest message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryRequest\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.ActionCancelQueryRequest} ActionCancelQueryRequest\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                    ActionCancelQueryRequest.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 ActionCancelQueryRequest message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryRequest\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                    ActionCancelQueryRequest.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.info != null && message.hasOwnProperty(\"info\"))\n                            if (!(message.info && typeof message.info.length === \"number\" || $util.isString(message.info)))\n                                return \"info: buffer expected\";\n                        return null;\n                    };\n\n                    /**\n                     * Creates an ActionCancelQueryRequest message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryRequest\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.ActionCancelQueryRequest} ActionCancelQueryRequest\n                     */\n                    ActionCancelQueryRequest.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.ActionCancelQueryRequest)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.ActionCancelQueryRequest();\n                        if (object.info != null)\n                            if (typeof object.info === \"string\")\n                                $util.base64.decode(object.info, message.info = $util.newBuffer($util.base64.length(object.info)), 0);\n                            else if (object.info.length >= 0)\n                                message.info = object.info;\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from an ActionCancelQueryRequest message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryRequest\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ActionCancelQueryRequest} message ActionCancelQueryRequest\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    ActionCancelQueryRequest.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            if (options.bytes === String)\n                                object.info = \"\";\n                            else {\n                                object.info = [];\n                                if (options.bytes !== Array)\n                                    object.info = $util.newBuffer(object.info);\n                            }\n                        if (message.info != null && message.hasOwnProperty(\"info\"))\n                            object.info = options.bytes === String ? $util.base64.encode(message.info, 0, message.info.length) : options.bytes === Array ? Array.prototype.slice.call(message.info) : message.info;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this ActionCancelQueryRequest to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryRequest\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    ActionCancelQueryRequest.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for ActionCancelQueryRequest\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryRequest\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    ActionCancelQueryRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.ActionCancelQueryRequest\";\n                    };\n\n                    return ActionCancelQueryRequest;\n                })();\n\n                sql.ActionCancelQueryResult = (function() {\n\n                    /**\n                     * Properties of an ActionCancelQueryResult.\n                     * @memberof arrow.flight.protocol.sql\n                     * @interface IActionCancelQueryResult\n                     * @property {arrow.flight.protocol.sql.ActionCancelQueryResult.CancelResult|null} [result] ActionCancelQueryResult result\n                     */\n\n                    /**\n                     * Constructs a new ActionCancelQueryResult.\n                     * @memberof arrow.flight.protocol.sql\n                     * @classdesc Represents an ActionCancelQueryResult.\n                     * @implements IActionCancelQueryResult\n                     * @constructor\n                     * @param {arrow.flight.protocol.sql.IActionCancelQueryResult=} [properties] Properties to set\n                     */\n                    function ActionCancelQueryResult(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                     * ActionCancelQueryResult result.\n                     * @member {arrow.flight.protocol.sql.ActionCancelQueryResult.CancelResult} result\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryResult\n                     * @instance\n                     */\n                    ActionCancelQueryResult.prototype.result = 0;\n\n                    /**\n                     * Creates a new ActionCancelQueryResult instance using the specified properties.\n                     * @function create\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCancelQueryResult=} [properties] Properties to set\n                     * @returns {arrow.flight.protocol.sql.ActionCancelQueryResult} ActionCancelQueryResult instance\n                     */\n                    ActionCancelQueryResult.create = function create(properties) {\n                        return new ActionCancelQueryResult(properties);\n                    };\n\n                    /**\n                     * Encodes the specified ActionCancelQueryResult message. Does not implicitly {@link arrow.flight.protocol.sql.ActionCancelQueryResult.verify|verify} messages.\n                     * @function encode\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCancelQueryResult} message ActionCancelQueryResult message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionCancelQueryResult.encode = function encode(message, writer) {\n                        if (!writer)\n                            writer = $Writer.create();\n                        if (message.result != null && Object.hasOwnProperty.call(message, \"result\"))\n                            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.result);\n                        return writer;\n                    };\n\n                    /**\n                     * Encodes the specified ActionCancelQueryResult message, length delimited. Does not implicitly {@link arrow.flight.protocol.sql.ActionCancelQueryResult.verify|verify} messages.\n                     * @function encodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.IActionCancelQueryResult} message ActionCancelQueryResult message or plain object to encode\n                     * @param {$protobuf.Writer} [writer] Writer to encode to\n                     * @returns {$protobuf.Writer} Writer\n                     */\n                    ActionCancelQueryResult.encodeDelimited = function encodeDelimited(message, writer) {\n                        return this.encode(message, writer).ldelim();\n                    };\n\n                    /**\n                     * Decodes an ActionCancelQueryResult message from the specified reader or buffer.\n                     * @function decode\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryResult\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 {arrow.flight.protocol.sql.ActionCancelQueryResult} ActionCancelQueryResult\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                    ActionCancelQueryResult.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.arrow.flight.protocol.sql.ActionCancelQueryResult();\n                        while (reader.pos < end) {\n                            var tag = reader.uint32();\n                            switch (tag >>> 3) {\n                            case 1: {\n                                    message.result = reader.int32();\n                                    break;\n                                }\n                            default:\n                                reader.skipType(tag & 7);\n                                break;\n                            }\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Decodes an ActionCancelQueryResult message from the specified reader or buffer, length delimited.\n                     * @function decodeDelimited\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryResult\n                     * @static\n                     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                     * @returns {arrow.flight.protocol.sql.ActionCancelQueryResult} ActionCancelQueryResult\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                    ActionCancelQueryResult.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 ActionCancelQueryResult message.\n                     * @function verify\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryResult\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                    ActionCancelQueryResult.verify = function verify(message) {\n                        if (typeof message !== \"object\" || message === null)\n                            return \"object expected\";\n                        if (message.result != null && message.hasOwnProperty(\"result\"))\n                            switch (message.result) {\n                            default:\n                                return \"result: enum value expected\";\n                            case 0:\n                            case 1:\n                            case 2:\n                            case 3:\n                                break;\n                            }\n                        return null;\n                    };\n\n                    /**\n                     * Creates an ActionCancelQueryResult message from a plain object. Also converts values to their respective internal types.\n                     * @function fromObject\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryResult\n                     * @static\n                     * @param {Object.<string,*>} object Plain object\n                     * @returns {arrow.flight.protocol.sql.ActionCancelQueryResult} ActionCancelQueryResult\n                     */\n                    ActionCancelQueryResult.fromObject = function fromObject(object) {\n                        if (object instanceof $root.arrow.flight.protocol.sql.ActionCancelQueryResult)\n                            return object;\n                        var message = new $root.arrow.flight.protocol.sql.ActionCancelQueryResult();\n                        switch (object.result) {\n                        default:\n                            if (typeof object.result === \"number\") {\n                                message.result = object.result;\n                                break;\n                            }\n                            break;\n                        case \"CANCEL_RESULT_UNSPECIFIED\":\n                        case 0:\n                            message.result = 0;\n                            break;\n                        case \"CANCEL_RESULT_CANCELLED\":\n                        case 1:\n                            message.result = 1;\n                            break;\n                        case \"CANCEL_RESULT_CANCELLING\":\n                        case 2:\n                            message.result = 2;\n                            break;\n                        case \"CANCEL_RESULT_NOT_CANCELLABLE\":\n                        case 3:\n                            message.result = 3;\n                            break;\n                        }\n                        return message;\n                    };\n\n                    /**\n                     * Creates a plain object from an ActionCancelQueryResult message. Also converts values to other types if specified.\n                     * @function toObject\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryResult\n                     * @static\n                     * @param {arrow.flight.protocol.sql.ActionCancelQueryResult} message ActionCancelQueryResult\n                     * @param {$protobuf.IConversionOptions} [options] Conversion options\n                     * @returns {Object.<string,*>} Plain object\n                     */\n                    ActionCancelQueryResult.toObject = function toObject(message, options) {\n                        if (!options)\n                            options = {};\n                        var object = {};\n                        if (options.defaults)\n                            object.result = options.enums === String ? \"CANCEL_RESULT_UNSPECIFIED\" : 0;\n                        if (message.result != null && message.hasOwnProperty(\"result\"))\n                            object.result = options.enums === String ? $root.arrow.flight.protocol.sql.ActionCancelQueryResult.CancelResult[message.result] === undefined ? message.result : $root.arrow.flight.protocol.sql.ActionCancelQueryResult.CancelResult[message.result] : message.result;\n                        return object;\n                    };\n\n                    /**\n                     * Converts this ActionCancelQueryResult to JSON.\n                     * @function toJSON\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryResult\n                     * @instance\n                     * @returns {Object.<string,*>} JSON object\n                     */\n                    ActionCancelQueryResult.prototype.toJSON = function toJSON() {\n                        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                    };\n\n                    /**\n                     * Gets the default type url for ActionCancelQueryResult\n                     * @function getTypeUrl\n                     * @memberof arrow.flight.protocol.sql.ActionCancelQueryResult\n                     * @static\n                     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                     * @returns {string} The default type url\n                     */\n                    ActionCancelQueryResult.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                        if (typeUrlPrefix === undefined) {\n                            typeUrlPrefix = \"type.googleapis.com\";\n                        }\n                        return typeUrlPrefix + \"/arrow.flight.protocol.sql.ActionCancelQueryResult\";\n                    };\n\n                    /**\n                     * CancelResult enum.\n                     * @name arrow.flight.protocol.sql.ActionCancelQueryResult.CancelResult\n                     * @enum {number}\n                     * @property {number} CANCEL_RESULT_UNSPECIFIED=0 CANCEL_RESULT_UNSPECIFIED value\n                     * @property {number} CANCEL_RESULT_CANCELLED=1 CANCEL_RESULT_CANCELLED value\n                     * @property {number} CANCEL_RESULT_CANCELLING=2 CANCEL_RESULT_CANCELLING value\n                     * @property {number} CANCEL_RESULT_NOT_CANCELLABLE=3 CANCEL_RESULT_NOT_CANCELLABLE value\n                     */\n                    ActionCancelQueryResult.CancelResult = (function() {\n                        var valuesById = {}, values = Object.create(valuesById);\n                        values[valuesById[0] = \"CANCEL_RESULT_UNSPECIFIED\"] = 0;\n                        values[valuesById[1] = \"CANCEL_RESULT_CANCELLED\"] = 1;\n                        values[valuesById[2] = \"CANCEL_RESULT_CANCELLING\"] = 2;\n                        values[valuesById[3] = \"CANCEL_RESULT_NOT_CANCELLABLE\"] = 3;\n                        return values;\n                    })();\n\n                    return ActionCancelQueryResult;\n                })();\n\n                return sql;\n            })();\n\n            return protocol;\n        })();\n\n        return flight;\n    })();\n\n    return arrow;\n})();\n\n$root.google = (function() {\n\n    /**\n     * Namespace google.\n     * @exports google\n     * @namespace\n     */\n    var google = {};\n\n    google.protobuf = (function() {\n\n        /**\n         * Namespace protobuf.\n         * @memberof google\n         * @namespace\n         */\n        var protobuf = {};\n\n        protobuf.FileDescriptorSet = (function() {\n\n            /**\n             * Properties of a FileDescriptorSet.\n             * @memberof google.protobuf\n             * @interface IFileDescriptorSet\n             * @property {Array.<google.protobuf.IFileDescriptorProto>|null} [file] FileDescriptorSet file\n             */\n\n            /**\n             * Constructs a new FileDescriptorSet.\n             * @memberof google.protobuf\n             * @classdesc Represents a FileDescriptorSet.\n             * @implements IFileDescriptorSet\n             * @constructor\n             * @param {google.protobuf.IFileDescriptorSet=} [properties] Properties to set\n             */\n            function FileDescriptorSet(properties) {\n                this.file = [];\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             * FileDescriptorSet file.\n             * @member {Array.<google.protobuf.IFileDescriptorProto>} file\n             * @memberof google.protobuf.FileDescriptorSet\n             * @instance\n             */\n            FileDescriptorSet.prototype.file = $util.emptyArray;\n\n            /**\n             * Creates a new FileDescriptorSet instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.FileDescriptorSet\n             * @static\n             * @param {google.protobuf.IFileDescriptorSet=} [properties] Properties to set\n             * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet instance\n             */\n            FileDescriptorSet.create = function create(properties) {\n                return new FileDescriptorSet(properties);\n            };\n\n            /**\n             * Encodes the specified FileDescriptorSet message. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.FileDescriptorSet\n             * @static\n             * @param {google.protobuf.IFileDescriptorSet} message FileDescriptorSet message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FileDescriptorSet.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.file != null && message.file.length)\n                    for (var i = 0; i < message.file.length; ++i)\n                        $root.google.protobuf.FileDescriptorProto.encode(message.file[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n                return writer;\n            };\n\n            /**\n             * Encodes the specified FileDescriptorSet message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.FileDescriptorSet\n             * @static\n             * @param {google.protobuf.IFileDescriptorSet} message FileDescriptorSet message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FileDescriptorSet.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes a FileDescriptorSet message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.FileDescriptorSet\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 {google.protobuf.FileDescriptorSet} FileDescriptorSet\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            FileDescriptorSet.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.google.protobuf.FileDescriptorSet();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1: {\n                            if (!(message.file && message.file.length))\n                                message.file = [];\n                            message.file.push($root.google.protobuf.FileDescriptorProto.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes a FileDescriptorSet message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.FileDescriptorSet\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet\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            FileDescriptorSet.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 FileDescriptorSet message.\n             * @function verify\n             * @memberof google.protobuf.FileDescriptorSet\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            FileDescriptorSet.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.file != null && message.hasOwnProperty(\"file\")) {\n                    if (!Array.isArray(message.file))\n                        return \"file: array expected\";\n                    for (var i = 0; i < message.file.length; ++i) {\n                        var error = $root.google.protobuf.FileDescriptorProto.verify(message.file[i]);\n                        if (error)\n                            return \"file.\" + error;\n                    }\n                }\n                return null;\n            };\n\n            /**\n             * Creates a FileDescriptorSet message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.FileDescriptorSet\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet\n             */\n            FileDescriptorSet.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.FileDescriptorSet)\n                    return object;\n                var message = new $root.google.protobuf.FileDescriptorSet();\n                if (object.file) {\n                    if (!Array.isArray(object.file))\n                        throw TypeError(\".google.protobuf.FileDescriptorSet.file: array expected\");\n                    message.file = [];\n                    for (var i = 0; i < object.file.length; ++i) {\n                        if (typeof object.file[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.FileDescriptorSet.file: object expected\");\n                        message.file[i] = $root.google.protobuf.FileDescriptorProto.fromObject(object.file[i]);\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from a FileDescriptorSet message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.FileDescriptorSet\n             * @static\n             * @param {google.protobuf.FileDescriptorSet} message FileDescriptorSet\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            FileDescriptorSet.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.file = [];\n                if (message.file && message.file.length) {\n                    object.file = [];\n                    for (var j = 0; j < message.file.length; ++j)\n                        object.file[j] = $root.google.protobuf.FileDescriptorProto.toObject(message.file[j], options);\n                }\n                return object;\n            };\n\n            /**\n             * Converts this FileDescriptorSet to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.FileDescriptorSet\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            FileDescriptorSet.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for FileDescriptorSet\n             * @function getTypeUrl\n             * @memberof google.protobuf.FileDescriptorSet\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            FileDescriptorSet.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.FileDescriptorSet\";\n            };\n\n            return FileDescriptorSet;\n        })();\n\n        protobuf.FileDescriptorProto = (function() {\n\n            /**\n             * Properties of a FileDescriptorProto.\n             * @memberof google.protobuf\n             * @interface IFileDescriptorProto\n             * @property {string|null} [name] FileDescriptorProto name\n             * @property {string|null} [\"package\"] FileDescriptorProto package\n             * @property {Array.<string>|null} [dependency] FileDescriptorProto dependency\n             * @property {Array.<number>|null} [publicDependency] FileDescriptorProto publicDependency\n             * @property {Array.<number>|null} [weakDependency] FileDescriptorProto weakDependency\n             * @property {Array.<google.protobuf.IDescriptorProto>|null} [messageType] FileDescriptorProto messageType\n             * @property {Array.<google.protobuf.IEnumDescriptorProto>|null} [enumType] FileDescriptorProto enumType\n             * @property {Array.<google.protobuf.IServiceDescriptorProto>|null} [service] FileDescriptorProto service\n             * @property {Array.<google.protobuf.IFieldDescriptorProto>|null} [extension] FileDescriptorProto extension\n             * @property {google.protobuf.IFileOptions|null} [options] FileDescriptorProto options\n             * @property {google.protobuf.ISourceCodeInfo|null} [sourceCodeInfo] FileDescriptorProto sourceCodeInfo\n             * @property {string|null} [syntax] FileDescriptorProto syntax\n             */\n\n            /**\n             * Constructs a new FileDescriptorProto.\n             * @memberof google.protobuf\n             * @classdesc Represents a FileDescriptorProto.\n             * @implements IFileDescriptorProto\n             * @constructor\n             * @param {google.protobuf.IFileDescriptorProto=} [properties] Properties to set\n             */\n            function FileDescriptorProto(properties) {\n                this.dependency = [];\n                this.publicDependency = [];\n                this.weakDependency = [];\n                this.messageType = [];\n                this.enumType = [];\n                this.service = [];\n                this.extension = [];\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             * FileDescriptorProto name.\n             * @member {string} name\n             * @memberof google.protobuf.FileDescriptorProto\n             * @instance\n             */\n            FileDescriptorProto.prototype.name = \"\";\n\n            /**\n             * FileDescriptorProto package.\n             * @member {string} package\n             * @memberof google.protobuf.FileDescriptorProto\n             * @instance\n             */\n            FileDescriptorProto.prototype[\"package\"] = \"\";\n\n            /**\n             * FileDescriptorProto dependency.\n             * @member {Array.<string>} dependency\n             * @memberof google.protobuf.FileDescriptorProto\n             * @instance\n             */\n            FileDescriptorProto.prototype.dependency = $util.emptyArray;\n\n            /**\n             * FileDescriptorProto publicDependency.\n             * @member {Array.<number>} publicDependency\n             * @memberof google.protobuf.FileDescriptorProto\n             * @instance\n             */\n            FileDescriptorProto.prototype.publicDependency = $util.emptyArray;\n\n            /**\n             * FileDescriptorProto weakDependency.\n             * @member {Array.<number>} weakDependency\n             * @memberof google.protobuf.FileDescriptorProto\n             * @instance\n             */\n            FileDescriptorProto.prototype.weakDependency = $util.emptyArray;\n\n            /**\n             * FileDescriptorProto messageType.\n             * @member {Array.<google.protobuf.IDescriptorProto>} messageType\n             * @memberof google.protobuf.FileDescriptorProto\n             * @instance\n             */\n            FileDescriptorProto.prototype.messageType = $util.emptyArray;\n\n            /**\n             * FileDescriptorProto enumType.\n             * @member {Array.<google.protobuf.IEnumDescriptorProto>} enumType\n             * @memberof google.protobuf.FileDescriptorProto\n             * @instance\n             */\n            FileDescriptorProto.prototype.enumType = $util.emptyArray;\n\n            /**\n             * FileDescriptorProto service.\n             * @member {Array.<google.protobuf.IServiceDescriptorProto>} service\n             * @memberof google.protobuf.FileDescriptorProto\n             * @instance\n             */\n            FileDescriptorProto.prototype.service = $util.emptyArray;\n\n            /**\n             * FileDescriptorProto extension.\n             * @member {Array.<google.protobuf.IFieldDescriptorProto>} extension\n             * @memberof google.protobuf.FileDescriptorProto\n             * @instance\n             */\n            FileDescriptorProto.prototype.extension = $util.emptyArray;\n\n            /**\n             * FileDescriptorProto options.\n             * @member {google.protobuf.IFileOptions|null|undefined} options\n             * @memberof google.protobuf.FileDescriptorProto\n             * @instance\n             */\n            FileDescriptorProto.prototype.options = null;\n\n            /**\n             * FileDescriptorProto sourceCodeInfo.\n             * @member {google.protobuf.ISourceCodeInfo|null|undefined} sourceCodeInfo\n             * @memberof google.protobuf.FileDescriptorProto\n             * @instance\n             */\n            FileDescriptorProto.prototype.sourceCodeInfo = null;\n\n            /**\n             * FileDescriptorProto syntax.\n             * @member {string} syntax\n             * @memberof google.protobuf.FileDescriptorProto\n             * @instance\n             */\n            FileDescriptorProto.prototype.syntax = \"\";\n\n            /**\n             * Creates a new FileDescriptorProto instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.FileDescriptorProto\n             * @static\n             * @param {google.protobuf.IFileDescriptorProto=} [properties] Properties to set\n             * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto instance\n             */\n            FileDescriptorProto.create = function create(properties) {\n                return new FileDescriptorProto(properties);\n            };\n\n            /**\n             * Encodes the specified FileDescriptorProto message. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.FileDescriptorProto\n             * @static\n             * @param {google.protobuf.IFileDescriptorProto} message FileDescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FileDescriptorProto.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n                if (message[\"package\"] != null && Object.hasOwnProperty.call(message, \"package\"))\n                    writer.uint32(/* id 2, wireType 2 =*/18).string(message[\"package\"]);\n                if (message.dependency != null && message.dependency.length)\n                    for (var i = 0; i < message.dependency.length; ++i)\n                        writer.uint32(/* id 3, wireType 2 =*/26).string(message.dependency[i]);\n                if (message.messageType != null && message.messageType.length)\n                    for (var i = 0; i < message.messageType.length; ++i)\n                        $root.google.protobuf.DescriptorProto.encode(message.messageType[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n                if (message.enumType != null && message.enumType.length)\n                    for (var i = 0; i < message.enumType.length; ++i)\n                        $root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n                if (message.service != null && message.service.length)\n                    for (var i = 0; i < message.service.length; ++i)\n                        $root.google.protobuf.ServiceDescriptorProto.encode(message.service[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n                if (message.extension != null && message.extension.length)\n                    for (var i = 0; i < message.extension.length; ++i)\n                        $root.google.protobuf.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();\n                if (message.options != null && Object.hasOwnProperty.call(message, \"options\"))\n                    $root.google.protobuf.FileOptions.encode(message.options, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();\n                if (message.sourceCodeInfo != null && Object.hasOwnProperty.call(message, \"sourceCodeInfo\"))\n                    $root.google.protobuf.SourceCodeInfo.encode(message.sourceCodeInfo, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();\n                if (message.publicDependency != null && message.publicDependency.length)\n                    for (var i = 0; i < message.publicDependency.length; ++i)\n                        writer.uint32(/* id 10, wireType 0 =*/80).int32(message.publicDependency[i]);\n                if (message.weakDependency != null && message.weakDependency.length)\n                    for (var i = 0; i < message.weakDependency.length; ++i)\n                        writer.uint32(/* id 11, wireType 0 =*/88).int32(message.weakDependency[i]);\n                if (message.syntax != null && Object.hasOwnProperty.call(message, \"syntax\"))\n                    writer.uint32(/* id 12, wireType 2 =*/98).string(message.syntax);\n                return writer;\n            };\n\n            /**\n             * Encodes the specified FileDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.FileDescriptorProto\n             * @static\n             * @param {google.protobuf.IFileDescriptorProto} message FileDescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FileDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes a FileDescriptorProto message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.FileDescriptorProto\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 {google.protobuf.FileDescriptorProto} FileDescriptorProto\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            FileDescriptorProto.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.google.protobuf.FileDescriptorProto();\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                        }\n                    case 2: {\n                            message[\"package\"] = reader.string();\n                            break;\n                        }\n                    case 3: {\n                            if (!(message.dependency && message.dependency.length))\n                                message.dependency = [];\n                            message.dependency.push(reader.string());\n                            break;\n                        }\n                    case 10: {\n                            if (!(message.publicDependency && message.publicDependency.length))\n                                message.publicDependency = [];\n                            if ((tag & 7) === 2) {\n                                var end2 = reader.uint32() + reader.pos;\n                                while (reader.pos < end2)\n                                    message.publicDependency.push(reader.int32());\n                            } else\n                                message.publicDependency.push(reader.int32());\n                            break;\n                        }\n                    case 11: {\n                            if (!(message.weakDependency && message.weakDependency.length))\n                                message.weakDependency = [];\n                            if ((tag & 7) === 2) {\n                                var end2 = reader.uint32() + reader.pos;\n                                while (reader.pos < end2)\n                                    message.weakDependency.push(reader.int32());\n                            } else\n                                message.weakDependency.push(reader.int32());\n                            break;\n                        }\n                    case 4: {\n                            if (!(message.messageType && message.messageType.length))\n                                message.messageType = [];\n                            message.messageType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 5: {\n                            if (!(message.enumType && message.enumType.length))\n                                message.enumType = [];\n                            message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 6: {\n                            if (!(message.service && message.service.length))\n                                message.service = [];\n                            message.service.push($root.google.protobuf.ServiceDescriptorProto.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 7: {\n                            if (!(message.extension && message.extension.length))\n                                message.extension = [];\n                            message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 8: {\n                            message.options = $root.google.protobuf.FileOptions.decode(reader, reader.uint32());\n                            break;\n                        }\n                    case 9: {\n                            message.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.decode(reader, reader.uint32());\n                            break;\n                        }\n                    case 12: {\n                            message.syntax = reader.string();\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes a FileDescriptorProto message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.FileDescriptorProto\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto\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            FileDescriptorProto.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 FileDescriptorProto message.\n             * @function verify\n             * @memberof google.protobuf.FileDescriptorProto\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            FileDescriptorProto.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[\"package\"] != null && message.hasOwnProperty(\"package\"))\n                    if (!$util.isString(message[\"package\"]))\n                        return \"package: string expected\";\n                if (message.dependency != null && message.hasOwnProperty(\"dependency\")) {\n                    if (!Array.isArray(message.dependency))\n                        return \"dependency: array expected\";\n                    for (var i = 0; i < message.dependency.length; ++i)\n                        if (!$util.isString(message.dependency[i]))\n                            return \"dependency: string[] expected\";\n                }\n                if (message.publicDependency != null && message.hasOwnProperty(\"publicDependency\")) {\n                    if (!Array.isArray(message.publicDependency))\n                        return \"publicDependency: array expected\";\n                    for (var i = 0; i < message.publicDependency.length; ++i)\n                        if (!$util.isInteger(message.publicDependency[i]))\n                            return \"publicDependency: integer[] expected\";\n                }\n                if (message.weakDependency != null && message.hasOwnProperty(\"weakDependency\")) {\n                    if (!Array.isArray(message.weakDependency))\n                        return \"weakDependency: array expected\";\n                    for (var i = 0; i < message.weakDependency.length; ++i)\n                        if (!$util.isInteger(message.weakDependency[i]))\n                            return \"weakDependency: integer[] expected\";\n                }\n                if (message.messageType != null && message.hasOwnProperty(\"messageType\")) {\n                    if (!Array.isArray(message.messageType))\n                        return \"messageType: array expected\";\n                    for (var i = 0; i < message.messageType.length; ++i) {\n                        var error = $root.google.protobuf.DescriptorProto.verify(message.messageType[i]);\n                        if (error)\n                            return \"messageType.\" + error;\n                    }\n                }\n                if (message.enumType != null && message.hasOwnProperty(\"enumType\")) {\n                    if (!Array.isArray(message.enumType))\n                        return \"enumType: array expected\";\n                    for (var i = 0; i < message.enumType.length; ++i) {\n                        var error = $root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i]);\n                        if (error)\n                            return \"enumType.\" + error;\n                    }\n                }\n                if (message.service != null && message.hasOwnProperty(\"service\")) {\n                    if (!Array.isArray(message.service))\n                        return \"service: array expected\";\n                    for (var i = 0; i < message.service.length; ++i) {\n                        var error = $root.google.protobuf.ServiceDescriptorProto.verify(message.service[i]);\n                        if (error)\n                            return \"service.\" + error;\n                    }\n                }\n                if (message.extension != null && message.hasOwnProperty(\"extension\")) {\n                    if (!Array.isArray(message.extension))\n                        return \"extension: array expected\";\n                    for (var i = 0; i < message.extension.length; ++i) {\n                        var error = $root.google.protobuf.FieldDescriptorProto.verify(message.extension[i]);\n                        if (error)\n                            return \"extension.\" + error;\n                    }\n                }\n                if (message.options != null && message.hasOwnProperty(\"options\")) {\n                    var error = $root.google.protobuf.FileOptions.verify(message.options);\n                    if (error)\n                        return \"options.\" + error;\n                }\n                if (message.sourceCodeInfo != null && message.hasOwnProperty(\"sourceCodeInfo\")) {\n                    var error = $root.google.protobuf.SourceCodeInfo.verify(message.sourceCodeInfo);\n                    if (error)\n                        return \"sourceCodeInfo.\" + error;\n                }\n                if (message.syntax != null && message.hasOwnProperty(\"syntax\"))\n                    if (!$util.isString(message.syntax))\n                        return \"syntax: string expected\";\n                return null;\n            };\n\n            /**\n             * Creates a FileDescriptorProto message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.FileDescriptorProto\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto\n             */\n            FileDescriptorProto.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.FileDescriptorProto)\n                    return object;\n                var message = new $root.google.protobuf.FileDescriptorProto();\n                if (object.name != null)\n                    message.name = String(object.name);\n                if (object[\"package\"] != null)\n                    message[\"package\"] = String(object[\"package\"]);\n                if (object.dependency) {\n                    if (!Array.isArray(object.dependency))\n                        throw TypeError(\".google.protobuf.FileDescriptorProto.dependency: array expected\");\n                    message.dependency = [];\n                    for (var i = 0; i < object.dependency.length; ++i)\n                        message.dependency[i] = String(object.dependency[i]);\n                }\n                if (object.publicDependency) {\n                    if (!Array.isArray(object.publicDependency))\n                        throw TypeError(\".google.protobuf.FileDescriptorProto.publicDependency: array expected\");\n                    message.publicDependency = [];\n                    for (var i = 0; i < object.publicDependency.length; ++i)\n                        message.publicDependency[i] = object.publicDependency[i] | 0;\n                }\n                if (object.weakDependency) {\n                    if (!Array.isArray(object.weakDependency))\n                        throw TypeError(\".google.protobuf.FileDescriptorProto.weakDependency: array expected\");\n                    message.weakDependency = [];\n                    for (var i = 0; i < object.weakDependency.length; ++i)\n                        message.weakDependency[i] = object.weakDependency[i] | 0;\n                }\n                if (object.messageType) {\n                    if (!Array.isArray(object.messageType))\n                        throw TypeError(\".google.protobuf.FileDescriptorProto.messageType: array expected\");\n                    message.messageType = [];\n                    for (var i = 0; i < object.messageType.length; ++i) {\n                        if (typeof object.messageType[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.FileDescriptorProto.messageType: object expected\");\n                        message.messageType[i] = $root.google.protobuf.DescriptorProto.fromObject(object.messageType[i]);\n                    }\n                }\n                if (object.enumType) {\n                    if (!Array.isArray(object.enumType))\n                        throw TypeError(\".google.protobuf.FileDescriptorProto.enumType: array expected\");\n                    message.enumType = [];\n                    for (var i = 0; i < object.enumType.length; ++i) {\n                        if (typeof object.enumType[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.FileDescriptorProto.enumType: object expected\");\n                        message.enumType[i] = $root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i]);\n                    }\n                }\n                if (object.service) {\n                    if (!Array.isArray(object.service))\n                        throw TypeError(\".google.protobuf.FileDescriptorProto.service: array expected\");\n                    message.service = [];\n                    for (var i = 0; i < object.service.length; ++i) {\n                        if (typeof object.service[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.FileDescriptorProto.service: object expected\");\n                        message.service[i] = $root.google.protobuf.ServiceDescriptorProto.fromObject(object.service[i]);\n                    }\n                }\n                if (object.extension) {\n                    if (!Array.isArray(object.extension))\n                        throw TypeError(\".google.protobuf.FileDescriptorProto.extension: array expected\");\n                    message.extension = [];\n                    for (var i = 0; i < object.extension.length; ++i) {\n                        if (typeof object.extension[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.FileDescriptorProto.extension: object expected\");\n                        message.extension[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i]);\n                    }\n                }\n                if (object.options != null) {\n                    if (typeof object.options !== \"object\")\n                        throw TypeError(\".google.protobuf.FileDescriptorProto.options: object expected\");\n                    message.options = $root.google.protobuf.FileOptions.fromObject(object.options);\n                }\n                if (object.sourceCodeInfo != null) {\n                    if (typeof object.sourceCodeInfo !== \"object\")\n                        throw TypeError(\".google.protobuf.FileDescriptorProto.sourceCodeInfo: object expected\");\n                    message.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.fromObject(object.sourceCodeInfo);\n                }\n                if (object.syntax != null)\n                    message.syntax = String(object.syntax);\n                return message;\n            };\n\n            /**\n             * Creates a plain object from a FileDescriptorProto message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.FileDescriptorProto\n             * @static\n             * @param {google.protobuf.FileDescriptorProto} message FileDescriptorProto\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            FileDescriptorProto.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults) {\n                    object.dependency = [];\n                    object.messageType = [];\n                    object.enumType = [];\n                    object.service = [];\n                    object.extension = [];\n                    object.publicDependency = [];\n                    object.weakDependency = [];\n                }\n                if (options.defaults) {\n                    object.name = \"\";\n                    object[\"package\"] = \"\";\n                    object.options = null;\n                    object.sourceCodeInfo = null;\n                    object.syntax = \"\";\n                }\n                if (message.name != null && message.hasOwnProperty(\"name\"))\n                    object.name = message.name;\n                if (message[\"package\"] != null && message.hasOwnProperty(\"package\"))\n                    object[\"package\"] = message[\"package\"];\n                if (message.dependency && message.dependency.length) {\n                    object.dependency = [];\n                    for (var j = 0; j < message.dependency.length; ++j)\n                        object.dependency[j] = message.dependency[j];\n                }\n                if (message.messageType && message.messageType.length) {\n                    object.messageType = [];\n                    for (var j = 0; j < message.messageType.length; ++j)\n                        object.messageType[j] = $root.google.protobuf.DescriptorProto.toObject(message.messageType[j], options);\n                }\n                if (message.enumType && message.enumType.length) {\n                    object.enumType = [];\n                    for (var j = 0; j < message.enumType.length; ++j)\n                        object.enumType[j] = $root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j], options);\n                }\n                if (message.service && message.service.length) {\n                    object.service = [];\n                    for (var j = 0; j < message.service.length; ++j)\n                        object.service[j] = $root.google.protobuf.ServiceDescriptorProto.toObject(message.service[j], options);\n                }\n                if (message.extension && message.extension.length) {\n                    object.extension = [];\n                    for (var j = 0; j < message.extension.length; ++j)\n                        object.extension[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j], options);\n                }\n                if (message.options != null && message.hasOwnProperty(\"options\"))\n                    object.options = $root.google.protobuf.FileOptions.toObject(message.options, options);\n                if (message.sourceCodeInfo != null && message.hasOwnProperty(\"sourceCodeInfo\"))\n                    object.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.toObject(message.sourceCodeInfo, options);\n                if (message.publicDependency && message.publicDependency.length) {\n                    object.publicDependency = [];\n                    for (var j = 0; j < message.publicDependency.length; ++j)\n                        object.publicDependency[j] = message.publicDependency[j];\n                }\n                if (message.weakDependency && message.weakDependency.length) {\n                    object.weakDependency = [];\n                    for (var j = 0; j < message.weakDependency.length; ++j)\n                        object.weakDependency[j] = message.weakDependency[j];\n                }\n                if (message.syntax != null && message.hasOwnProperty(\"syntax\"))\n                    object.syntax = message.syntax;\n                return object;\n            };\n\n            /**\n             * Converts this FileDescriptorProto to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.FileDescriptorProto\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            FileDescriptorProto.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for FileDescriptorProto\n             * @function getTypeUrl\n             * @memberof google.protobuf.FileDescriptorProto\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            FileDescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.FileDescriptorProto\";\n            };\n\n            return FileDescriptorProto;\n        })();\n\n        protobuf.DescriptorProto = (function() {\n\n            /**\n             * Properties of a DescriptorProto.\n             * @memberof google.protobuf\n             * @interface IDescriptorProto\n             * @property {string|null} [name] DescriptorProto name\n             * @property {Array.<google.protobuf.IFieldDescriptorProto>|null} [field] DescriptorProto field\n             * @property {Array.<google.protobuf.IFieldDescriptorProto>|null} [extension] DescriptorProto extension\n             * @property {Array.<google.protobuf.IDescriptorProto>|null} [nestedType] DescriptorProto nestedType\n             * @property {Array.<google.protobuf.IEnumDescriptorProto>|null} [enumType] DescriptorProto enumType\n             * @property {Array.<google.protobuf.DescriptorProto.IExtensionRange>|null} [extensionRange] DescriptorProto extensionRange\n             * @property {Array.<google.protobuf.IOneofDescriptorProto>|null} [oneofDecl] DescriptorProto oneofDecl\n             * @property {google.protobuf.IMessageOptions|null} [options] DescriptorProto options\n             * @property {Array.<google.protobuf.DescriptorProto.IReservedRange>|null} [reservedRange] DescriptorProto reservedRange\n             * @property {Array.<string>|null} [reservedName] DescriptorProto reservedName\n             */\n\n            /**\n             * Constructs a new DescriptorProto.\n             * @memberof google.protobuf\n             * @classdesc Represents a DescriptorProto.\n             * @implements IDescriptorProto\n             * @constructor\n             * @param {google.protobuf.IDescriptorProto=} [properties] Properties to set\n             */\n            function DescriptorProto(properties) {\n                this.field = [];\n                this.extension = [];\n                this.nestedType = [];\n                this.enumType = [];\n                this.extensionRange = [];\n                this.oneofDecl = [];\n                this.reservedRange = [];\n                this.reservedName = [];\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             * DescriptorProto name.\n             * @member {string} name\n             * @memberof google.protobuf.DescriptorProto\n             * @instance\n             */\n            DescriptorProto.prototype.name = \"\";\n\n            /**\n             * DescriptorProto field.\n             * @member {Array.<google.protobuf.IFieldDescriptorProto>} field\n             * @memberof google.protobuf.DescriptorProto\n             * @instance\n             */\n            DescriptorProto.prototype.field = $util.emptyArray;\n\n            /**\n             * DescriptorProto extension.\n             * @member {Array.<google.protobuf.IFieldDescriptorProto>} extension\n             * @memberof google.protobuf.DescriptorProto\n             * @instance\n             */\n            DescriptorProto.prototype.extension = $util.emptyArray;\n\n            /**\n             * DescriptorProto nestedType.\n             * @member {Array.<google.protobuf.IDescriptorProto>} nestedType\n             * @memberof google.protobuf.DescriptorProto\n             * @instance\n             */\n            DescriptorProto.prototype.nestedType = $util.emptyArray;\n\n            /**\n             * DescriptorProto enumType.\n             * @member {Array.<google.protobuf.IEnumDescriptorProto>} enumType\n             * @memberof google.protobuf.DescriptorProto\n             * @instance\n             */\n            DescriptorProto.prototype.enumType = $util.emptyArray;\n\n            /**\n             * DescriptorProto extensionRange.\n             * @member {Array.<google.protobuf.DescriptorProto.IExtensionRange>} extensionRange\n             * @memberof google.protobuf.DescriptorProto\n             * @instance\n             */\n            DescriptorProto.prototype.extensionRange = $util.emptyArray;\n\n            /**\n             * DescriptorProto oneofDecl.\n             * @member {Array.<google.protobuf.IOneofDescriptorProto>} oneofDecl\n             * @memberof google.protobuf.DescriptorProto\n             * @instance\n             */\n            DescriptorProto.prototype.oneofDecl = $util.emptyArray;\n\n            /**\n             * DescriptorProto options.\n             * @member {google.protobuf.IMessageOptions|null|undefined} options\n             * @memberof google.protobuf.DescriptorProto\n             * @instance\n             */\n            DescriptorProto.prototype.options = null;\n\n            /**\n             * DescriptorProto reservedRange.\n             * @member {Array.<google.protobuf.DescriptorProto.IReservedRange>} reservedRange\n             * @memberof google.protobuf.DescriptorProto\n             * @instance\n             */\n            DescriptorProto.prototype.reservedRange = $util.emptyArray;\n\n            /**\n             * DescriptorProto reservedName.\n             * @member {Array.<string>} reservedName\n             * @memberof google.protobuf.DescriptorProto\n             * @instance\n             */\n            DescriptorProto.prototype.reservedName = $util.emptyArray;\n\n            /**\n             * Creates a new DescriptorProto instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.DescriptorProto\n             * @static\n             * @param {google.protobuf.IDescriptorProto=} [properties] Properties to set\n             * @returns {google.protobuf.DescriptorProto} DescriptorProto instance\n             */\n            DescriptorProto.create = function create(properties) {\n                return new DescriptorProto(properties);\n            };\n\n            /**\n             * Encodes the specified DescriptorProto message. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.DescriptorProto\n             * @static\n             * @param {google.protobuf.IDescriptorProto} message DescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            DescriptorProto.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n                if (message.field != null && message.field.length)\n                    for (var i = 0; i < message.field.length; ++i)\n                        $root.google.protobuf.FieldDescriptorProto.encode(message.field[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n                if (message.nestedType != null && message.nestedType.length)\n                    for (var i = 0; i < message.nestedType.length; ++i)\n                        $root.google.protobuf.DescriptorProto.encode(message.nestedType[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n                if (message.enumType != null && message.enumType.length)\n                    for (var i = 0; i < message.enumType.length; ++i)\n                        $root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n                if (message.extensionRange != null && message.extensionRange.length)\n                    for (var i = 0; i < message.extensionRange.length; ++i)\n                        $root.google.protobuf.DescriptorProto.ExtensionRange.encode(message.extensionRange[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n                if (message.extension != null && message.extension.length)\n                    for (var i = 0; i < message.extension.length; ++i)\n                        $root.google.protobuf.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n                if (message.options != null && Object.hasOwnProperty.call(message, \"options\"))\n                    $root.google.protobuf.MessageOptions.encode(message.options, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();\n                if (message.oneofDecl != null && message.oneofDecl.length)\n                    for (var i = 0; i < message.oneofDecl.length; ++i)\n                        $root.google.protobuf.OneofDescriptorProto.encode(message.oneofDecl[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();\n                if (message.reservedRange != null && message.reservedRange.length)\n                    for (var i = 0; i < message.reservedRange.length; ++i)\n                        $root.google.protobuf.DescriptorProto.ReservedRange.encode(message.reservedRange[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();\n                if (message.reservedName != null && message.reservedName.length)\n                    for (var i = 0; i < message.reservedName.length; ++i)\n                        writer.uint32(/* id 10, wireType 2 =*/82).string(message.reservedName[i]);\n                return writer;\n            };\n\n            /**\n             * Encodes the specified DescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.DescriptorProto\n             * @static\n             * @param {google.protobuf.IDescriptorProto} message DescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            DescriptorProto.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes a DescriptorProto message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.DescriptorProto\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 {google.protobuf.DescriptorProto} DescriptorProto\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            DescriptorProto.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.google.protobuf.DescriptorProto();\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                        }\n                    case 2: {\n                            if (!(message.field && message.field.length))\n                                message.field = [];\n                            message.field.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 6: {\n                            if (!(message.extension && message.extension.length))\n                                message.extension = [];\n                            message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 3: {\n                            if (!(message.nestedType && message.nestedType.length))\n                                message.nestedType = [];\n                            message.nestedType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 4: {\n                            if (!(message.enumType && message.enumType.length))\n                                message.enumType = [];\n                            message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 5: {\n                            if (!(message.extensionRange && message.extensionRange.length))\n                                message.extensionRange = [];\n                            message.extensionRange.push($root.google.protobuf.DescriptorProto.ExtensionRange.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 8: {\n                            if (!(message.oneofDecl && message.oneofDecl.length))\n                                message.oneofDecl = [];\n                            message.oneofDecl.push($root.google.protobuf.OneofDescriptorProto.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 7: {\n                            message.options = $root.google.protobuf.MessageOptions.decode(reader, reader.uint32());\n                            break;\n                        }\n                    case 9: {\n                            if (!(message.reservedRange && message.reservedRange.length))\n                                message.reservedRange = [];\n                            message.reservedRange.push($root.google.protobuf.DescriptorProto.ReservedRange.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 10: {\n                            if (!(message.reservedName && message.reservedName.length))\n                                message.reservedName = [];\n                            message.reservedName.push(reader.string());\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes a DescriptorProto message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.DescriptorProto\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.DescriptorProto} DescriptorProto\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            DescriptorProto.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 DescriptorProto message.\n             * @function verify\n             * @memberof google.protobuf.DescriptorProto\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            DescriptorProto.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.field != null && message.hasOwnProperty(\"field\")) {\n                    if (!Array.isArray(message.field))\n                        return \"field: array expected\";\n                    for (var i = 0; i < message.field.length; ++i) {\n                        var error = $root.google.protobuf.FieldDescriptorProto.verify(message.field[i]);\n                        if (error)\n                            return \"field.\" + error;\n                    }\n                }\n                if (message.extension != null && message.hasOwnProperty(\"extension\")) {\n                    if (!Array.isArray(message.extension))\n                        return \"extension: array expected\";\n                    for (var i = 0; i < message.extension.length; ++i) {\n                        var error = $root.google.protobuf.FieldDescriptorProto.verify(message.extension[i]);\n                        if (error)\n                            return \"extension.\" + error;\n                    }\n                }\n                if (message.nestedType != null && message.hasOwnProperty(\"nestedType\")) {\n                    if (!Array.isArray(message.nestedType))\n                        return \"nestedType: array expected\";\n                    for (var i = 0; i < message.nestedType.length; ++i) {\n                        var error = $root.google.protobuf.DescriptorProto.verify(message.nestedType[i]);\n                        if (error)\n                            return \"nestedType.\" + error;\n                    }\n                }\n                if (message.enumType != null && message.hasOwnProperty(\"enumType\")) {\n                    if (!Array.isArray(message.enumType))\n                        return \"enumType: array expected\";\n                    for (var i = 0; i < message.enumType.length; ++i) {\n                        var error = $root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i]);\n                        if (error)\n                            return \"enumType.\" + error;\n                    }\n                }\n                if (message.extensionRange != null && message.hasOwnProperty(\"extensionRange\")) {\n                    if (!Array.isArray(message.extensionRange))\n                        return \"extensionRange: array expected\";\n                    for (var i = 0; i < message.extensionRange.length; ++i) {\n                        var error = $root.google.protobuf.DescriptorProto.ExtensionRange.verify(message.extensionRange[i]);\n                        if (error)\n                            return \"extensionRange.\" + error;\n                    }\n                }\n                if (message.oneofDecl != null && message.hasOwnProperty(\"oneofDecl\")) {\n                    if (!Array.isArray(message.oneofDecl))\n                        return \"oneofDecl: array expected\";\n                    for (var i = 0; i < message.oneofDecl.length; ++i) {\n                        var error = $root.google.protobuf.OneofDescriptorProto.verify(message.oneofDecl[i]);\n                        if (error)\n                            return \"oneofDecl.\" + error;\n                    }\n                }\n                if (message.options != null && message.hasOwnProperty(\"options\")) {\n                    var error = $root.google.protobuf.MessageOptions.verify(message.options);\n                    if (error)\n                        return \"options.\" + error;\n                }\n                if (message.reservedRange != null && message.hasOwnProperty(\"reservedRange\")) {\n                    if (!Array.isArray(message.reservedRange))\n                        return \"reservedRange: array expected\";\n                    for (var i = 0; i < message.reservedRange.length; ++i) {\n                        var error = $root.google.protobuf.DescriptorProto.ReservedRange.verify(message.reservedRange[i]);\n                        if (error)\n                            return \"reservedRange.\" + error;\n                    }\n                }\n                if (message.reservedName != null && message.hasOwnProperty(\"reservedName\")) {\n                    if (!Array.isArray(message.reservedName))\n                        return \"reservedName: array expected\";\n                    for (var i = 0; i < message.reservedName.length; ++i)\n                        if (!$util.isString(message.reservedName[i]))\n                            return \"reservedName: string[] expected\";\n                }\n                return null;\n            };\n\n            /**\n             * Creates a DescriptorProto message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.DescriptorProto\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.DescriptorProto} DescriptorProto\n             */\n            DescriptorProto.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.DescriptorProto)\n                    return object;\n                var message = new $root.google.protobuf.DescriptorProto();\n                if (object.name != null)\n                    message.name = String(object.name);\n                if (object.field) {\n                    if (!Array.isArray(object.field))\n                        throw TypeError(\".google.protobuf.DescriptorProto.field: array expected\");\n                    message.field = [];\n                    for (var i = 0; i < object.field.length; ++i) {\n                        if (typeof object.field[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.DescriptorProto.field: object expected\");\n                        message.field[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.field[i]);\n                    }\n                }\n                if (object.extension) {\n                    if (!Array.isArray(object.extension))\n                        throw TypeError(\".google.protobuf.DescriptorProto.extension: array expected\");\n                    message.extension = [];\n                    for (var i = 0; i < object.extension.length; ++i) {\n                        if (typeof object.extension[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.DescriptorProto.extension: object expected\");\n                        message.extension[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i]);\n                    }\n                }\n                if (object.nestedType) {\n                    if (!Array.isArray(object.nestedType))\n                        throw TypeError(\".google.protobuf.DescriptorProto.nestedType: array expected\");\n                    message.nestedType = [];\n                    for (var i = 0; i < object.nestedType.length; ++i) {\n                        if (typeof object.nestedType[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.DescriptorProto.nestedType: object expected\");\n                        message.nestedType[i] = $root.google.protobuf.DescriptorProto.fromObject(object.nestedType[i]);\n                    }\n                }\n                if (object.enumType) {\n                    if (!Array.isArray(object.enumType))\n                        throw TypeError(\".google.protobuf.DescriptorProto.enumType: array expected\");\n                    message.enumType = [];\n                    for (var i = 0; i < object.enumType.length; ++i) {\n                        if (typeof object.enumType[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.DescriptorProto.enumType: object expected\");\n                        message.enumType[i] = $root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i]);\n                    }\n                }\n                if (object.extensionRange) {\n                    if (!Array.isArray(object.extensionRange))\n                        throw TypeError(\".google.protobuf.DescriptorProto.extensionRange: array expected\");\n                    message.extensionRange = [];\n                    for (var i = 0; i < object.extensionRange.length; ++i) {\n                        if (typeof object.extensionRange[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.DescriptorProto.extensionRange: object expected\");\n                        message.extensionRange[i] = $root.google.protobuf.DescriptorProto.ExtensionRange.fromObject(object.extensionRange[i]);\n                    }\n                }\n                if (object.oneofDecl) {\n                    if (!Array.isArray(object.oneofDecl))\n                        throw TypeError(\".google.protobuf.DescriptorProto.oneofDecl: array expected\");\n                    message.oneofDecl = [];\n                    for (var i = 0; i < object.oneofDecl.length; ++i) {\n                        if (typeof object.oneofDecl[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.DescriptorProto.oneofDecl: object expected\");\n                        message.oneofDecl[i] = $root.google.protobuf.OneofDescriptorProto.fromObject(object.oneofDecl[i]);\n                    }\n                }\n                if (object.options != null) {\n                    if (typeof object.options !== \"object\")\n                        throw TypeError(\".google.protobuf.DescriptorProto.options: object expected\");\n                    message.options = $root.google.protobuf.MessageOptions.fromObject(object.options);\n                }\n                if (object.reservedRange) {\n                    if (!Array.isArray(object.reservedRange))\n                        throw TypeError(\".google.protobuf.DescriptorProto.reservedRange: array expected\");\n                    message.reservedRange = [];\n                    for (var i = 0; i < object.reservedRange.length; ++i) {\n                        if (typeof object.reservedRange[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.DescriptorProto.reservedRange: object expected\");\n                        message.reservedRange[i] = $root.google.protobuf.DescriptorProto.ReservedRange.fromObject(object.reservedRange[i]);\n                    }\n                }\n                if (object.reservedName) {\n                    if (!Array.isArray(object.reservedName))\n                        throw TypeError(\".google.protobuf.DescriptorProto.reservedName: array expected\");\n                    message.reservedName = [];\n                    for (var i = 0; i < object.reservedName.length; ++i)\n                        message.reservedName[i] = String(object.reservedName[i]);\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.DescriptorProto\n             * @static\n             * @param {google.protobuf.DescriptorProto} message DescriptorProto\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            DescriptorProto.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults) {\n                    object.field = [];\n                    object.nestedType = [];\n                    object.enumType = [];\n                    object.extensionRange = [];\n                    object.extension = [];\n                    object.oneofDecl = [];\n                    object.reservedRange = [];\n                    object.reservedName = [];\n                }\n                if (options.defaults) {\n                    object.name = \"\";\n                    object.options = null;\n                }\n                if (message.name != null && message.hasOwnProperty(\"name\"))\n                    object.name = message.name;\n                if (message.field && message.field.length) {\n                    object.field = [];\n                    for (var j = 0; j < message.field.length; ++j)\n                        object.field[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.field[j], options);\n                }\n                if (message.nestedType && message.nestedType.length) {\n                    object.nestedType = [];\n                    for (var j = 0; j < message.nestedType.length; ++j)\n                        object.nestedType[j] = $root.google.protobuf.DescriptorProto.toObject(message.nestedType[j], options);\n                }\n                if (message.enumType && message.enumType.length) {\n                    object.enumType = [];\n                    for (var j = 0; j < message.enumType.length; ++j)\n                        object.enumType[j] = $root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j], options);\n                }\n                if (message.extensionRange && message.extensionRange.length) {\n                    object.extensionRange = [];\n                    for (var j = 0; j < message.extensionRange.length; ++j)\n                        object.extensionRange[j] = $root.google.protobuf.DescriptorProto.ExtensionRange.toObject(message.extensionRange[j], options);\n                }\n                if (message.extension && message.extension.length) {\n                    object.extension = [];\n                    for (var j = 0; j < message.extension.length; ++j)\n                        object.extension[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j], options);\n                }\n                if (message.options != null && message.hasOwnProperty(\"options\"))\n                    object.options = $root.google.protobuf.MessageOptions.toObject(message.options, options);\n                if (message.oneofDecl && message.oneofDecl.length) {\n                    object.oneofDecl = [];\n                    for (var j = 0; j < message.oneofDecl.length; ++j)\n                        object.oneofDecl[j] = $root.google.protobuf.OneofDescriptorProto.toObject(message.oneofDecl[j], options);\n                }\n                if (message.reservedRange && message.reservedRange.length) {\n                    object.reservedRange = [];\n                    for (var j = 0; j < message.reservedRange.length; ++j)\n                        object.reservedRange[j] = $root.google.protobuf.DescriptorProto.ReservedRange.toObject(message.reservedRange[j], options);\n                }\n                if (message.reservedName && message.reservedName.length) {\n                    object.reservedName = [];\n                    for (var j = 0; j < message.reservedName.length; ++j)\n                        object.reservedName[j] = message.reservedName[j];\n                }\n                return object;\n            };\n\n            /**\n             * Converts this DescriptorProto to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.DescriptorProto\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            DescriptorProto.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for DescriptorProto\n             * @function getTypeUrl\n             * @memberof google.protobuf.DescriptorProto\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            DescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.DescriptorProto\";\n            };\n\n            DescriptorProto.ExtensionRange = (function() {\n\n                /**\n                 * Properties of an ExtensionRange.\n                 * @memberof google.protobuf.DescriptorProto\n                 * @interface IExtensionRange\n                 * @property {number|null} [start] ExtensionRange start\n                 * @property {number|null} [end] ExtensionRange end\n                 */\n\n                /**\n                 * Constructs a new ExtensionRange.\n                 * @memberof google.protobuf.DescriptorProto\n                 * @classdesc Represents an ExtensionRange.\n                 * @implements IExtensionRange\n                 * @constructor\n                 * @param {google.protobuf.DescriptorProto.IExtensionRange=} [properties] Properties to set\n                 */\n                function ExtensionRange(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                 * ExtensionRange start.\n                 * @member {number} start\n                 * @memberof google.protobuf.DescriptorProto.ExtensionRange\n                 * @instance\n                 */\n                ExtensionRange.prototype.start = 0;\n\n                /**\n                 * ExtensionRange end.\n                 * @member {number} end\n                 * @memberof google.protobuf.DescriptorProto.ExtensionRange\n                 * @instance\n                 */\n                ExtensionRange.prototype.end = 0;\n\n                /**\n                 * Creates a new ExtensionRange instance using the specified properties.\n                 * @function create\n                 * @memberof google.protobuf.DescriptorProto.ExtensionRange\n                 * @static\n                 * @param {google.protobuf.DescriptorProto.IExtensionRange=} [properties] Properties to set\n                 * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange instance\n                 */\n                ExtensionRange.create = function create(properties) {\n                    return new ExtensionRange(properties);\n                };\n\n                /**\n                 * Encodes the specified ExtensionRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages.\n                 * @function encode\n                 * @memberof google.protobuf.DescriptorProto.ExtensionRange\n                 * @static\n                 * @param {google.protobuf.DescriptorProto.IExtensionRange} message ExtensionRange message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                ExtensionRange.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.start != null && Object.hasOwnProperty.call(message, \"start\"))\n                        writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start);\n                    if (message.end != null && Object.hasOwnProperty.call(message, \"end\"))\n                        writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified ExtensionRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof google.protobuf.DescriptorProto.ExtensionRange\n                 * @static\n                 * @param {google.protobuf.DescriptorProto.IExtensionRange} message ExtensionRange message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                ExtensionRange.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes an ExtensionRange message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof google.protobuf.DescriptorProto.ExtensionRange\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 {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange\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                ExtensionRange.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.google.protobuf.DescriptorProto.ExtensionRange();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.start = reader.int32();\n                                break;\n                            }\n                        case 2: {\n                                message.end = reader.int32();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes an ExtensionRange message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof google.protobuf.DescriptorProto.ExtensionRange\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange\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                ExtensionRange.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 ExtensionRange message.\n                 * @function verify\n                 * @memberof google.protobuf.DescriptorProto.ExtensionRange\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                ExtensionRange.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.start != null && message.hasOwnProperty(\"start\"))\n                        if (!$util.isInteger(message.start))\n                            return \"start: integer expected\";\n                    if (message.end != null && message.hasOwnProperty(\"end\"))\n                        if (!$util.isInteger(message.end))\n                            return \"end: integer expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates an ExtensionRange message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof google.protobuf.DescriptorProto.ExtensionRange\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange\n                 */\n                ExtensionRange.fromObject = function fromObject(object) {\n                    if (object instanceof $root.google.protobuf.DescriptorProto.ExtensionRange)\n                        return object;\n                    var message = new $root.google.protobuf.DescriptorProto.ExtensionRange();\n                    if (object.start != null)\n                        message.start = object.start | 0;\n                    if (object.end != null)\n                        message.end = object.end | 0;\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from an ExtensionRange message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof google.protobuf.DescriptorProto.ExtensionRange\n                 * @static\n                 * @param {google.protobuf.DescriptorProto.ExtensionRange} message ExtensionRange\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                ExtensionRange.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults) {\n                        object.start = 0;\n                        object.end = 0;\n                    }\n                    if (message.start != null && message.hasOwnProperty(\"start\"))\n                        object.start = message.start;\n                    if (message.end != null && message.hasOwnProperty(\"end\"))\n                        object.end = message.end;\n                    return object;\n                };\n\n                /**\n                 * Converts this ExtensionRange to JSON.\n                 * @function toJSON\n                 * @memberof google.protobuf.DescriptorProto.ExtensionRange\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                ExtensionRange.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for ExtensionRange\n                 * @function getTypeUrl\n                 * @memberof google.protobuf.DescriptorProto.ExtensionRange\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                ExtensionRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/google.protobuf.DescriptorProto.ExtensionRange\";\n                };\n\n                return ExtensionRange;\n            })();\n\n            DescriptorProto.ReservedRange = (function() {\n\n                /**\n                 * Properties of a ReservedRange.\n                 * @memberof google.protobuf.DescriptorProto\n                 * @interface IReservedRange\n                 * @property {number|null} [start] ReservedRange start\n                 * @property {number|null} [end] ReservedRange end\n                 */\n\n                /**\n                 * Constructs a new ReservedRange.\n                 * @memberof google.protobuf.DescriptorProto\n                 * @classdesc Represents a ReservedRange.\n                 * @implements IReservedRange\n                 * @constructor\n                 * @param {google.protobuf.DescriptorProto.IReservedRange=} [properties] Properties to set\n                 */\n                function ReservedRange(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                 * ReservedRange start.\n                 * @member {number} start\n                 * @memberof google.protobuf.DescriptorProto.ReservedRange\n                 * @instance\n                 */\n                ReservedRange.prototype.start = 0;\n\n                /**\n                 * ReservedRange end.\n                 * @member {number} end\n                 * @memberof google.protobuf.DescriptorProto.ReservedRange\n                 * @instance\n                 */\n                ReservedRange.prototype.end = 0;\n\n                /**\n                 * Creates a new ReservedRange instance using the specified properties.\n                 * @function create\n                 * @memberof google.protobuf.DescriptorProto.ReservedRange\n                 * @static\n                 * @param {google.protobuf.DescriptorProto.IReservedRange=} [properties] Properties to set\n                 * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange instance\n                 */\n                ReservedRange.create = function create(properties) {\n                    return new ReservedRange(properties);\n                };\n\n                /**\n                 * Encodes the specified ReservedRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages.\n                 * @function encode\n                 * @memberof google.protobuf.DescriptorProto.ReservedRange\n                 * @static\n                 * @param {google.protobuf.DescriptorProto.IReservedRange} message ReservedRange message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                ReservedRange.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.start != null && Object.hasOwnProperty.call(message, \"start\"))\n                        writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start);\n                    if (message.end != null && Object.hasOwnProperty.call(message, \"end\"))\n                        writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified ReservedRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof google.protobuf.DescriptorProto.ReservedRange\n                 * @static\n                 * @param {google.protobuf.DescriptorProto.IReservedRange} message ReservedRange message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                ReservedRange.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a ReservedRange message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof google.protobuf.DescriptorProto.ReservedRange\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 {google.protobuf.DescriptorProto.ReservedRange} ReservedRange\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                ReservedRange.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.google.protobuf.DescriptorProto.ReservedRange();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.start = reader.int32();\n                                break;\n                            }\n                        case 2: {\n                                message.end = reader.int32();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a ReservedRange message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof google.protobuf.DescriptorProto.ReservedRange\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange\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                ReservedRange.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 ReservedRange message.\n                 * @function verify\n                 * @memberof google.protobuf.DescriptorProto.ReservedRange\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                ReservedRange.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.start != null && message.hasOwnProperty(\"start\"))\n                        if (!$util.isInteger(message.start))\n                            return \"start: integer expected\";\n                    if (message.end != null && message.hasOwnProperty(\"end\"))\n                        if (!$util.isInteger(message.end))\n                            return \"end: integer expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a ReservedRange message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof google.protobuf.DescriptorProto.ReservedRange\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange\n                 */\n                ReservedRange.fromObject = function fromObject(object) {\n                    if (object instanceof $root.google.protobuf.DescriptorProto.ReservedRange)\n                        return object;\n                    var message = new $root.google.protobuf.DescriptorProto.ReservedRange();\n                    if (object.start != null)\n                        message.start = object.start | 0;\n                    if (object.end != null)\n                        message.end = object.end | 0;\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a ReservedRange message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof google.protobuf.DescriptorProto.ReservedRange\n                 * @static\n                 * @param {google.protobuf.DescriptorProto.ReservedRange} message ReservedRange\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                ReservedRange.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults) {\n                        object.start = 0;\n                        object.end = 0;\n                    }\n                    if (message.start != null && message.hasOwnProperty(\"start\"))\n                        object.start = message.start;\n                    if (message.end != null && message.hasOwnProperty(\"end\"))\n                        object.end = message.end;\n                    return object;\n                };\n\n                /**\n                 * Converts this ReservedRange to JSON.\n                 * @function toJSON\n                 * @memberof google.protobuf.DescriptorProto.ReservedRange\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                ReservedRange.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for ReservedRange\n                 * @function getTypeUrl\n                 * @memberof google.protobuf.DescriptorProto.ReservedRange\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                ReservedRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/google.protobuf.DescriptorProto.ReservedRange\";\n                };\n\n                return ReservedRange;\n            })();\n\n            return DescriptorProto;\n        })();\n\n        protobuf.FieldDescriptorProto = (function() {\n\n            /**\n             * Properties of a FieldDescriptorProto.\n             * @memberof google.protobuf\n             * @interface IFieldDescriptorProto\n             * @property {string|null} [name] FieldDescriptorProto name\n             * @property {number|null} [number] FieldDescriptorProto number\n             * @property {google.protobuf.FieldDescriptorProto.Label|null} [label] FieldDescriptorProto label\n             * @property {google.protobuf.FieldDescriptorProto.Type|null} [type] FieldDescriptorProto type\n             * @property {string|null} [typeName] FieldDescriptorProto typeName\n             * @property {string|null} [extendee] FieldDescriptorProto extendee\n             * @property {string|null} [defaultValue] FieldDescriptorProto defaultValue\n             * @property {number|null} [oneofIndex] FieldDescriptorProto oneofIndex\n             * @property {string|null} [jsonName] FieldDescriptorProto jsonName\n             * @property {google.protobuf.IFieldOptions|null} [options] FieldDescriptorProto options\n             */\n\n            /**\n             * Constructs a new FieldDescriptorProto.\n             * @memberof google.protobuf\n             * @classdesc Represents a FieldDescriptorProto.\n             * @implements IFieldDescriptorProto\n             * @constructor\n             * @param {google.protobuf.IFieldDescriptorProto=} [properties] Properties to set\n             */\n            function FieldDescriptorProto(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             * FieldDescriptorProto name.\n             * @member {string} name\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @instance\n             */\n            FieldDescriptorProto.prototype.name = \"\";\n\n            /**\n             * FieldDescriptorProto number.\n             * @member {number} number\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @instance\n             */\n            FieldDescriptorProto.prototype.number = 0;\n\n            /**\n             * FieldDescriptorProto label.\n             * @member {google.protobuf.FieldDescriptorProto.Label} label\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @instance\n             */\n            FieldDescriptorProto.prototype.label = 1;\n\n            /**\n             * FieldDescriptorProto type.\n             * @member {google.protobuf.FieldDescriptorProto.Type} type\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @instance\n             */\n            FieldDescriptorProto.prototype.type = 1;\n\n            /**\n             * FieldDescriptorProto typeName.\n             * @member {string} typeName\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @instance\n             */\n            FieldDescriptorProto.prototype.typeName = \"\";\n\n            /**\n             * FieldDescriptorProto extendee.\n             * @member {string} extendee\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @instance\n             */\n            FieldDescriptorProto.prototype.extendee = \"\";\n\n            /**\n             * FieldDescriptorProto defaultValue.\n             * @member {string} defaultValue\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @instance\n             */\n            FieldDescriptorProto.prototype.defaultValue = \"\";\n\n            /**\n             * FieldDescriptorProto oneofIndex.\n             * @member {number} oneofIndex\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @instance\n             */\n            FieldDescriptorProto.prototype.oneofIndex = 0;\n\n            /**\n             * FieldDescriptorProto jsonName.\n             * @member {string} jsonName\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @instance\n             */\n            FieldDescriptorProto.prototype.jsonName = \"\";\n\n            /**\n             * FieldDescriptorProto options.\n             * @member {google.protobuf.IFieldOptions|null|undefined} options\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @instance\n             */\n            FieldDescriptorProto.prototype.options = null;\n\n            /**\n             * Creates a new FieldDescriptorProto instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @static\n             * @param {google.protobuf.IFieldDescriptorProto=} [properties] Properties to set\n             * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto instance\n             */\n            FieldDescriptorProto.create = function create(properties) {\n                return new FieldDescriptorProto(properties);\n            };\n\n            /**\n             * Encodes the specified FieldDescriptorProto message. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @static\n             * @param {google.protobuf.IFieldDescriptorProto} message FieldDescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FieldDescriptorProto.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n                if (message.extendee != null && Object.hasOwnProperty.call(message, \"extendee\"))\n                    writer.uint32(/* id 2, wireType 2 =*/18).string(message.extendee);\n                if (message.number != null && Object.hasOwnProperty.call(message, \"number\"))\n                    writer.uint32(/* id 3, wireType 0 =*/24).int32(message.number);\n                if (message.label != null && Object.hasOwnProperty.call(message, \"label\"))\n                    writer.uint32(/* id 4, wireType 0 =*/32).int32(message.label);\n                if (message.type != null && Object.hasOwnProperty.call(message, \"type\"))\n                    writer.uint32(/* id 5, wireType 0 =*/40).int32(message.type);\n                if (message.typeName != null && Object.hasOwnProperty.call(message, \"typeName\"))\n                    writer.uint32(/* id 6, wireType 2 =*/50).string(message.typeName);\n                if (message.defaultValue != null && Object.hasOwnProperty.call(message, \"defaultValue\"))\n                    writer.uint32(/* id 7, wireType 2 =*/58).string(message.defaultValue);\n                if (message.options != null && Object.hasOwnProperty.call(message, \"options\"))\n                    $root.google.protobuf.FieldOptions.encode(message.options, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();\n                if (message.oneofIndex != null && Object.hasOwnProperty.call(message, \"oneofIndex\"))\n                    writer.uint32(/* id 9, wireType 0 =*/72).int32(message.oneofIndex);\n                if (message.jsonName != null && Object.hasOwnProperty.call(message, \"jsonName\"))\n                    writer.uint32(/* id 10, wireType 2 =*/82).string(message.jsonName);\n                return writer;\n            };\n\n            /**\n             * Encodes the specified FieldDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @static\n             * @param {google.protobuf.IFieldDescriptorProto} message FieldDescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FieldDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes a FieldDescriptorProto message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.FieldDescriptorProto\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 {google.protobuf.FieldDescriptorProto} FieldDescriptorProto\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            FieldDescriptorProto.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.google.protobuf.FieldDescriptorProto();\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                        }\n                    case 3: {\n                            message.number = reader.int32();\n                            break;\n                        }\n                    case 4: {\n                            message.label = reader.int32();\n                            break;\n                        }\n                    case 5: {\n                            message.type = reader.int32();\n                            break;\n                        }\n                    case 6: {\n                            message.typeName = reader.string();\n                            break;\n                        }\n                    case 2: {\n                            message.extendee = reader.string();\n                            break;\n                        }\n                    case 7: {\n                            message.defaultValue = reader.string();\n                            break;\n                        }\n                    case 9: {\n                            message.oneofIndex = reader.int32();\n                            break;\n                        }\n                    case 10: {\n                            message.jsonName = reader.string();\n                            break;\n                        }\n                    case 8: {\n                            message.options = $root.google.protobuf.FieldOptions.decode(reader, reader.uint32());\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes a FieldDescriptorProto message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto\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            FieldDescriptorProto.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 FieldDescriptorProto message.\n             * @function verify\n             * @memberof google.protobuf.FieldDescriptorProto\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            FieldDescriptorProto.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.number != null && message.hasOwnProperty(\"number\"))\n                    if (!$util.isInteger(message.number))\n                        return \"number: integer expected\";\n                if (message.label != null && message.hasOwnProperty(\"label\"))\n                    switch (message.label) {\n                    default:\n                        return \"label: enum value expected\";\n                    case 1:\n                    case 2:\n                    case 3:\n                        break;\n                    }\n                if (message.type != null && message.hasOwnProperty(\"type\"))\n                    switch (message.type) {\n                    default:\n                        return \"type: enum value expected\";\n                    case 1:\n                    case 2:\n                    case 3:\n                    case 4:\n                    case 5:\n                    case 6:\n                    case 7:\n                    case 8:\n                    case 9:\n                    case 10:\n                    case 11:\n                    case 12:\n                    case 13:\n                    case 14:\n                    case 15:\n                    case 16:\n                    case 17:\n                    case 18:\n                        break;\n                    }\n                if (message.typeName != null && message.hasOwnProperty(\"typeName\"))\n                    if (!$util.isString(message.typeName))\n                        return \"typeName: string expected\";\n                if (message.extendee != null && message.hasOwnProperty(\"extendee\"))\n                    if (!$util.isString(message.extendee))\n                        return \"extendee: string expected\";\n                if (message.defaultValue != null && message.hasOwnProperty(\"defaultValue\"))\n                    if (!$util.isString(message.defaultValue))\n                        return \"defaultValue: string expected\";\n                if (message.oneofIndex != null && message.hasOwnProperty(\"oneofIndex\"))\n                    if (!$util.isInteger(message.oneofIndex))\n                        return \"oneofIndex: integer expected\";\n                if (message.jsonName != null && message.hasOwnProperty(\"jsonName\"))\n                    if (!$util.isString(message.jsonName))\n                        return \"jsonName: string expected\";\n                if (message.options != null && message.hasOwnProperty(\"options\")) {\n                    var error = $root.google.protobuf.FieldOptions.verify(message.options);\n                    if (error)\n                        return \"options.\" + error;\n                }\n                return null;\n            };\n\n            /**\n             * Creates a FieldDescriptorProto message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto\n             */\n            FieldDescriptorProto.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.FieldDescriptorProto)\n                    return object;\n                var message = new $root.google.protobuf.FieldDescriptorProto();\n                if (object.name != null)\n                    message.name = String(object.name);\n                if (object.number != null)\n                    message.number = object.number | 0;\n                switch (object.label) {\n                default:\n                    if (typeof object.label === \"number\") {\n                        message.label = object.label;\n                        break;\n                    }\n                    break;\n                case \"LABEL_OPTIONAL\":\n                case 1:\n                    message.label = 1;\n                    break;\n                case \"LABEL_REQUIRED\":\n                case 2:\n                    message.label = 2;\n                    break;\n                case \"LABEL_REPEATED\":\n                case 3:\n                    message.label = 3;\n                    break;\n                }\n                switch (object.type) {\n                default:\n                    if (typeof object.type === \"number\") {\n                        message.type = object.type;\n                        break;\n                    }\n                    break;\n                case \"TYPE_DOUBLE\":\n                case 1:\n                    message.type = 1;\n                    break;\n                case \"TYPE_FLOAT\":\n                case 2:\n                    message.type = 2;\n                    break;\n                case \"TYPE_INT64\":\n                case 3:\n                    message.type = 3;\n                    break;\n                case \"TYPE_UINT64\":\n                case 4:\n                    message.type = 4;\n                    break;\n                case \"TYPE_INT32\":\n                case 5:\n                    message.type = 5;\n                    break;\n                case \"TYPE_FIXED64\":\n                case 6:\n                    message.type = 6;\n                    break;\n                case \"TYPE_FIXED32\":\n                case 7:\n                    message.type = 7;\n                    break;\n                case \"TYPE_BOOL\":\n                case 8:\n                    message.type = 8;\n                    break;\n                case \"TYPE_STRING\":\n                case 9:\n                    message.type = 9;\n                    break;\n                case \"TYPE_GROUP\":\n                case 10:\n                    message.type = 10;\n                    break;\n                case \"TYPE_MESSAGE\":\n                case 11:\n                    message.type = 11;\n                    break;\n                case \"TYPE_BYTES\":\n                case 12:\n                    message.type = 12;\n                    break;\n                case \"TYPE_UINT32\":\n                case 13:\n                    message.type = 13;\n                    break;\n                case \"TYPE_ENUM\":\n                case 14:\n                    message.type = 14;\n                    break;\n                case \"TYPE_SFIXED32\":\n                case 15:\n                    message.type = 15;\n                    break;\n                case \"TYPE_SFIXED64\":\n                case 16:\n                    message.type = 16;\n                    break;\n                case \"TYPE_SINT32\":\n                case 17:\n                    message.type = 17;\n                    break;\n                case \"TYPE_SINT64\":\n                case 18:\n                    message.type = 18;\n                    break;\n                }\n                if (object.typeName != null)\n                    message.typeName = String(object.typeName);\n                if (object.extendee != null)\n                    message.extendee = String(object.extendee);\n                if (object.defaultValue != null)\n                    message.defaultValue = String(object.defaultValue);\n                if (object.oneofIndex != null)\n                    message.oneofIndex = object.oneofIndex | 0;\n                if (object.jsonName != null)\n                    message.jsonName = String(object.jsonName);\n                if (object.options != null) {\n                    if (typeof object.options !== \"object\")\n                        throw TypeError(\".google.protobuf.FieldDescriptorProto.options: object expected\");\n                    message.options = $root.google.protobuf.FieldOptions.fromObject(object.options);\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from a FieldDescriptorProto message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @static\n             * @param {google.protobuf.FieldDescriptorProto} message FieldDescriptorProto\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            FieldDescriptorProto.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.name = \"\";\n                    object.extendee = \"\";\n                    object.number = 0;\n                    object.label = options.enums === String ? \"LABEL_OPTIONAL\" : 1;\n                    object.type = options.enums === String ? \"TYPE_DOUBLE\" : 1;\n                    object.typeName = \"\";\n                    object.defaultValue = \"\";\n                    object.options = null;\n                    object.oneofIndex = 0;\n                    object.jsonName = \"\";\n                }\n                if (message.name != null && message.hasOwnProperty(\"name\"))\n                    object.name = message.name;\n                if (message.extendee != null && message.hasOwnProperty(\"extendee\"))\n                    object.extendee = message.extendee;\n                if (message.number != null && message.hasOwnProperty(\"number\"))\n                    object.number = message.number;\n                if (message.label != null && message.hasOwnProperty(\"label\"))\n                    object.label = options.enums === String ? $root.google.protobuf.FieldDescriptorProto.Label[message.label] === undefined ? message.label : $root.google.protobuf.FieldDescriptorProto.Label[message.label] : message.label;\n                if (message.type != null && message.hasOwnProperty(\"type\"))\n                    object.type = options.enums === String ? $root.google.protobuf.FieldDescriptorProto.Type[message.type] === undefined ? message.type : $root.google.protobuf.FieldDescriptorProto.Type[message.type] : message.type;\n                if (message.typeName != null && message.hasOwnProperty(\"typeName\"))\n                    object.typeName = message.typeName;\n                if (message.defaultValue != null && message.hasOwnProperty(\"defaultValue\"))\n                    object.defaultValue = message.defaultValue;\n                if (message.options != null && message.hasOwnProperty(\"options\"))\n                    object.options = $root.google.protobuf.FieldOptions.toObject(message.options, options);\n                if (message.oneofIndex != null && message.hasOwnProperty(\"oneofIndex\"))\n                    object.oneofIndex = message.oneofIndex;\n                if (message.jsonName != null && message.hasOwnProperty(\"jsonName\"))\n                    object.jsonName = message.jsonName;\n                return object;\n            };\n\n            /**\n             * Converts this FieldDescriptorProto to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            FieldDescriptorProto.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for FieldDescriptorProto\n             * @function getTypeUrl\n             * @memberof google.protobuf.FieldDescriptorProto\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            FieldDescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.FieldDescriptorProto\";\n            };\n\n            /**\n             * Type enum.\n             * @name google.protobuf.FieldDescriptorProto.Type\n             * @enum {number}\n             * @property {number} TYPE_DOUBLE=1 TYPE_DOUBLE value\n             * @property {number} TYPE_FLOAT=2 TYPE_FLOAT value\n             * @property {number} TYPE_INT64=3 TYPE_INT64 value\n             * @property {number} TYPE_UINT64=4 TYPE_UINT64 value\n             * @property {number} TYPE_INT32=5 TYPE_INT32 value\n             * @property {number} TYPE_FIXED64=6 TYPE_FIXED64 value\n             * @property {number} TYPE_FIXED32=7 TYPE_FIXED32 value\n             * @property {number} TYPE_BOOL=8 TYPE_BOOL value\n             * @property {number} TYPE_STRING=9 TYPE_STRING value\n             * @property {number} TYPE_GROUP=10 TYPE_GROUP value\n             * @property {number} TYPE_MESSAGE=11 TYPE_MESSAGE value\n             * @property {number} TYPE_BYTES=12 TYPE_BYTES value\n             * @property {number} TYPE_UINT32=13 TYPE_UINT32 value\n             * @property {number} TYPE_ENUM=14 TYPE_ENUM value\n             * @property {number} TYPE_SFIXED32=15 TYPE_SFIXED32 value\n             * @property {number} TYPE_SFIXED64=16 TYPE_SFIXED64 value\n             * @property {number} TYPE_SINT32=17 TYPE_SINT32 value\n             * @property {number} TYPE_SINT64=18 TYPE_SINT64 value\n             */\n            FieldDescriptorProto.Type = (function() {\n                var valuesById = {}, values = Object.create(valuesById);\n                values[valuesById[1] = \"TYPE_DOUBLE\"] = 1;\n                values[valuesById[2] = \"TYPE_FLOAT\"] = 2;\n                values[valuesById[3] = \"TYPE_INT64\"] = 3;\n                values[valuesById[4] = \"TYPE_UINT64\"] = 4;\n                values[valuesById[5] = \"TYPE_INT32\"] = 5;\n                values[valuesById[6] = \"TYPE_FIXED64\"] = 6;\n                values[valuesById[7] = \"TYPE_FIXED32\"] = 7;\n                values[valuesById[8] = \"TYPE_BOOL\"] = 8;\n                values[valuesById[9] = \"TYPE_STRING\"] = 9;\n                values[valuesById[10] = \"TYPE_GROUP\"] = 10;\n                values[valuesById[11] = \"TYPE_MESSAGE\"] = 11;\n                values[valuesById[12] = \"TYPE_BYTES\"] = 12;\n                values[valuesById[13] = \"TYPE_UINT32\"] = 13;\n                values[valuesById[14] = \"TYPE_ENUM\"] = 14;\n                values[valuesById[15] = \"TYPE_SFIXED32\"] = 15;\n                values[valuesById[16] = \"TYPE_SFIXED64\"] = 16;\n                values[valuesById[17] = \"TYPE_SINT32\"] = 17;\n                values[valuesById[18] = \"TYPE_SINT64\"] = 18;\n                return values;\n            })();\n\n            /**\n             * Label enum.\n             * @name google.protobuf.FieldDescriptorProto.Label\n             * @enum {number}\n             * @property {number} LABEL_OPTIONAL=1 LABEL_OPTIONAL value\n             * @property {number} LABEL_REQUIRED=2 LABEL_REQUIRED value\n             * @property {number} LABEL_REPEATED=3 LABEL_REPEATED value\n             */\n            FieldDescriptorProto.Label = (function() {\n                var valuesById = {}, values = Object.create(valuesById);\n                values[valuesById[1] = \"LABEL_OPTIONAL\"] = 1;\n                values[valuesById[2] = \"LABEL_REQUIRED\"] = 2;\n                values[valuesById[3] = \"LABEL_REPEATED\"] = 3;\n                return values;\n            })();\n\n            return FieldDescriptorProto;\n        })();\n\n        protobuf.OneofDescriptorProto = (function() {\n\n            /**\n             * Properties of an OneofDescriptorProto.\n             * @memberof google.protobuf\n             * @interface IOneofDescriptorProto\n             * @property {string|null} [name] OneofDescriptorProto name\n             * @property {google.protobuf.IOneofOptions|null} [options] OneofDescriptorProto options\n             */\n\n            /**\n             * Constructs a new OneofDescriptorProto.\n             * @memberof google.protobuf\n             * @classdesc Represents an OneofDescriptorProto.\n             * @implements IOneofDescriptorProto\n             * @constructor\n             * @param {google.protobuf.IOneofDescriptorProto=} [properties] Properties to set\n             */\n            function OneofDescriptorProto(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             * OneofDescriptorProto name.\n             * @member {string} name\n             * @memberof google.protobuf.OneofDescriptorProto\n             * @instance\n             */\n            OneofDescriptorProto.prototype.name = \"\";\n\n            /**\n             * OneofDescriptorProto options.\n             * @member {google.protobuf.IOneofOptions|null|undefined} options\n             * @memberof google.protobuf.OneofDescriptorProto\n             * @instance\n             */\n            OneofDescriptorProto.prototype.options = null;\n\n            /**\n             * Creates a new OneofDescriptorProto instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.OneofDescriptorProto\n             * @static\n             * @param {google.protobuf.IOneofDescriptorProto=} [properties] Properties to set\n             * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto instance\n             */\n            OneofDescriptorProto.create = function create(properties) {\n                return new OneofDescriptorProto(properties);\n            };\n\n            /**\n             * Encodes the specified OneofDescriptorProto message. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.OneofDescriptorProto\n             * @static\n             * @param {google.protobuf.IOneofDescriptorProto} message OneofDescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            OneofDescriptorProto.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n                if (message.options != null && Object.hasOwnProperty.call(message, \"options\"))\n                    $root.google.protobuf.OneofOptions.encode(message.options, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n                return writer;\n            };\n\n            /**\n             * Encodes the specified OneofDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.OneofDescriptorProto\n             * @static\n             * @param {google.protobuf.IOneofDescriptorProto} message OneofDescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            OneofDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes an OneofDescriptorProto message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.OneofDescriptorProto\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 {google.protobuf.OneofDescriptorProto} OneofDescriptorProto\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            OneofDescriptorProto.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.google.protobuf.OneofDescriptorProto();\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                        }\n                    case 2: {\n                            message.options = $root.google.protobuf.OneofOptions.decode(reader, reader.uint32());\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes an OneofDescriptorProto message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.OneofDescriptorProto\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto\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            OneofDescriptorProto.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 OneofDescriptorProto message.\n             * @function verify\n             * @memberof google.protobuf.OneofDescriptorProto\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            OneofDescriptorProto.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.options != null && message.hasOwnProperty(\"options\")) {\n                    var error = $root.google.protobuf.OneofOptions.verify(message.options);\n                    if (error)\n                        return \"options.\" + error;\n                }\n                return null;\n            };\n\n            /**\n             * Creates an OneofDescriptorProto message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.OneofDescriptorProto\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto\n             */\n            OneofDescriptorProto.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.OneofDescriptorProto)\n                    return object;\n                var message = new $root.google.protobuf.OneofDescriptorProto();\n                if (object.name != null)\n                    message.name = String(object.name);\n                if (object.options != null) {\n                    if (typeof object.options !== \"object\")\n                        throw TypeError(\".google.protobuf.OneofDescriptorProto.options: object expected\");\n                    message.options = $root.google.protobuf.OneofOptions.fromObject(object.options);\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from an OneofDescriptorProto message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.OneofDescriptorProto\n             * @static\n             * @param {google.protobuf.OneofDescriptorProto} message OneofDescriptorProto\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            OneofDescriptorProto.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.name = \"\";\n                    object.options = null;\n                }\n                if (message.name != null && message.hasOwnProperty(\"name\"))\n                    object.name = message.name;\n                if (message.options != null && message.hasOwnProperty(\"options\"))\n                    object.options = $root.google.protobuf.OneofOptions.toObject(message.options, options);\n                return object;\n            };\n\n            /**\n             * Converts this OneofDescriptorProto to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.OneofDescriptorProto\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            OneofDescriptorProto.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for OneofDescriptorProto\n             * @function getTypeUrl\n             * @memberof google.protobuf.OneofDescriptorProto\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            OneofDescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.OneofDescriptorProto\";\n            };\n\n            return OneofDescriptorProto;\n        })();\n\n        protobuf.EnumDescriptorProto = (function() {\n\n            /**\n             * Properties of an EnumDescriptorProto.\n             * @memberof google.protobuf\n             * @interface IEnumDescriptorProto\n             * @property {string|null} [name] EnumDescriptorProto name\n             * @property {Array.<google.protobuf.IEnumValueDescriptorProto>|null} [value] EnumDescriptorProto value\n             * @property {google.protobuf.IEnumOptions|null} [options] EnumDescriptorProto options\n             */\n\n            /**\n             * Constructs a new EnumDescriptorProto.\n             * @memberof google.protobuf\n             * @classdesc Represents an EnumDescriptorProto.\n             * @implements IEnumDescriptorProto\n             * @constructor\n             * @param {google.protobuf.IEnumDescriptorProto=} [properties] Properties to set\n             */\n            function EnumDescriptorProto(properties) {\n                this.value = [];\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             * EnumDescriptorProto name.\n             * @member {string} name\n             * @memberof google.protobuf.EnumDescriptorProto\n             * @instance\n             */\n            EnumDescriptorProto.prototype.name = \"\";\n\n            /**\n             * EnumDescriptorProto value.\n             * @member {Array.<google.protobuf.IEnumValueDescriptorProto>} value\n             * @memberof google.protobuf.EnumDescriptorProto\n             * @instance\n             */\n            EnumDescriptorProto.prototype.value = $util.emptyArray;\n\n            /**\n             * EnumDescriptorProto options.\n             * @member {google.protobuf.IEnumOptions|null|undefined} options\n             * @memberof google.protobuf.EnumDescriptorProto\n             * @instance\n             */\n            EnumDescriptorProto.prototype.options = null;\n\n            /**\n             * Creates a new EnumDescriptorProto instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.EnumDescriptorProto\n             * @static\n             * @param {google.protobuf.IEnumDescriptorProto=} [properties] Properties to set\n             * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto instance\n             */\n            EnumDescriptorProto.create = function create(properties) {\n                return new EnumDescriptorProto(properties);\n            };\n\n            /**\n             * Encodes the specified EnumDescriptorProto message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.EnumDescriptorProto\n             * @static\n             * @param {google.protobuf.IEnumDescriptorProto} message EnumDescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            EnumDescriptorProto.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n                if (message.value != null && message.value.length)\n                    for (var i = 0; i < message.value.length; ++i)\n                        $root.google.protobuf.EnumValueDescriptorProto.encode(message.value[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n                if (message.options != null && Object.hasOwnProperty.call(message, \"options\"))\n                    $root.google.protobuf.EnumOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n                return writer;\n            };\n\n            /**\n             * Encodes the specified EnumDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.EnumDescriptorProto\n             * @static\n             * @param {google.protobuf.IEnumDescriptorProto} message EnumDescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            EnumDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes an EnumDescriptorProto message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.EnumDescriptorProto\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 {google.protobuf.EnumDescriptorProto} EnumDescriptorProto\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            EnumDescriptorProto.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.google.protobuf.EnumDescriptorProto();\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                        }\n                    case 2: {\n                            if (!(message.value && message.value.length))\n                                message.value = [];\n                            message.value.push($root.google.protobuf.EnumValueDescriptorProto.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 3: {\n                            message.options = $root.google.protobuf.EnumOptions.decode(reader, reader.uint32());\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes an EnumDescriptorProto message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.EnumDescriptorProto\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto\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            EnumDescriptorProto.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 EnumDescriptorProto message.\n             * @function verify\n             * @memberof google.protobuf.EnumDescriptorProto\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            EnumDescriptorProto.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.value != null && message.hasOwnProperty(\"value\")) {\n                    if (!Array.isArray(message.value))\n                        return \"value: array expected\";\n                    for (var i = 0; i < message.value.length; ++i) {\n                        var error = $root.google.protobuf.EnumValueDescriptorProto.verify(message.value[i]);\n                        if (error)\n                            return \"value.\" + error;\n                    }\n                }\n                if (message.options != null && message.hasOwnProperty(\"options\")) {\n                    var error = $root.google.protobuf.EnumOptions.verify(message.options);\n                    if (error)\n                        return \"options.\" + error;\n                }\n                return null;\n            };\n\n            /**\n             * Creates an EnumDescriptorProto message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.EnumDescriptorProto\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto\n             */\n            EnumDescriptorProto.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.EnumDescriptorProto)\n                    return object;\n                var message = new $root.google.protobuf.EnumDescriptorProto();\n                if (object.name != null)\n                    message.name = String(object.name);\n                if (object.value) {\n                    if (!Array.isArray(object.value))\n                        throw TypeError(\".google.protobuf.EnumDescriptorProto.value: array expected\");\n                    message.value = [];\n                    for (var i = 0; i < object.value.length; ++i) {\n                        if (typeof object.value[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.EnumDescriptorProto.value: object expected\");\n                        message.value[i] = $root.google.protobuf.EnumValueDescriptorProto.fromObject(object.value[i]);\n                    }\n                }\n                if (object.options != null) {\n                    if (typeof object.options !== \"object\")\n                        throw TypeError(\".google.protobuf.EnumDescriptorProto.options: object expected\");\n                    message.options = $root.google.protobuf.EnumOptions.fromObject(object.options);\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from an EnumDescriptorProto message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.EnumDescriptorProto\n             * @static\n             * @param {google.protobuf.EnumDescriptorProto} message EnumDescriptorProto\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            EnumDescriptorProto.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.value = [];\n                if (options.defaults) {\n                    object.name = \"\";\n                    object.options = null;\n                }\n                if (message.name != null && message.hasOwnProperty(\"name\"))\n                    object.name = message.name;\n                if (message.value && message.value.length) {\n                    object.value = [];\n                    for (var j = 0; j < message.value.length; ++j)\n                        object.value[j] = $root.google.protobuf.EnumValueDescriptorProto.toObject(message.value[j], options);\n                }\n                if (message.options != null && message.hasOwnProperty(\"options\"))\n                    object.options = $root.google.protobuf.EnumOptions.toObject(message.options, options);\n                return object;\n            };\n\n            /**\n             * Converts this EnumDescriptorProto to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.EnumDescriptorProto\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            EnumDescriptorProto.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for EnumDescriptorProto\n             * @function getTypeUrl\n             * @memberof google.protobuf.EnumDescriptorProto\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            EnumDescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.EnumDescriptorProto\";\n            };\n\n            return EnumDescriptorProto;\n        })();\n\n        protobuf.EnumValueDescriptorProto = (function() {\n\n            /**\n             * Properties of an EnumValueDescriptorProto.\n             * @memberof google.protobuf\n             * @interface IEnumValueDescriptorProto\n             * @property {string|null} [name] EnumValueDescriptorProto name\n             * @property {number|null} [number] EnumValueDescriptorProto number\n             * @property {google.protobuf.IEnumValueOptions|null} [options] EnumValueDescriptorProto options\n             */\n\n            /**\n             * Constructs a new EnumValueDescriptorProto.\n             * @memberof google.protobuf\n             * @classdesc Represents an EnumValueDescriptorProto.\n             * @implements IEnumValueDescriptorProto\n             * @constructor\n             * @param {google.protobuf.IEnumValueDescriptorProto=} [properties] Properties to set\n             */\n            function EnumValueDescriptorProto(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             * EnumValueDescriptorProto name.\n             * @member {string} name\n             * @memberof google.protobuf.EnumValueDescriptorProto\n             * @instance\n             */\n            EnumValueDescriptorProto.prototype.name = \"\";\n\n            /**\n             * EnumValueDescriptorProto number.\n             * @member {number} number\n             * @memberof google.protobuf.EnumValueDescriptorProto\n             * @instance\n             */\n            EnumValueDescriptorProto.prototype.number = 0;\n\n            /**\n             * EnumValueDescriptorProto options.\n             * @member {google.protobuf.IEnumValueOptions|null|undefined} options\n             * @memberof google.protobuf.EnumValueDescriptorProto\n             * @instance\n             */\n            EnumValueDescriptorProto.prototype.options = null;\n\n            /**\n             * Creates a new EnumValueDescriptorProto instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.EnumValueDescriptorProto\n             * @static\n             * @param {google.protobuf.IEnumValueDescriptorProto=} [properties] Properties to set\n             * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto instance\n             */\n            EnumValueDescriptorProto.create = function create(properties) {\n                return new EnumValueDescriptorProto(properties);\n            };\n\n            /**\n             * Encodes the specified EnumValueDescriptorProto message. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.EnumValueDescriptorProto\n             * @static\n             * @param {google.protobuf.IEnumValueDescriptorProto} message EnumValueDescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            EnumValueDescriptorProto.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n                if (message.number != null && Object.hasOwnProperty.call(message, \"number\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.number);\n                if (message.options != null && Object.hasOwnProperty.call(message, \"options\"))\n                    $root.google.protobuf.EnumValueOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n                return writer;\n            };\n\n            /**\n             * Encodes the specified EnumValueDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.EnumValueDescriptorProto\n             * @static\n             * @param {google.protobuf.IEnumValueDescriptorProto} message EnumValueDescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            EnumValueDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes an EnumValueDescriptorProto message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.EnumValueDescriptorProto\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 {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto\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            EnumValueDescriptorProto.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.google.protobuf.EnumValueDescriptorProto();\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                        }\n                    case 2: {\n                            message.number = reader.int32();\n                            break;\n                        }\n                    case 3: {\n                            message.options = $root.google.protobuf.EnumValueOptions.decode(reader, reader.uint32());\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes an EnumValueDescriptorProto message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.EnumValueDescriptorProto\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto\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            EnumValueDescriptorProto.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 EnumValueDescriptorProto message.\n             * @function verify\n             * @memberof google.protobuf.EnumValueDescriptorProto\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            EnumValueDescriptorProto.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.number != null && message.hasOwnProperty(\"number\"))\n                    if (!$util.isInteger(message.number))\n                        return \"number: integer expected\";\n                if (message.options != null && message.hasOwnProperty(\"options\")) {\n                    var error = $root.google.protobuf.EnumValueOptions.verify(message.options);\n                    if (error)\n                        return \"options.\" + error;\n                }\n                return null;\n            };\n\n            /**\n             * Creates an EnumValueDescriptorProto message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.EnumValueDescriptorProto\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto\n             */\n            EnumValueDescriptorProto.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.EnumValueDescriptorProto)\n                    return object;\n                var message = new $root.google.protobuf.EnumValueDescriptorProto();\n                if (object.name != null)\n                    message.name = String(object.name);\n                if (object.number != null)\n                    message.number = object.number | 0;\n                if (object.options != null) {\n                    if (typeof object.options !== \"object\")\n                        throw TypeError(\".google.protobuf.EnumValueDescriptorProto.options: object expected\");\n                    message.options = $root.google.protobuf.EnumValueOptions.fromObject(object.options);\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from an EnumValueDescriptorProto message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.EnumValueDescriptorProto\n             * @static\n             * @param {google.protobuf.EnumValueDescriptorProto} message EnumValueDescriptorProto\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            EnumValueDescriptorProto.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.name = \"\";\n                    object.number = 0;\n                    object.options = null;\n                }\n                if (message.name != null && message.hasOwnProperty(\"name\"))\n                    object.name = message.name;\n                if (message.number != null && message.hasOwnProperty(\"number\"))\n                    object.number = message.number;\n                if (message.options != null && message.hasOwnProperty(\"options\"))\n                    object.options = $root.google.protobuf.EnumValueOptions.toObject(message.options, options);\n                return object;\n            };\n\n            /**\n             * Converts this EnumValueDescriptorProto to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.EnumValueDescriptorProto\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            EnumValueDescriptorProto.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for EnumValueDescriptorProto\n             * @function getTypeUrl\n             * @memberof google.protobuf.EnumValueDescriptorProto\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            EnumValueDescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.EnumValueDescriptorProto\";\n            };\n\n            return EnumValueDescriptorProto;\n        })();\n\n        protobuf.ServiceDescriptorProto = (function() {\n\n            /**\n             * Properties of a ServiceDescriptorProto.\n             * @memberof google.protobuf\n             * @interface IServiceDescriptorProto\n             * @property {string|null} [name] ServiceDescriptorProto name\n             * @property {Array.<google.protobuf.IMethodDescriptorProto>|null} [method] ServiceDescriptorProto method\n             * @property {google.protobuf.IServiceOptions|null} [options] ServiceDescriptorProto options\n             */\n\n            /**\n             * Constructs a new ServiceDescriptorProto.\n             * @memberof google.protobuf\n             * @classdesc Represents a ServiceDescriptorProto.\n             * @implements IServiceDescriptorProto\n             * @constructor\n             * @param {google.protobuf.IServiceDescriptorProto=} [properties] Properties to set\n             */\n            function ServiceDescriptorProto(properties) {\n                this.method = [];\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             * ServiceDescriptorProto name.\n             * @member {string} name\n             * @memberof google.protobuf.ServiceDescriptorProto\n             * @instance\n             */\n            ServiceDescriptorProto.prototype.name = \"\";\n\n            /**\n             * ServiceDescriptorProto method.\n             * @member {Array.<google.protobuf.IMethodDescriptorProto>} method\n             * @memberof google.protobuf.ServiceDescriptorProto\n             * @instance\n             */\n            ServiceDescriptorProto.prototype.method = $util.emptyArray;\n\n            /**\n             * ServiceDescriptorProto options.\n             * @member {google.protobuf.IServiceOptions|null|undefined} options\n             * @memberof google.protobuf.ServiceDescriptorProto\n             * @instance\n             */\n            ServiceDescriptorProto.prototype.options = null;\n\n            /**\n             * Creates a new ServiceDescriptorProto instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.ServiceDescriptorProto\n             * @static\n             * @param {google.protobuf.IServiceDescriptorProto=} [properties] Properties to set\n             * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto instance\n             */\n            ServiceDescriptorProto.create = function create(properties) {\n                return new ServiceDescriptorProto(properties);\n            };\n\n            /**\n             * Encodes the specified ServiceDescriptorProto message. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.ServiceDescriptorProto\n             * @static\n             * @param {google.protobuf.IServiceDescriptorProto} message ServiceDescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            ServiceDescriptorProto.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n                if (message.method != null && message.method.length)\n                    for (var i = 0; i < message.method.length; ++i)\n                        $root.google.protobuf.MethodDescriptorProto.encode(message.method[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n                if (message.options != null && Object.hasOwnProperty.call(message, \"options\"))\n                    $root.google.protobuf.ServiceOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n                return writer;\n            };\n\n            /**\n             * Encodes the specified ServiceDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.ServiceDescriptorProto\n             * @static\n             * @param {google.protobuf.IServiceDescriptorProto} message ServiceDescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            ServiceDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes a ServiceDescriptorProto message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.ServiceDescriptorProto\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 {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto\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            ServiceDescriptorProto.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.google.protobuf.ServiceDescriptorProto();\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                        }\n                    case 2: {\n                            if (!(message.method && message.method.length))\n                                message.method = [];\n                            message.method.push($root.google.protobuf.MethodDescriptorProto.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 3: {\n                            message.options = $root.google.protobuf.ServiceOptions.decode(reader, reader.uint32());\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes a ServiceDescriptorProto message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.ServiceDescriptorProto\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto\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            ServiceDescriptorProto.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 ServiceDescriptorProto message.\n             * @function verify\n             * @memberof google.protobuf.ServiceDescriptorProto\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            ServiceDescriptorProto.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.method != null && message.hasOwnProperty(\"method\")) {\n                    if (!Array.isArray(message.method))\n                        return \"method: array expected\";\n                    for (var i = 0; i < message.method.length; ++i) {\n                        var error = $root.google.protobuf.MethodDescriptorProto.verify(message.method[i]);\n                        if (error)\n                            return \"method.\" + error;\n                    }\n                }\n                if (message.options != null && message.hasOwnProperty(\"options\")) {\n                    var error = $root.google.protobuf.ServiceOptions.verify(message.options);\n                    if (error)\n                        return \"options.\" + error;\n                }\n                return null;\n            };\n\n            /**\n             * Creates a ServiceDescriptorProto message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.ServiceDescriptorProto\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto\n             */\n            ServiceDescriptorProto.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.ServiceDescriptorProto)\n                    return object;\n                var message = new $root.google.protobuf.ServiceDescriptorProto();\n                if (object.name != null)\n                    message.name = String(object.name);\n                if (object.method) {\n                    if (!Array.isArray(object.method))\n                        throw TypeError(\".google.protobuf.ServiceDescriptorProto.method: array expected\");\n                    message.method = [];\n                    for (var i = 0; i < object.method.length; ++i) {\n                        if (typeof object.method[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.ServiceDescriptorProto.method: object expected\");\n                        message.method[i] = $root.google.protobuf.MethodDescriptorProto.fromObject(object.method[i]);\n                    }\n                }\n                if (object.options != null) {\n                    if (typeof object.options !== \"object\")\n                        throw TypeError(\".google.protobuf.ServiceDescriptorProto.options: object expected\");\n                    message.options = $root.google.protobuf.ServiceOptions.fromObject(object.options);\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from a ServiceDescriptorProto message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.ServiceDescriptorProto\n             * @static\n             * @param {google.protobuf.ServiceDescriptorProto} message ServiceDescriptorProto\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            ServiceDescriptorProto.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.method = [];\n                if (options.defaults) {\n                    object.name = \"\";\n                    object.options = null;\n                }\n                if (message.name != null && message.hasOwnProperty(\"name\"))\n                    object.name = message.name;\n                if (message.method && message.method.length) {\n                    object.method = [];\n                    for (var j = 0; j < message.method.length; ++j)\n                        object.method[j] = $root.google.protobuf.MethodDescriptorProto.toObject(message.method[j], options);\n                }\n                if (message.options != null && message.hasOwnProperty(\"options\"))\n                    object.options = $root.google.protobuf.ServiceOptions.toObject(message.options, options);\n                return object;\n            };\n\n            /**\n             * Converts this ServiceDescriptorProto to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.ServiceDescriptorProto\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            ServiceDescriptorProto.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for ServiceDescriptorProto\n             * @function getTypeUrl\n             * @memberof google.protobuf.ServiceDescriptorProto\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            ServiceDescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.ServiceDescriptorProto\";\n            };\n\n            return ServiceDescriptorProto;\n        })();\n\n        protobuf.MethodDescriptorProto = (function() {\n\n            /**\n             * Properties of a MethodDescriptorProto.\n             * @memberof google.protobuf\n             * @interface IMethodDescriptorProto\n             * @property {string|null} [name] MethodDescriptorProto name\n             * @property {string|null} [inputType] MethodDescriptorProto inputType\n             * @property {string|null} [outputType] MethodDescriptorProto outputType\n             * @property {google.protobuf.IMethodOptions|null} [options] MethodDescriptorProto options\n             * @property {boolean|null} [clientStreaming] MethodDescriptorProto clientStreaming\n             * @property {boolean|null} [serverStreaming] MethodDescriptorProto serverStreaming\n             */\n\n            /**\n             * Constructs a new MethodDescriptorProto.\n             * @memberof google.protobuf\n             * @classdesc Represents a MethodDescriptorProto.\n             * @implements IMethodDescriptorProto\n             * @constructor\n             * @param {google.protobuf.IMethodDescriptorProto=} [properties] Properties to set\n             */\n            function MethodDescriptorProto(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             * MethodDescriptorProto name.\n             * @member {string} name\n             * @memberof google.protobuf.MethodDescriptorProto\n             * @instance\n             */\n            MethodDescriptorProto.prototype.name = \"\";\n\n            /**\n             * MethodDescriptorProto inputType.\n             * @member {string} inputType\n             * @memberof google.protobuf.MethodDescriptorProto\n             * @instance\n             */\n            MethodDescriptorProto.prototype.inputType = \"\";\n\n            /**\n             * MethodDescriptorProto outputType.\n             * @member {string} outputType\n             * @memberof google.protobuf.MethodDescriptorProto\n             * @instance\n             */\n            MethodDescriptorProto.prototype.outputType = \"\";\n\n            /**\n             * MethodDescriptorProto options.\n             * @member {google.protobuf.IMethodOptions|null|undefined} options\n             * @memberof google.protobuf.MethodDescriptorProto\n             * @instance\n             */\n            MethodDescriptorProto.prototype.options = null;\n\n            /**\n             * MethodDescriptorProto clientStreaming.\n             * @member {boolean} clientStreaming\n             * @memberof google.protobuf.MethodDescriptorProto\n             * @instance\n             */\n            MethodDescriptorProto.prototype.clientStreaming = false;\n\n            /**\n             * MethodDescriptorProto serverStreaming.\n             * @member {boolean} serverStreaming\n             * @memberof google.protobuf.MethodDescriptorProto\n             * @instance\n             */\n            MethodDescriptorProto.prototype.serverStreaming = false;\n\n            /**\n             * Creates a new MethodDescriptorProto instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.MethodDescriptorProto\n             * @static\n             * @param {google.protobuf.IMethodDescriptorProto=} [properties] Properties to set\n             * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto instance\n             */\n            MethodDescriptorProto.create = function create(properties) {\n                return new MethodDescriptorProto(properties);\n            };\n\n            /**\n             * Encodes the specified MethodDescriptorProto message. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.MethodDescriptorProto\n             * @static\n             * @param {google.protobuf.IMethodDescriptorProto} message MethodDescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            MethodDescriptorProto.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n                if (message.inputType != null && Object.hasOwnProperty.call(message, \"inputType\"))\n                    writer.uint32(/* id 2, wireType 2 =*/18).string(message.inputType);\n                if (message.outputType != null && Object.hasOwnProperty.call(message, \"outputType\"))\n                    writer.uint32(/* id 3, wireType 2 =*/26).string(message.outputType);\n                if (message.options != null && Object.hasOwnProperty.call(message, \"options\"))\n                    $root.google.protobuf.MethodOptions.encode(message.options, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n                if (message.clientStreaming != null && Object.hasOwnProperty.call(message, \"clientStreaming\"))\n                    writer.uint32(/* id 5, wireType 0 =*/40).bool(message.clientStreaming);\n                if (message.serverStreaming != null && Object.hasOwnProperty.call(message, \"serverStreaming\"))\n                    writer.uint32(/* id 6, wireType 0 =*/48).bool(message.serverStreaming);\n                return writer;\n            };\n\n            /**\n             * Encodes the specified MethodDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.MethodDescriptorProto\n             * @static\n             * @param {google.protobuf.IMethodDescriptorProto} message MethodDescriptorProto message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            MethodDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes a MethodDescriptorProto message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.MethodDescriptorProto\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 {google.protobuf.MethodDescriptorProto} MethodDescriptorProto\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            MethodDescriptorProto.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.google.protobuf.MethodDescriptorProto();\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                        }\n                    case 2: {\n                            message.inputType = reader.string();\n                            break;\n                        }\n                    case 3: {\n                            message.outputType = reader.string();\n                            break;\n                        }\n                    case 4: {\n                            message.options = $root.google.protobuf.MethodOptions.decode(reader, reader.uint32());\n                            break;\n                        }\n                    case 5: {\n                            message.clientStreaming = reader.bool();\n                            break;\n                        }\n                    case 6: {\n                            message.serverStreaming = reader.bool();\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes a MethodDescriptorProto message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.MethodDescriptorProto\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto\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            MethodDescriptorProto.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 MethodDescriptorProto message.\n             * @function verify\n             * @memberof google.protobuf.MethodDescriptorProto\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            MethodDescriptorProto.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.inputType != null && message.hasOwnProperty(\"inputType\"))\n                    if (!$util.isString(message.inputType))\n                        return \"inputType: string expected\";\n                if (message.outputType != null && message.hasOwnProperty(\"outputType\"))\n                    if (!$util.isString(message.outputType))\n                        return \"outputType: string expected\";\n                if (message.options != null && message.hasOwnProperty(\"options\")) {\n                    var error = $root.google.protobuf.MethodOptions.verify(message.options);\n                    if (error)\n                        return \"options.\" + error;\n                }\n                if (message.clientStreaming != null && message.hasOwnProperty(\"clientStreaming\"))\n                    if (typeof message.clientStreaming !== \"boolean\")\n                        return \"clientStreaming: boolean expected\";\n                if (message.serverStreaming != null && message.hasOwnProperty(\"serverStreaming\"))\n                    if (typeof message.serverStreaming !== \"boolean\")\n                        return \"serverStreaming: boolean expected\";\n                return null;\n            };\n\n            /**\n             * Creates a MethodDescriptorProto message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.MethodDescriptorProto\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto\n             */\n            MethodDescriptorProto.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.MethodDescriptorProto)\n                    return object;\n                var message = new $root.google.protobuf.MethodDescriptorProto();\n                if (object.name != null)\n                    message.name = String(object.name);\n                if (object.inputType != null)\n                    message.inputType = String(object.inputType);\n                if (object.outputType != null)\n                    message.outputType = String(object.outputType);\n                if (object.options != null) {\n                    if (typeof object.options !== \"object\")\n                        throw TypeError(\".google.protobuf.MethodDescriptorProto.options: object expected\");\n                    message.options = $root.google.protobuf.MethodOptions.fromObject(object.options);\n                }\n                if (object.clientStreaming != null)\n                    message.clientStreaming = Boolean(object.clientStreaming);\n                if (object.serverStreaming != null)\n                    message.serverStreaming = Boolean(object.serverStreaming);\n                return message;\n            };\n\n            /**\n             * Creates a plain object from a MethodDescriptorProto message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.MethodDescriptorProto\n             * @static\n             * @param {google.protobuf.MethodDescriptorProto} message MethodDescriptorProto\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            MethodDescriptorProto.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.name = \"\";\n                    object.inputType = \"\";\n                    object.outputType = \"\";\n                    object.options = null;\n                    object.clientStreaming = false;\n                    object.serverStreaming = false;\n                }\n                if (message.name != null && message.hasOwnProperty(\"name\"))\n                    object.name = message.name;\n                if (message.inputType != null && message.hasOwnProperty(\"inputType\"))\n                    object.inputType = message.inputType;\n                if (message.outputType != null && message.hasOwnProperty(\"outputType\"))\n                    object.outputType = message.outputType;\n                if (message.options != null && message.hasOwnProperty(\"options\"))\n                    object.options = $root.google.protobuf.MethodOptions.toObject(message.options, options);\n                if (message.clientStreaming != null && message.hasOwnProperty(\"clientStreaming\"))\n                    object.clientStreaming = message.clientStreaming;\n                if (message.serverStreaming != null && message.hasOwnProperty(\"serverStreaming\"))\n                    object.serverStreaming = message.serverStreaming;\n                return object;\n            };\n\n            /**\n             * Converts this MethodDescriptorProto to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.MethodDescriptorProto\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            MethodDescriptorProto.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for MethodDescriptorProto\n             * @function getTypeUrl\n             * @memberof google.protobuf.MethodDescriptorProto\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            MethodDescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.MethodDescriptorProto\";\n            };\n\n            return MethodDescriptorProto;\n        })();\n\n        protobuf.FileOptions = (function() {\n\n            /**\n             * Properties of a FileOptions.\n             * @memberof google.protobuf\n             * @interface IFileOptions\n             * @property {string|null} [javaPackage] FileOptions javaPackage\n             * @property {string|null} [javaOuterClassname] FileOptions javaOuterClassname\n             * @property {boolean|null} [javaMultipleFiles] FileOptions javaMultipleFiles\n             * @property {boolean|null} [javaGenerateEqualsAndHash] FileOptions javaGenerateEqualsAndHash\n             * @property {boolean|null} [javaStringCheckUtf8] FileOptions javaStringCheckUtf8\n             * @property {google.protobuf.FileOptions.OptimizeMode|null} [optimizeFor] FileOptions optimizeFor\n             * @property {string|null} [goPackage] FileOptions goPackage\n             * @property {boolean|null} [ccGenericServices] FileOptions ccGenericServices\n             * @property {boolean|null} [javaGenericServices] FileOptions javaGenericServices\n             * @property {boolean|null} [pyGenericServices] FileOptions pyGenericServices\n             * @property {boolean|null} [deprecated] FileOptions deprecated\n             * @property {boolean|null} [ccEnableArenas] FileOptions ccEnableArenas\n             * @property {string|null} [objcClassPrefix] FileOptions objcClassPrefix\n             * @property {string|null} [csharpNamespace] FileOptions csharpNamespace\n             * @property {Array.<google.protobuf.IUninterpretedOption>|null} [uninterpretedOption] FileOptions uninterpretedOption\n             */\n\n            /**\n             * Constructs a new FileOptions.\n             * @memberof google.protobuf\n             * @classdesc Represents a FileOptions.\n             * @implements IFileOptions\n             * @constructor\n             * @param {google.protobuf.IFileOptions=} [properties] Properties to set\n             */\n            function FileOptions(properties) {\n                this.uninterpretedOption = [];\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             * FileOptions javaPackage.\n             * @member {string} javaPackage\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.javaPackage = \"\";\n\n            /**\n             * FileOptions javaOuterClassname.\n             * @member {string} javaOuterClassname\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.javaOuterClassname = \"\";\n\n            /**\n             * FileOptions javaMultipleFiles.\n             * @member {boolean} javaMultipleFiles\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.javaMultipleFiles = false;\n\n            /**\n             * FileOptions javaGenerateEqualsAndHash.\n             * @member {boolean} javaGenerateEqualsAndHash\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.javaGenerateEqualsAndHash = false;\n\n            /**\n             * FileOptions javaStringCheckUtf8.\n             * @member {boolean} javaStringCheckUtf8\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.javaStringCheckUtf8 = false;\n\n            /**\n             * FileOptions optimizeFor.\n             * @member {google.protobuf.FileOptions.OptimizeMode} optimizeFor\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.optimizeFor = 1;\n\n            /**\n             * FileOptions goPackage.\n             * @member {string} goPackage\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.goPackage = \"\";\n\n            /**\n             * FileOptions ccGenericServices.\n             * @member {boolean} ccGenericServices\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.ccGenericServices = false;\n\n            /**\n             * FileOptions javaGenericServices.\n             * @member {boolean} javaGenericServices\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.javaGenericServices = false;\n\n            /**\n             * FileOptions pyGenericServices.\n             * @member {boolean} pyGenericServices\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.pyGenericServices = false;\n\n            /**\n             * FileOptions deprecated.\n             * @member {boolean} deprecated\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.deprecated = false;\n\n            /**\n             * FileOptions ccEnableArenas.\n             * @member {boolean} ccEnableArenas\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.ccEnableArenas = false;\n\n            /**\n             * FileOptions objcClassPrefix.\n             * @member {string} objcClassPrefix\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.objcClassPrefix = \"\";\n\n            /**\n             * FileOptions csharpNamespace.\n             * @member {string} csharpNamespace\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.csharpNamespace = \"\";\n\n            /**\n             * FileOptions uninterpretedOption.\n             * @member {Array.<google.protobuf.IUninterpretedOption>} uninterpretedOption\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             */\n            FileOptions.prototype.uninterpretedOption = $util.emptyArray;\n\n            /**\n             * Creates a new FileOptions instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.FileOptions\n             * @static\n             * @param {google.protobuf.IFileOptions=} [properties] Properties to set\n             * @returns {google.protobuf.FileOptions} FileOptions instance\n             */\n            FileOptions.create = function create(properties) {\n                return new FileOptions(properties);\n            };\n\n            /**\n             * Encodes the specified FileOptions message. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.FileOptions\n             * @static\n             * @param {google.protobuf.IFileOptions} message FileOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FileOptions.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.javaPackage != null && Object.hasOwnProperty.call(message, \"javaPackage\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.javaPackage);\n                if (message.javaOuterClassname != null && Object.hasOwnProperty.call(message, \"javaOuterClassname\"))\n                    writer.uint32(/* id 8, wireType 2 =*/66).string(message.javaOuterClassname);\n                if (message.optimizeFor != null && Object.hasOwnProperty.call(message, \"optimizeFor\"))\n                    writer.uint32(/* id 9, wireType 0 =*/72).int32(message.optimizeFor);\n                if (message.javaMultipleFiles != null && Object.hasOwnProperty.call(message, \"javaMultipleFiles\"))\n                    writer.uint32(/* id 10, wireType 0 =*/80).bool(message.javaMultipleFiles);\n                if (message.goPackage != null && Object.hasOwnProperty.call(message, \"goPackage\"))\n                    writer.uint32(/* id 11, wireType 2 =*/90).string(message.goPackage);\n                if (message.ccGenericServices != null && Object.hasOwnProperty.call(message, \"ccGenericServices\"))\n                    writer.uint32(/* id 16, wireType 0 =*/128).bool(message.ccGenericServices);\n                if (message.javaGenericServices != null && Object.hasOwnProperty.call(message, \"javaGenericServices\"))\n                    writer.uint32(/* id 17, wireType 0 =*/136).bool(message.javaGenericServices);\n                if (message.pyGenericServices != null && Object.hasOwnProperty.call(message, \"pyGenericServices\"))\n                    writer.uint32(/* id 18, wireType 0 =*/144).bool(message.pyGenericServices);\n                if (message.javaGenerateEqualsAndHash != null && Object.hasOwnProperty.call(message, \"javaGenerateEqualsAndHash\"))\n                    writer.uint32(/* id 20, wireType 0 =*/160).bool(message.javaGenerateEqualsAndHash);\n                if (message.deprecated != null && Object.hasOwnProperty.call(message, \"deprecated\"))\n                    writer.uint32(/* id 23, wireType 0 =*/184).bool(message.deprecated);\n                if (message.javaStringCheckUtf8 != null && Object.hasOwnProperty.call(message, \"javaStringCheckUtf8\"))\n                    writer.uint32(/* id 27, wireType 0 =*/216).bool(message.javaStringCheckUtf8);\n                if (message.ccEnableArenas != null && Object.hasOwnProperty.call(message, \"ccEnableArenas\"))\n                    writer.uint32(/* id 31, wireType 0 =*/248).bool(message.ccEnableArenas);\n                if (message.objcClassPrefix != null && Object.hasOwnProperty.call(message, \"objcClassPrefix\"))\n                    writer.uint32(/* id 36, wireType 2 =*/290).string(message.objcClassPrefix);\n                if (message.csharpNamespace != null && Object.hasOwnProperty.call(message, \"csharpNamespace\"))\n                    writer.uint32(/* id 37, wireType 2 =*/298).string(message.csharpNamespace);\n                if (message.uninterpretedOption != null && message.uninterpretedOption.length)\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i)\n                        $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim();\n                return writer;\n            };\n\n            /**\n             * Encodes the specified FileOptions message, length delimited. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.FileOptions\n             * @static\n             * @param {google.protobuf.IFileOptions} message FileOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FileOptions.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes a FileOptions message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.FileOptions\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 {google.protobuf.FileOptions} FileOptions\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            FileOptions.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.google.protobuf.FileOptions();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1: {\n                            message.javaPackage = reader.string();\n                            break;\n                        }\n                    case 8: {\n                            message.javaOuterClassname = reader.string();\n                            break;\n                        }\n                    case 10: {\n                            message.javaMultipleFiles = reader.bool();\n                            break;\n                        }\n                    case 20: {\n                            message.javaGenerateEqualsAndHash = reader.bool();\n                            break;\n                        }\n                    case 27: {\n                            message.javaStringCheckUtf8 = reader.bool();\n                            break;\n                        }\n                    case 9: {\n                            message.optimizeFor = reader.int32();\n                            break;\n                        }\n                    case 11: {\n                            message.goPackage = reader.string();\n                            break;\n                        }\n                    case 16: {\n                            message.ccGenericServices = reader.bool();\n                            break;\n                        }\n                    case 17: {\n                            message.javaGenericServices = reader.bool();\n                            break;\n                        }\n                    case 18: {\n                            message.pyGenericServices = reader.bool();\n                            break;\n                        }\n                    case 23: {\n                            message.deprecated = reader.bool();\n                            break;\n                        }\n                    case 31: {\n                            message.ccEnableArenas = reader.bool();\n                            break;\n                        }\n                    case 36: {\n                            message.objcClassPrefix = reader.string();\n                            break;\n                        }\n                    case 37: {\n                            message.csharpNamespace = reader.string();\n                            break;\n                        }\n                    case 999: {\n                            if (!(message.uninterpretedOption && message.uninterpretedOption.length))\n                                message.uninterpretedOption = [];\n                            message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes a FileOptions message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.FileOptions\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.FileOptions} FileOptions\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            FileOptions.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 FileOptions message.\n             * @function verify\n             * @memberof google.protobuf.FileOptions\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            FileOptions.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.javaPackage != null && message.hasOwnProperty(\"javaPackage\"))\n                    if (!$util.isString(message.javaPackage))\n                        return \"javaPackage: string expected\";\n                if (message.javaOuterClassname != null && message.hasOwnProperty(\"javaOuterClassname\"))\n                    if (!$util.isString(message.javaOuterClassname))\n                        return \"javaOuterClassname: string expected\";\n                if (message.javaMultipleFiles != null && message.hasOwnProperty(\"javaMultipleFiles\"))\n                    if (typeof message.javaMultipleFiles !== \"boolean\")\n                        return \"javaMultipleFiles: boolean expected\";\n                if (message.javaGenerateEqualsAndHash != null && message.hasOwnProperty(\"javaGenerateEqualsAndHash\"))\n                    if (typeof message.javaGenerateEqualsAndHash !== \"boolean\")\n                        return \"javaGenerateEqualsAndHash: boolean expected\";\n                if (message.javaStringCheckUtf8 != null && message.hasOwnProperty(\"javaStringCheckUtf8\"))\n                    if (typeof message.javaStringCheckUtf8 !== \"boolean\")\n                        return \"javaStringCheckUtf8: boolean expected\";\n                if (message.optimizeFor != null && message.hasOwnProperty(\"optimizeFor\"))\n                    switch (message.optimizeFor) {\n                    default:\n                        return \"optimizeFor: enum value expected\";\n                    case 1:\n                    case 2:\n                    case 3:\n                        break;\n                    }\n                if (message.goPackage != null && message.hasOwnProperty(\"goPackage\"))\n                    if (!$util.isString(message.goPackage))\n                        return \"goPackage: string expected\";\n                if (message.ccGenericServices != null && message.hasOwnProperty(\"ccGenericServices\"))\n                    if (typeof message.ccGenericServices !== \"boolean\")\n                        return \"ccGenericServices: boolean expected\";\n                if (message.javaGenericServices != null && message.hasOwnProperty(\"javaGenericServices\"))\n                    if (typeof message.javaGenericServices !== \"boolean\")\n                        return \"javaGenericServices: boolean expected\";\n                if (message.pyGenericServices != null && message.hasOwnProperty(\"pyGenericServices\"))\n                    if (typeof message.pyGenericServices !== \"boolean\")\n                        return \"pyGenericServices: boolean expected\";\n                if (message.deprecated != null && message.hasOwnProperty(\"deprecated\"))\n                    if (typeof message.deprecated !== \"boolean\")\n                        return \"deprecated: boolean expected\";\n                if (message.ccEnableArenas != null && message.hasOwnProperty(\"ccEnableArenas\"))\n                    if (typeof message.ccEnableArenas !== \"boolean\")\n                        return \"ccEnableArenas: boolean expected\";\n                if (message.objcClassPrefix != null && message.hasOwnProperty(\"objcClassPrefix\"))\n                    if (!$util.isString(message.objcClassPrefix))\n                        return \"objcClassPrefix: string expected\";\n                if (message.csharpNamespace != null && message.hasOwnProperty(\"csharpNamespace\"))\n                    if (!$util.isString(message.csharpNamespace))\n                        return \"csharpNamespace: string expected\";\n                if (message.uninterpretedOption != null && message.hasOwnProperty(\"uninterpretedOption\")) {\n                    if (!Array.isArray(message.uninterpretedOption))\n                        return \"uninterpretedOption: array expected\";\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i) {\n                        var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]);\n                        if (error)\n                            return \"uninterpretedOption.\" + error;\n                    }\n                }\n                return null;\n            };\n\n            /**\n             * Creates a FileOptions message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.FileOptions\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.FileOptions} FileOptions\n             */\n            FileOptions.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.FileOptions)\n                    return object;\n                var message = new $root.google.protobuf.FileOptions();\n                if (object.javaPackage != null)\n                    message.javaPackage = String(object.javaPackage);\n                if (object.javaOuterClassname != null)\n                    message.javaOuterClassname = String(object.javaOuterClassname);\n                if (object.javaMultipleFiles != null)\n                    message.javaMultipleFiles = Boolean(object.javaMultipleFiles);\n                if (object.javaGenerateEqualsAndHash != null)\n                    message.javaGenerateEqualsAndHash = Boolean(object.javaGenerateEqualsAndHash);\n                if (object.javaStringCheckUtf8 != null)\n                    message.javaStringCheckUtf8 = Boolean(object.javaStringCheckUtf8);\n                switch (object.optimizeFor) {\n                default:\n                    if (typeof object.optimizeFor === \"number\") {\n                        message.optimizeFor = object.optimizeFor;\n                        break;\n                    }\n                    break;\n                case \"SPEED\":\n                case 1:\n                    message.optimizeFor = 1;\n                    break;\n                case \"CODE_SIZE\":\n                case 2:\n                    message.optimizeFor = 2;\n                    break;\n                case \"LITE_RUNTIME\":\n                case 3:\n                    message.optimizeFor = 3;\n                    break;\n                }\n                if (object.goPackage != null)\n                    message.goPackage = String(object.goPackage);\n                if (object.ccGenericServices != null)\n                    message.ccGenericServices = Boolean(object.ccGenericServices);\n                if (object.javaGenericServices != null)\n                    message.javaGenericServices = Boolean(object.javaGenericServices);\n                if (object.pyGenericServices != null)\n                    message.pyGenericServices = Boolean(object.pyGenericServices);\n                if (object.deprecated != null)\n                    message.deprecated = Boolean(object.deprecated);\n                if (object.ccEnableArenas != null)\n                    message.ccEnableArenas = Boolean(object.ccEnableArenas);\n                if (object.objcClassPrefix != null)\n                    message.objcClassPrefix = String(object.objcClassPrefix);\n                if (object.csharpNamespace != null)\n                    message.csharpNamespace = String(object.csharpNamespace);\n                if (object.uninterpretedOption) {\n                    if (!Array.isArray(object.uninterpretedOption))\n                        throw TypeError(\".google.protobuf.FileOptions.uninterpretedOption: array expected\");\n                    message.uninterpretedOption = [];\n                    for (var i = 0; i < object.uninterpretedOption.length; ++i) {\n                        if (typeof object.uninterpretedOption[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.FileOptions.uninterpretedOption: object expected\");\n                        message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]);\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from a FileOptions message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.FileOptions\n             * @static\n             * @param {google.protobuf.FileOptions} message FileOptions\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            FileOptions.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.uninterpretedOption = [];\n                if (options.defaults) {\n                    object.javaPackage = \"\";\n                    object.javaOuterClassname = \"\";\n                    object.optimizeFor = options.enums === String ? \"SPEED\" : 1;\n                    object.javaMultipleFiles = false;\n                    object.goPackage = \"\";\n                    object.ccGenericServices = false;\n                    object.javaGenericServices = false;\n                    object.pyGenericServices = false;\n                    object.javaGenerateEqualsAndHash = false;\n                    object.deprecated = false;\n                    object.javaStringCheckUtf8 = false;\n                    object.ccEnableArenas = false;\n                    object.objcClassPrefix = \"\";\n                    object.csharpNamespace = \"\";\n                }\n                if (message.javaPackage != null && message.hasOwnProperty(\"javaPackage\"))\n                    object.javaPackage = message.javaPackage;\n                if (message.javaOuterClassname != null && message.hasOwnProperty(\"javaOuterClassname\"))\n                    object.javaOuterClassname = message.javaOuterClassname;\n                if (message.optimizeFor != null && message.hasOwnProperty(\"optimizeFor\"))\n                    object.optimizeFor = options.enums === String ? $root.google.protobuf.FileOptions.OptimizeMode[message.optimizeFor] === undefined ? message.optimizeFor : $root.google.protobuf.FileOptions.OptimizeMode[message.optimizeFor] : message.optimizeFor;\n                if (message.javaMultipleFiles != null && message.hasOwnProperty(\"javaMultipleFiles\"))\n                    object.javaMultipleFiles = message.javaMultipleFiles;\n                if (message.goPackage != null && message.hasOwnProperty(\"goPackage\"))\n                    object.goPackage = message.goPackage;\n                if (message.ccGenericServices != null && message.hasOwnProperty(\"ccGenericServices\"))\n                    object.ccGenericServices = message.ccGenericServices;\n                if (message.javaGenericServices != null && message.hasOwnProperty(\"javaGenericServices\"))\n                    object.javaGenericServices = message.javaGenericServices;\n                if (message.pyGenericServices != null && message.hasOwnProperty(\"pyGenericServices\"))\n                    object.pyGenericServices = message.pyGenericServices;\n                if (message.javaGenerateEqualsAndHash != null && message.hasOwnProperty(\"javaGenerateEqualsAndHash\"))\n                    object.javaGenerateEqualsAndHash = message.javaGenerateEqualsAndHash;\n                if (message.deprecated != null && message.hasOwnProperty(\"deprecated\"))\n                    object.deprecated = message.deprecated;\n                if (message.javaStringCheckUtf8 != null && message.hasOwnProperty(\"javaStringCheckUtf8\"))\n                    object.javaStringCheckUtf8 = message.javaStringCheckUtf8;\n                if (message.ccEnableArenas != null && message.hasOwnProperty(\"ccEnableArenas\"))\n                    object.ccEnableArenas = message.ccEnableArenas;\n                if (message.objcClassPrefix != null && message.hasOwnProperty(\"objcClassPrefix\"))\n                    object.objcClassPrefix = message.objcClassPrefix;\n                if (message.csharpNamespace != null && message.hasOwnProperty(\"csharpNamespace\"))\n                    object.csharpNamespace = message.csharpNamespace;\n                if (message.uninterpretedOption && message.uninterpretedOption.length) {\n                    object.uninterpretedOption = [];\n                    for (var j = 0; j < message.uninterpretedOption.length; ++j)\n                        object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options);\n                }\n                return object;\n            };\n\n            /**\n             * Converts this FileOptions to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.FileOptions\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            FileOptions.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for FileOptions\n             * @function getTypeUrl\n             * @memberof google.protobuf.FileOptions\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            FileOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.FileOptions\";\n            };\n\n            /**\n             * OptimizeMode enum.\n             * @name google.protobuf.FileOptions.OptimizeMode\n             * @enum {number}\n             * @property {number} SPEED=1 SPEED value\n             * @property {number} CODE_SIZE=2 CODE_SIZE value\n             * @property {number} LITE_RUNTIME=3 LITE_RUNTIME value\n             */\n            FileOptions.OptimizeMode = (function() {\n                var valuesById = {}, values = Object.create(valuesById);\n                values[valuesById[1] = \"SPEED\"] = 1;\n                values[valuesById[2] = \"CODE_SIZE\"] = 2;\n                values[valuesById[3] = \"LITE_RUNTIME\"] = 3;\n                return values;\n            })();\n\n            return FileOptions;\n        })();\n\n        protobuf.MessageOptions = (function() {\n\n            /**\n             * Properties of a MessageOptions.\n             * @memberof google.protobuf\n             * @interface IMessageOptions\n             * @property {boolean|null} [messageSetWireFormat] MessageOptions messageSetWireFormat\n             * @property {boolean|null} [noStandardDescriptorAccessor] MessageOptions noStandardDescriptorAccessor\n             * @property {boolean|null} [deprecated] MessageOptions deprecated\n             * @property {boolean|null} [mapEntry] MessageOptions mapEntry\n             * @property {Array.<google.protobuf.IUninterpretedOption>|null} [uninterpretedOption] MessageOptions uninterpretedOption\n             * @property {boolean|null} [\".arrow.flight.protocol.sql.experimental\"] MessageOptions .arrow.flight.protocol.sql.experimental\n             */\n\n            /**\n             * Constructs a new MessageOptions.\n             * @memberof google.protobuf\n             * @classdesc Represents a MessageOptions.\n             * @implements IMessageOptions\n             * @constructor\n             * @param {google.protobuf.IMessageOptions=} [properties] Properties to set\n             */\n            function MessageOptions(properties) {\n                this.uninterpretedOption = [];\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             * MessageOptions messageSetWireFormat.\n             * @member {boolean} messageSetWireFormat\n             * @memberof google.protobuf.MessageOptions\n             * @instance\n             */\n            MessageOptions.prototype.messageSetWireFormat = false;\n\n            /**\n             * MessageOptions noStandardDescriptorAccessor.\n             * @member {boolean} noStandardDescriptorAccessor\n             * @memberof google.protobuf.MessageOptions\n             * @instance\n             */\n            MessageOptions.prototype.noStandardDescriptorAccessor = false;\n\n            /**\n             * MessageOptions deprecated.\n             * @member {boolean} deprecated\n             * @memberof google.protobuf.MessageOptions\n             * @instance\n             */\n            MessageOptions.prototype.deprecated = false;\n\n            /**\n             * MessageOptions mapEntry.\n             * @member {boolean} mapEntry\n             * @memberof google.protobuf.MessageOptions\n             * @instance\n             */\n            MessageOptions.prototype.mapEntry = false;\n\n            /**\n             * MessageOptions uninterpretedOption.\n             * @member {Array.<google.protobuf.IUninterpretedOption>} uninterpretedOption\n             * @memberof google.protobuf.MessageOptions\n             * @instance\n             */\n            MessageOptions.prototype.uninterpretedOption = $util.emptyArray;\n\n            /**\n             * MessageOptions .arrow.flight.protocol.sql.experimental.\n             * @member {boolean} .arrow.flight.protocol.sql.experimental\n             * @memberof google.protobuf.MessageOptions\n             * @instance\n             */\n            MessageOptions.prototype[\".arrow.flight.protocol.sql.experimental\"] = false;\n\n            /**\n             * Creates a new MessageOptions instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.MessageOptions\n             * @static\n             * @param {google.protobuf.IMessageOptions=} [properties] Properties to set\n             * @returns {google.protobuf.MessageOptions} MessageOptions instance\n             */\n            MessageOptions.create = function create(properties) {\n                return new MessageOptions(properties);\n            };\n\n            /**\n             * Encodes the specified MessageOptions message. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.MessageOptions\n             * @static\n             * @param {google.protobuf.IMessageOptions} message MessageOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            MessageOptions.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.messageSetWireFormat != null && Object.hasOwnProperty.call(message, \"messageSetWireFormat\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).bool(message.messageSetWireFormat);\n                if (message.noStandardDescriptorAccessor != null && Object.hasOwnProperty.call(message, \"noStandardDescriptorAccessor\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).bool(message.noStandardDescriptorAccessor);\n                if (message.deprecated != null && Object.hasOwnProperty.call(message, \"deprecated\"))\n                    writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated);\n                if (message.mapEntry != null && Object.hasOwnProperty.call(message, \"mapEntry\"))\n                    writer.uint32(/* id 7, wireType 0 =*/56).bool(message.mapEntry);\n                if (message.uninterpretedOption != null && message.uninterpretedOption.length)\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i)\n                        $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim();\n                if (message[\".arrow.flight.protocol.sql.experimental\"] != null && Object.hasOwnProperty.call(message, \".arrow.flight.protocol.sql.experimental\"))\n                    writer.uint32(/* id 1000, wireType 0 =*/8000).bool(message[\".arrow.flight.protocol.sql.experimental\"]);\n                return writer;\n            };\n\n            /**\n             * Encodes the specified MessageOptions message, length delimited. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.MessageOptions\n             * @static\n             * @param {google.protobuf.IMessageOptions} message MessageOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            MessageOptions.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes a MessageOptions message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.MessageOptions\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 {google.protobuf.MessageOptions} MessageOptions\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            MessageOptions.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.google.protobuf.MessageOptions();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1: {\n                            message.messageSetWireFormat = reader.bool();\n                            break;\n                        }\n                    case 2: {\n                            message.noStandardDescriptorAccessor = reader.bool();\n                            break;\n                        }\n                    case 3: {\n                            message.deprecated = reader.bool();\n                            break;\n                        }\n                    case 7: {\n                            message.mapEntry = reader.bool();\n                            break;\n                        }\n                    case 999: {\n                            if (!(message.uninterpretedOption && message.uninterpretedOption.length))\n                                message.uninterpretedOption = [];\n                            message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 1000: {\n                            message[\".arrow.flight.protocol.sql.experimental\"] = reader.bool();\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes a MessageOptions message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.MessageOptions\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.MessageOptions} MessageOptions\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            MessageOptions.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 MessageOptions message.\n             * @function verify\n             * @memberof google.protobuf.MessageOptions\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            MessageOptions.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.messageSetWireFormat != null && message.hasOwnProperty(\"messageSetWireFormat\"))\n                    if (typeof message.messageSetWireFormat !== \"boolean\")\n                        return \"messageSetWireFormat: boolean expected\";\n                if (message.noStandardDescriptorAccessor != null && message.hasOwnProperty(\"noStandardDescriptorAccessor\"))\n                    if (typeof message.noStandardDescriptorAccessor !== \"boolean\")\n                        return \"noStandardDescriptorAccessor: boolean expected\";\n                if (message.deprecated != null && message.hasOwnProperty(\"deprecated\"))\n                    if (typeof message.deprecated !== \"boolean\")\n                        return \"deprecated: boolean expected\";\n                if (message.mapEntry != null && message.hasOwnProperty(\"mapEntry\"))\n                    if (typeof message.mapEntry !== \"boolean\")\n                        return \"mapEntry: boolean expected\";\n                if (message.uninterpretedOption != null && message.hasOwnProperty(\"uninterpretedOption\")) {\n                    if (!Array.isArray(message.uninterpretedOption))\n                        return \"uninterpretedOption: array expected\";\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i) {\n                        var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]);\n                        if (error)\n                            return \"uninterpretedOption.\" + error;\n                    }\n                }\n                if (message[\".arrow.flight.protocol.sql.experimental\"] != null && message.hasOwnProperty(\".arrow.flight.protocol.sql.experimental\"))\n                    if (typeof message[\".arrow.flight.protocol.sql.experimental\"] !== \"boolean\")\n                        return \".arrow.flight.protocol.sql.experimental: boolean expected\";\n                return null;\n            };\n\n            /**\n             * Creates a MessageOptions message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.MessageOptions\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.MessageOptions} MessageOptions\n             */\n            MessageOptions.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.MessageOptions)\n                    return object;\n                var message = new $root.google.protobuf.MessageOptions();\n                if (object.messageSetWireFormat != null)\n                    message.messageSetWireFormat = Boolean(object.messageSetWireFormat);\n                if (object.noStandardDescriptorAccessor != null)\n                    message.noStandardDescriptorAccessor = Boolean(object.noStandardDescriptorAccessor);\n                if (object.deprecated != null)\n                    message.deprecated = Boolean(object.deprecated);\n                if (object.mapEntry != null)\n                    message.mapEntry = Boolean(object.mapEntry);\n                if (object.uninterpretedOption) {\n                    if (!Array.isArray(object.uninterpretedOption))\n                        throw TypeError(\".google.protobuf.MessageOptions.uninterpretedOption: array expected\");\n                    message.uninterpretedOption = [];\n                    for (var i = 0; i < object.uninterpretedOption.length; ++i) {\n                        if (typeof object.uninterpretedOption[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.MessageOptions.uninterpretedOption: object expected\");\n                        message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]);\n                    }\n                }\n                if (object[\".arrow.flight.protocol.sql.experimental\"] != null)\n                    message[\".arrow.flight.protocol.sql.experimental\"] = Boolean(object[\".arrow.flight.protocol.sql.experimental\"]);\n                return message;\n            };\n\n            /**\n             * Creates a plain object from a MessageOptions message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.MessageOptions\n             * @static\n             * @param {google.protobuf.MessageOptions} message MessageOptions\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            MessageOptions.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.uninterpretedOption = [];\n                if (options.defaults) {\n                    object.messageSetWireFormat = false;\n                    object.noStandardDescriptorAccessor = false;\n                    object.deprecated = false;\n                    object.mapEntry = false;\n                    object[\".arrow.flight.protocol.sql.experimental\"] = false;\n                }\n                if (message.messageSetWireFormat != null && message.hasOwnProperty(\"messageSetWireFormat\"))\n                    object.messageSetWireFormat = message.messageSetWireFormat;\n                if (message.noStandardDescriptorAccessor != null && message.hasOwnProperty(\"noStandardDescriptorAccessor\"))\n                    object.noStandardDescriptorAccessor = message.noStandardDescriptorAccessor;\n                if (message.deprecated != null && message.hasOwnProperty(\"deprecated\"))\n                    object.deprecated = message.deprecated;\n                if (message.mapEntry != null && message.hasOwnProperty(\"mapEntry\"))\n                    object.mapEntry = message.mapEntry;\n                if (message.uninterpretedOption && message.uninterpretedOption.length) {\n                    object.uninterpretedOption = [];\n                    for (var j = 0; j < message.uninterpretedOption.length; ++j)\n                        object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options);\n                }\n                if (message[\".arrow.flight.protocol.sql.experimental\"] != null && message.hasOwnProperty(\".arrow.flight.protocol.sql.experimental\"))\n                    object[\".arrow.flight.protocol.sql.experimental\"] = message[\".arrow.flight.protocol.sql.experimental\"];\n                return object;\n            };\n\n            /**\n             * Converts this MessageOptions to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.MessageOptions\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            MessageOptions.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for MessageOptions\n             * @function getTypeUrl\n             * @memberof google.protobuf.MessageOptions\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            MessageOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.MessageOptions\";\n            };\n\n            return MessageOptions;\n        })();\n\n        protobuf.FieldOptions = (function() {\n\n            /**\n             * Properties of a FieldOptions.\n             * @memberof google.protobuf\n             * @interface IFieldOptions\n             * @property {google.protobuf.FieldOptions.CType|null} [ctype] FieldOptions ctype\n             * @property {boolean|null} [packed] FieldOptions packed\n             * @property {google.protobuf.FieldOptions.JSType|null} [jstype] FieldOptions jstype\n             * @property {boolean|null} [lazy] FieldOptions lazy\n             * @property {boolean|null} [deprecated] FieldOptions deprecated\n             * @property {boolean|null} [weak] FieldOptions weak\n             * @property {Array.<google.protobuf.IUninterpretedOption>|null} [uninterpretedOption] FieldOptions uninterpretedOption\n             */\n\n            /**\n             * Constructs a new FieldOptions.\n             * @memberof google.protobuf\n             * @classdesc Represents a FieldOptions.\n             * @implements IFieldOptions\n             * @constructor\n             * @param {google.protobuf.IFieldOptions=} [properties] Properties to set\n             */\n            function FieldOptions(properties) {\n                this.uninterpretedOption = [];\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             * FieldOptions ctype.\n             * @member {google.protobuf.FieldOptions.CType} ctype\n             * @memberof google.protobuf.FieldOptions\n             * @instance\n             */\n            FieldOptions.prototype.ctype = 0;\n\n            /**\n             * FieldOptions packed.\n             * @member {boolean} packed\n             * @memberof google.protobuf.FieldOptions\n             * @instance\n             */\n            FieldOptions.prototype.packed = false;\n\n            /**\n             * FieldOptions jstype.\n             * @member {google.protobuf.FieldOptions.JSType} jstype\n             * @memberof google.protobuf.FieldOptions\n             * @instance\n             */\n            FieldOptions.prototype.jstype = 0;\n\n            /**\n             * FieldOptions lazy.\n             * @member {boolean} lazy\n             * @memberof google.protobuf.FieldOptions\n             * @instance\n             */\n            FieldOptions.prototype.lazy = false;\n\n            /**\n             * FieldOptions deprecated.\n             * @member {boolean} deprecated\n             * @memberof google.protobuf.FieldOptions\n             * @instance\n             */\n            FieldOptions.prototype.deprecated = false;\n\n            /**\n             * FieldOptions weak.\n             * @member {boolean} weak\n             * @memberof google.protobuf.FieldOptions\n             * @instance\n             */\n            FieldOptions.prototype.weak = false;\n\n            /**\n             * FieldOptions uninterpretedOption.\n             * @member {Array.<google.protobuf.IUninterpretedOption>} uninterpretedOption\n             * @memberof google.protobuf.FieldOptions\n             * @instance\n             */\n            FieldOptions.prototype.uninterpretedOption = $util.emptyArray;\n\n            /**\n             * Creates a new FieldOptions instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.FieldOptions\n             * @static\n             * @param {google.protobuf.IFieldOptions=} [properties] Properties to set\n             * @returns {google.protobuf.FieldOptions} FieldOptions instance\n             */\n            FieldOptions.create = function create(properties) {\n                return new FieldOptions(properties);\n            };\n\n            /**\n             * Encodes the specified FieldOptions message. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.FieldOptions\n             * @static\n             * @param {google.protobuf.IFieldOptions} message FieldOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FieldOptions.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.ctype != null && Object.hasOwnProperty.call(message, \"ctype\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.ctype);\n                if (message.packed != null && Object.hasOwnProperty.call(message, \"packed\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).bool(message.packed);\n                if (message.deprecated != null && Object.hasOwnProperty.call(message, \"deprecated\"))\n                    writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated);\n                if (message.lazy != null && Object.hasOwnProperty.call(message, \"lazy\"))\n                    writer.uint32(/* id 5, wireType 0 =*/40).bool(message.lazy);\n                if (message.jstype != null && Object.hasOwnProperty.call(message, \"jstype\"))\n                    writer.uint32(/* id 6, wireType 0 =*/48).int32(message.jstype);\n                if (message.weak != null && Object.hasOwnProperty.call(message, \"weak\"))\n                    writer.uint32(/* id 10, wireType 0 =*/80).bool(message.weak);\n                if (message.uninterpretedOption != null && message.uninterpretedOption.length)\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i)\n                        $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim();\n                return writer;\n            };\n\n            /**\n             * Encodes the specified FieldOptions message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.FieldOptions\n             * @static\n             * @param {google.protobuf.IFieldOptions} message FieldOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            FieldOptions.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes a FieldOptions message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.FieldOptions\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 {google.protobuf.FieldOptions} FieldOptions\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            FieldOptions.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.google.protobuf.FieldOptions();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1: {\n                            message.ctype = reader.int32();\n                            break;\n                        }\n                    case 2: {\n                            message.packed = reader.bool();\n                            break;\n                        }\n                    case 6: {\n                            message.jstype = reader.int32();\n                            break;\n                        }\n                    case 5: {\n                            message.lazy = reader.bool();\n                            break;\n                        }\n                    case 3: {\n                            message.deprecated = reader.bool();\n                            break;\n                        }\n                    case 10: {\n                            message.weak = reader.bool();\n                            break;\n                        }\n                    case 999: {\n                            if (!(message.uninterpretedOption && message.uninterpretedOption.length))\n                                message.uninterpretedOption = [];\n                            message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes a FieldOptions message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.FieldOptions\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.FieldOptions} FieldOptions\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            FieldOptions.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 FieldOptions message.\n             * @function verify\n             * @memberof google.protobuf.FieldOptions\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            FieldOptions.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.ctype != null && message.hasOwnProperty(\"ctype\"))\n                    switch (message.ctype) {\n                    default:\n                        return \"ctype: enum value expected\";\n                    case 0:\n                    case 1:\n                    case 2:\n                        break;\n                    }\n                if (message.packed != null && message.hasOwnProperty(\"packed\"))\n                    if (typeof message.packed !== \"boolean\")\n                        return \"packed: boolean expected\";\n                if (message.jstype != null && message.hasOwnProperty(\"jstype\"))\n                    switch (message.jstype) {\n                    default:\n                        return \"jstype: enum value expected\";\n                    case 0:\n                    case 1:\n                    case 2:\n                        break;\n                    }\n                if (message.lazy != null && message.hasOwnProperty(\"lazy\"))\n                    if (typeof message.lazy !== \"boolean\")\n                        return \"lazy: boolean expected\";\n                if (message.deprecated != null && message.hasOwnProperty(\"deprecated\"))\n                    if (typeof message.deprecated !== \"boolean\")\n                        return \"deprecated: boolean expected\";\n                if (message.weak != null && message.hasOwnProperty(\"weak\"))\n                    if (typeof message.weak !== \"boolean\")\n                        return \"weak: boolean expected\";\n                if (message.uninterpretedOption != null && message.hasOwnProperty(\"uninterpretedOption\")) {\n                    if (!Array.isArray(message.uninterpretedOption))\n                        return \"uninterpretedOption: array expected\";\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i) {\n                        var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]);\n                        if (error)\n                            return \"uninterpretedOption.\" + error;\n                    }\n                }\n                return null;\n            };\n\n            /**\n             * Creates a FieldOptions message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.FieldOptions\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.FieldOptions} FieldOptions\n             */\n            FieldOptions.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.FieldOptions)\n                    return object;\n                var message = new $root.google.protobuf.FieldOptions();\n                switch (object.ctype) {\n                default:\n                    if (typeof object.ctype === \"number\") {\n                        message.ctype = object.ctype;\n                        break;\n                    }\n                    break;\n                case \"STRING\":\n                case 0:\n                    message.ctype = 0;\n                    break;\n                case \"CORD\":\n                case 1:\n                    message.ctype = 1;\n                    break;\n                case \"STRING_PIECE\":\n                case 2:\n                    message.ctype = 2;\n                    break;\n                }\n                if (object.packed != null)\n                    message.packed = Boolean(object.packed);\n                switch (object.jstype) {\n                default:\n                    if (typeof object.jstype === \"number\") {\n                        message.jstype = object.jstype;\n                        break;\n                    }\n                    break;\n                case \"JS_NORMAL\":\n                case 0:\n                    message.jstype = 0;\n                    break;\n                case \"JS_STRING\":\n                case 1:\n                    message.jstype = 1;\n                    break;\n                case \"JS_NUMBER\":\n                case 2:\n                    message.jstype = 2;\n                    break;\n                }\n                if (object.lazy != null)\n                    message.lazy = Boolean(object.lazy);\n                if (object.deprecated != null)\n                    message.deprecated = Boolean(object.deprecated);\n                if (object.weak != null)\n                    message.weak = Boolean(object.weak);\n                if (object.uninterpretedOption) {\n                    if (!Array.isArray(object.uninterpretedOption))\n                        throw TypeError(\".google.protobuf.FieldOptions.uninterpretedOption: array expected\");\n                    message.uninterpretedOption = [];\n                    for (var i = 0; i < object.uninterpretedOption.length; ++i) {\n                        if (typeof object.uninterpretedOption[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.FieldOptions.uninterpretedOption: object expected\");\n                        message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]);\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from a FieldOptions message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.FieldOptions\n             * @static\n             * @param {google.protobuf.FieldOptions} message FieldOptions\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            FieldOptions.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.uninterpretedOption = [];\n                if (options.defaults) {\n                    object.ctype = options.enums === String ? \"STRING\" : 0;\n                    object.packed = false;\n                    object.deprecated = false;\n                    object.lazy = false;\n                    object.jstype = options.enums === String ? \"JS_NORMAL\" : 0;\n                    object.weak = false;\n                }\n                if (message.ctype != null && message.hasOwnProperty(\"ctype\"))\n                    object.ctype = options.enums === String ? $root.google.protobuf.FieldOptions.CType[message.ctype] === undefined ? message.ctype : $root.google.protobuf.FieldOptions.CType[message.ctype] : message.ctype;\n                if (message.packed != null && message.hasOwnProperty(\"packed\"))\n                    object.packed = message.packed;\n                if (message.deprecated != null && message.hasOwnProperty(\"deprecated\"))\n                    object.deprecated = message.deprecated;\n                if (message.lazy != null && message.hasOwnProperty(\"lazy\"))\n                    object.lazy = message.lazy;\n                if (message.jstype != null && message.hasOwnProperty(\"jstype\"))\n                    object.jstype = options.enums === String ? $root.google.protobuf.FieldOptions.JSType[message.jstype] === undefined ? message.jstype : $root.google.protobuf.FieldOptions.JSType[message.jstype] : message.jstype;\n                if (message.weak != null && message.hasOwnProperty(\"weak\"))\n                    object.weak = message.weak;\n                if (message.uninterpretedOption && message.uninterpretedOption.length) {\n                    object.uninterpretedOption = [];\n                    for (var j = 0; j < message.uninterpretedOption.length; ++j)\n                        object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options);\n                }\n                return object;\n            };\n\n            /**\n             * Converts this FieldOptions to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.FieldOptions\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            FieldOptions.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for FieldOptions\n             * @function getTypeUrl\n             * @memberof google.protobuf.FieldOptions\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            FieldOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.FieldOptions\";\n            };\n\n            /**\n             * CType enum.\n             * @name google.protobuf.FieldOptions.CType\n             * @enum {number}\n             * @property {number} STRING=0 STRING value\n             * @property {number} CORD=1 CORD value\n             * @property {number} STRING_PIECE=2 STRING_PIECE value\n             */\n            FieldOptions.CType = (function() {\n                var valuesById = {}, values = Object.create(valuesById);\n                values[valuesById[0] = \"STRING\"] = 0;\n                values[valuesById[1] = \"CORD\"] = 1;\n                values[valuesById[2] = \"STRING_PIECE\"] = 2;\n                return values;\n            })();\n\n            /**\n             * JSType enum.\n             * @name google.protobuf.FieldOptions.JSType\n             * @enum {number}\n             * @property {number} JS_NORMAL=0 JS_NORMAL value\n             * @property {number} JS_STRING=1 JS_STRING value\n             * @property {number} JS_NUMBER=2 JS_NUMBER value\n             */\n            FieldOptions.JSType = (function() {\n                var valuesById = {}, values = Object.create(valuesById);\n                values[valuesById[0] = \"JS_NORMAL\"] = 0;\n                values[valuesById[1] = \"JS_STRING\"] = 1;\n                values[valuesById[2] = \"JS_NUMBER\"] = 2;\n                return values;\n            })();\n\n            return FieldOptions;\n        })();\n\n        protobuf.OneofOptions = (function() {\n\n            /**\n             * Properties of an OneofOptions.\n             * @memberof google.protobuf\n             * @interface IOneofOptions\n             * @property {Array.<google.protobuf.IUninterpretedOption>|null} [uninterpretedOption] OneofOptions uninterpretedOption\n             */\n\n            /**\n             * Constructs a new OneofOptions.\n             * @memberof google.protobuf\n             * @classdesc Represents an OneofOptions.\n             * @implements IOneofOptions\n             * @constructor\n             * @param {google.protobuf.IOneofOptions=} [properties] Properties to set\n             */\n            function OneofOptions(properties) {\n                this.uninterpretedOption = [];\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             * OneofOptions uninterpretedOption.\n             * @member {Array.<google.protobuf.IUninterpretedOption>} uninterpretedOption\n             * @memberof google.protobuf.OneofOptions\n             * @instance\n             */\n            OneofOptions.prototype.uninterpretedOption = $util.emptyArray;\n\n            /**\n             * Creates a new OneofOptions instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.OneofOptions\n             * @static\n             * @param {google.protobuf.IOneofOptions=} [properties] Properties to set\n             * @returns {google.protobuf.OneofOptions} OneofOptions instance\n             */\n            OneofOptions.create = function create(properties) {\n                return new OneofOptions(properties);\n            };\n\n            /**\n             * Encodes the specified OneofOptions message. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.OneofOptions\n             * @static\n             * @param {google.protobuf.IOneofOptions} message OneofOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            OneofOptions.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.uninterpretedOption != null && message.uninterpretedOption.length)\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i)\n                        $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim();\n                return writer;\n            };\n\n            /**\n             * Encodes the specified OneofOptions message, length delimited. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.OneofOptions\n             * @static\n             * @param {google.protobuf.IOneofOptions} message OneofOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            OneofOptions.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes an OneofOptions message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.OneofOptions\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 {google.protobuf.OneofOptions} OneofOptions\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            OneofOptions.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.google.protobuf.OneofOptions();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 999: {\n                            if (!(message.uninterpretedOption && message.uninterpretedOption.length))\n                                message.uninterpretedOption = [];\n                            message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes an OneofOptions message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.OneofOptions\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.OneofOptions} OneofOptions\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            OneofOptions.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 OneofOptions message.\n             * @function verify\n             * @memberof google.protobuf.OneofOptions\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            OneofOptions.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.uninterpretedOption != null && message.hasOwnProperty(\"uninterpretedOption\")) {\n                    if (!Array.isArray(message.uninterpretedOption))\n                        return \"uninterpretedOption: array expected\";\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i) {\n                        var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]);\n                        if (error)\n                            return \"uninterpretedOption.\" + error;\n                    }\n                }\n                return null;\n            };\n\n            /**\n             * Creates an OneofOptions message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.OneofOptions\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.OneofOptions} OneofOptions\n             */\n            OneofOptions.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.OneofOptions)\n                    return object;\n                var message = new $root.google.protobuf.OneofOptions();\n                if (object.uninterpretedOption) {\n                    if (!Array.isArray(object.uninterpretedOption))\n                        throw TypeError(\".google.protobuf.OneofOptions.uninterpretedOption: array expected\");\n                    message.uninterpretedOption = [];\n                    for (var i = 0; i < object.uninterpretedOption.length; ++i) {\n                        if (typeof object.uninterpretedOption[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.OneofOptions.uninterpretedOption: object expected\");\n                        message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]);\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from an OneofOptions message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.OneofOptions\n             * @static\n             * @param {google.protobuf.OneofOptions} message OneofOptions\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            OneofOptions.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.uninterpretedOption = [];\n                if (message.uninterpretedOption && message.uninterpretedOption.length) {\n                    object.uninterpretedOption = [];\n                    for (var j = 0; j < message.uninterpretedOption.length; ++j)\n                        object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options);\n                }\n                return object;\n            };\n\n            /**\n             * Converts this OneofOptions to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.OneofOptions\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            OneofOptions.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for OneofOptions\n             * @function getTypeUrl\n             * @memberof google.protobuf.OneofOptions\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            OneofOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.OneofOptions\";\n            };\n\n            return OneofOptions;\n        })();\n\n        protobuf.EnumOptions = (function() {\n\n            /**\n             * Properties of an EnumOptions.\n             * @memberof google.protobuf\n             * @interface IEnumOptions\n             * @property {boolean|null} [allowAlias] EnumOptions allowAlias\n             * @property {boolean|null} [deprecated] EnumOptions deprecated\n             * @property {Array.<google.protobuf.IUninterpretedOption>|null} [uninterpretedOption] EnumOptions uninterpretedOption\n             */\n\n            /**\n             * Constructs a new EnumOptions.\n             * @memberof google.protobuf\n             * @classdesc Represents an EnumOptions.\n             * @implements IEnumOptions\n             * @constructor\n             * @param {google.protobuf.IEnumOptions=} [properties] Properties to set\n             */\n            function EnumOptions(properties) {\n                this.uninterpretedOption = [];\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             * EnumOptions allowAlias.\n             * @member {boolean} allowAlias\n             * @memberof google.protobuf.EnumOptions\n             * @instance\n             */\n            EnumOptions.prototype.allowAlias = false;\n\n            /**\n             * EnumOptions deprecated.\n             * @member {boolean} deprecated\n             * @memberof google.protobuf.EnumOptions\n             * @instance\n             */\n            EnumOptions.prototype.deprecated = false;\n\n            /**\n             * EnumOptions uninterpretedOption.\n             * @member {Array.<google.protobuf.IUninterpretedOption>} uninterpretedOption\n             * @memberof google.protobuf.EnumOptions\n             * @instance\n             */\n            EnumOptions.prototype.uninterpretedOption = $util.emptyArray;\n\n            /**\n             * Creates a new EnumOptions instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.EnumOptions\n             * @static\n             * @param {google.protobuf.IEnumOptions=} [properties] Properties to set\n             * @returns {google.protobuf.EnumOptions} EnumOptions instance\n             */\n            EnumOptions.create = function create(properties) {\n                return new EnumOptions(properties);\n            };\n\n            /**\n             * Encodes the specified EnumOptions message. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.EnumOptions\n             * @static\n             * @param {google.protobuf.IEnumOptions} message EnumOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            EnumOptions.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.allowAlias != null && Object.hasOwnProperty.call(message, \"allowAlias\"))\n                    writer.uint32(/* id 2, wireType 0 =*/16).bool(message.allowAlias);\n                if (message.deprecated != null && Object.hasOwnProperty.call(message, \"deprecated\"))\n                    writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated);\n                if (message.uninterpretedOption != null && message.uninterpretedOption.length)\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i)\n                        $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim();\n                return writer;\n            };\n\n            /**\n             * Encodes the specified EnumOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.EnumOptions\n             * @static\n             * @param {google.protobuf.IEnumOptions} message EnumOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            EnumOptions.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes an EnumOptions message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.EnumOptions\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 {google.protobuf.EnumOptions} EnumOptions\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            EnumOptions.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.google.protobuf.EnumOptions();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 2: {\n                            message.allowAlias = reader.bool();\n                            break;\n                        }\n                    case 3: {\n                            message.deprecated = reader.bool();\n                            break;\n                        }\n                    case 999: {\n                            if (!(message.uninterpretedOption && message.uninterpretedOption.length))\n                                message.uninterpretedOption = [];\n                            message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes an EnumOptions message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.EnumOptions\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.EnumOptions} EnumOptions\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            EnumOptions.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 EnumOptions message.\n             * @function verify\n             * @memberof google.protobuf.EnumOptions\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            EnumOptions.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.allowAlias != null && message.hasOwnProperty(\"allowAlias\"))\n                    if (typeof message.allowAlias !== \"boolean\")\n                        return \"allowAlias: boolean expected\";\n                if (message.deprecated != null && message.hasOwnProperty(\"deprecated\"))\n                    if (typeof message.deprecated !== \"boolean\")\n                        return \"deprecated: boolean expected\";\n                if (message.uninterpretedOption != null && message.hasOwnProperty(\"uninterpretedOption\")) {\n                    if (!Array.isArray(message.uninterpretedOption))\n                        return \"uninterpretedOption: array expected\";\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i) {\n                        var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]);\n                        if (error)\n                            return \"uninterpretedOption.\" + error;\n                    }\n                }\n                return null;\n            };\n\n            /**\n             * Creates an EnumOptions message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.EnumOptions\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.EnumOptions} EnumOptions\n             */\n            EnumOptions.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.EnumOptions)\n                    return object;\n                var message = new $root.google.protobuf.EnumOptions();\n                if (object.allowAlias != null)\n                    message.allowAlias = Boolean(object.allowAlias);\n                if (object.deprecated != null)\n                    message.deprecated = Boolean(object.deprecated);\n                if (object.uninterpretedOption) {\n                    if (!Array.isArray(object.uninterpretedOption))\n                        throw TypeError(\".google.protobuf.EnumOptions.uninterpretedOption: array expected\");\n                    message.uninterpretedOption = [];\n                    for (var i = 0; i < object.uninterpretedOption.length; ++i) {\n                        if (typeof object.uninterpretedOption[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.EnumOptions.uninterpretedOption: object expected\");\n                        message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]);\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from an EnumOptions message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.EnumOptions\n             * @static\n             * @param {google.protobuf.EnumOptions} message EnumOptions\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            EnumOptions.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.uninterpretedOption = [];\n                if (options.defaults) {\n                    object.allowAlias = false;\n                    object.deprecated = false;\n                }\n                if (message.allowAlias != null && message.hasOwnProperty(\"allowAlias\"))\n                    object.allowAlias = message.allowAlias;\n                if (message.deprecated != null && message.hasOwnProperty(\"deprecated\"))\n                    object.deprecated = message.deprecated;\n                if (message.uninterpretedOption && message.uninterpretedOption.length) {\n                    object.uninterpretedOption = [];\n                    for (var j = 0; j < message.uninterpretedOption.length; ++j)\n                        object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options);\n                }\n                return object;\n            };\n\n            /**\n             * Converts this EnumOptions to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.EnumOptions\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            EnumOptions.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for EnumOptions\n             * @function getTypeUrl\n             * @memberof google.protobuf.EnumOptions\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            EnumOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.EnumOptions\";\n            };\n\n            return EnumOptions;\n        })();\n\n        protobuf.EnumValueOptions = (function() {\n\n            /**\n             * Properties of an EnumValueOptions.\n             * @memberof google.protobuf\n             * @interface IEnumValueOptions\n             * @property {boolean|null} [deprecated] EnumValueOptions deprecated\n             * @property {Array.<google.protobuf.IUninterpretedOption>|null} [uninterpretedOption] EnumValueOptions uninterpretedOption\n             */\n\n            /**\n             * Constructs a new EnumValueOptions.\n             * @memberof google.protobuf\n             * @classdesc Represents an EnumValueOptions.\n             * @implements IEnumValueOptions\n             * @constructor\n             * @param {google.protobuf.IEnumValueOptions=} [properties] Properties to set\n             */\n            function EnumValueOptions(properties) {\n                this.uninterpretedOption = [];\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             * EnumValueOptions deprecated.\n             * @member {boolean} deprecated\n             * @memberof google.protobuf.EnumValueOptions\n             * @instance\n             */\n            EnumValueOptions.prototype.deprecated = false;\n\n            /**\n             * EnumValueOptions uninterpretedOption.\n             * @member {Array.<google.protobuf.IUninterpretedOption>} uninterpretedOption\n             * @memberof google.protobuf.EnumValueOptions\n             * @instance\n             */\n            EnumValueOptions.prototype.uninterpretedOption = $util.emptyArray;\n\n            /**\n             * Creates a new EnumValueOptions instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.EnumValueOptions\n             * @static\n             * @param {google.protobuf.IEnumValueOptions=} [properties] Properties to set\n             * @returns {google.protobuf.EnumValueOptions} EnumValueOptions instance\n             */\n            EnumValueOptions.create = function create(properties) {\n                return new EnumValueOptions(properties);\n            };\n\n            /**\n             * Encodes the specified EnumValueOptions message. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.EnumValueOptions\n             * @static\n             * @param {google.protobuf.IEnumValueOptions} message EnumValueOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            EnumValueOptions.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.deprecated != null && Object.hasOwnProperty.call(message, \"deprecated\"))\n                    writer.uint32(/* id 1, wireType 0 =*/8).bool(message.deprecated);\n                if (message.uninterpretedOption != null && message.uninterpretedOption.length)\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i)\n                        $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim();\n                return writer;\n            };\n\n            /**\n             * Encodes the specified EnumValueOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.EnumValueOptions\n             * @static\n             * @param {google.protobuf.IEnumValueOptions} message EnumValueOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            EnumValueOptions.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes an EnumValueOptions message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.EnumValueOptions\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 {google.protobuf.EnumValueOptions} EnumValueOptions\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            EnumValueOptions.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.google.protobuf.EnumValueOptions();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1: {\n                            message.deprecated = reader.bool();\n                            break;\n                        }\n                    case 999: {\n                            if (!(message.uninterpretedOption && message.uninterpretedOption.length))\n                                message.uninterpretedOption = [];\n                            message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes an EnumValueOptions message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.EnumValueOptions\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.EnumValueOptions} EnumValueOptions\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            EnumValueOptions.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 EnumValueOptions message.\n             * @function verify\n             * @memberof google.protobuf.EnumValueOptions\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            EnumValueOptions.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.deprecated != null && message.hasOwnProperty(\"deprecated\"))\n                    if (typeof message.deprecated !== \"boolean\")\n                        return \"deprecated: boolean expected\";\n                if (message.uninterpretedOption != null && message.hasOwnProperty(\"uninterpretedOption\")) {\n                    if (!Array.isArray(message.uninterpretedOption))\n                        return \"uninterpretedOption: array expected\";\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i) {\n                        var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]);\n                        if (error)\n                            return \"uninterpretedOption.\" + error;\n                    }\n                }\n                return null;\n            };\n\n            /**\n             * Creates an EnumValueOptions message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.EnumValueOptions\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.EnumValueOptions} EnumValueOptions\n             */\n            EnumValueOptions.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.EnumValueOptions)\n                    return object;\n                var message = new $root.google.protobuf.EnumValueOptions();\n                if (object.deprecated != null)\n                    message.deprecated = Boolean(object.deprecated);\n                if (object.uninterpretedOption) {\n                    if (!Array.isArray(object.uninterpretedOption))\n                        throw TypeError(\".google.protobuf.EnumValueOptions.uninterpretedOption: array expected\");\n                    message.uninterpretedOption = [];\n                    for (var i = 0; i < object.uninterpretedOption.length; ++i) {\n                        if (typeof object.uninterpretedOption[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.EnumValueOptions.uninterpretedOption: object expected\");\n                        message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]);\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from an EnumValueOptions message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.EnumValueOptions\n             * @static\n             * @param {google.protobuf.EnumValueOptions} message EnumValueOptions\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            EnumValueOptions.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.uninterpretedOption = [];\n                if (options.defaults)\n                    object.deprecated = false;\n                if (message.deprecated != null && message.hasOwnProperty(\"deprecated\"))\n                    object.deprecated = message.deprecated;\n                if (message.uninterpretedOption && message.uninterpretedOption.length) {\n                    object.uninterpretedOption = [];\n                    for (var j = 0; j < message.uninterpretedOption.length; ++j)\n                        object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options);\n                }\n                return object;\n            };\n\n            /**\n             * Converts this EnumValueOptions to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.EnumValueOptions\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            EnumValueOptions.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for EnumValueOptions\n             * @function getTypeUrl\n             * @memberof google.protobuf.EnumValueOptions\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            EnumValueOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.EnumValueOptions\";\n            };\n\n            return EnumValueOptions;\n        })();\n\n        protobuf.ServiceOptions = (function() {\n\n            /**\n             * Properties of a ServiceOptions.\n             * @memberof google.protobuf\n             * @interface IServiceOptions\n             * @property {boolean|null} [deprecated] ServiceOptions deprecated\n             * @property {Array.<google.protobuf.IUninterpretedOption>|null} [uninterpretedOption] ServiceOptions uninterpretedOption\n             */\n\n            /**\n             * Constructs a new ServiceOptions.\n             * @memberof google.protobuf\n             * @classdesc Represents a ServiceOptions.\n             * @implements IServiceOptions\n             * @constructor\n             * @param {google.protobuf.IServiceOptions=} [properties] Properties to set\n             */\n            function ServiceOptions(properties) {\n                this.uninterpretedOption = [];\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             * ServiceOptions deprecated.\n             * @member {boolean} deprecated\n             * @memberof google.protobuf.ServiceOptions\n             * @instance\n             */\n            ServiceOptions.prototype.deprecated = false;\n\n            /**\n             * ServiceOptions uninterpretedOption.\n             * @member {Array.<google.protobuf.IUninterpretedOption>} uninterpretedOption\n             * @memberof google.protobuf.ServiceOptions\n             * @instance\n             */\n            ServiceOptions.prototype.uninterpretedOption = $util.emptyArray;\n\n            /**\n             * Creates a new ServiceOptions instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.ServiceOptions\n             * @static\n             * @param {google.protobuf.IServiceOptions=} [properties] Properties to set\n             * @returns {google.protobuf.ServiceOptions} ServiceOptions instance\n             */\n            ServiceOptions.create = function create(properties) {\n                return new ServiceOptions(properties);\n            };\n\n            /**\n             * Encodes the specified ServiceOptions message. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.ServiceOptions\n             * @static\n             * @param {google.protobuf.IServiceOptions} message ServiceOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            ServiceOptions.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.deprecated != null && Object.hasOwnProperty.call(message, \"deprecated\"))\n                    writer.uint32(/* id 33, wireType 0 =*/264).bool(message.deprecated);\n                if (message.uninterpretedOption != null && message.uninterpretedOption.length)\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i)\n                        $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim();\n                return writer;\n            };\n\n            /**\n             * Encodes the specified ServiceOptions message, length delimited. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.ServiceOptions\n             * @static\n             * @param {google.protobuf.IServiceOptions} message ServiceOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            ServiceOptions.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes a ServiceOptions message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.ServiceOptions\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 {google.protobuf.ServiceOptions} ServiceOptions\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            ServiceOptions.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.google.protobuf.ServiceOptions();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 33: {\n                            message.deprecated = reader.bool();\n                            break;\n                        }\n                    case 999: {\n                            if (!(message.uninterpretedOption && message.uninterpretedOption.length))\n                                message.uninterpretedOption = [];\n                            message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes a ServiceOptions message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.ServiceOptions\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.ServiceOptions} ServiceOptions\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            ServiceOptions.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 ServiceOptions message.\n             * @function verify\n             * @memberof google.protobuf.ServiceOptions\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            ServiceOptions.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.deprecated != null && message.hasOwnProperty(\"deprecated\"))\n                    if (typeof message.deprecated !== \"boolean\")\n                        return \"deprecated: boolean expected\";\n                if (message.uninterpretedOption != null && message.hasOwnProperty(\"uninterpretedOption\")) {\n                    if (!Array.isArray(message.uninterpretedOption))\n                        return \"uninterpretedOption: array expected\";\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i) {\n                        var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]);\n                        if (error)\n                            return \"uninterpretedOption.\" + error;\n                    }\n                }\n                return null;\n            };\n\n            /**\n             * Creates a ServiceOptions message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.ServiceOptions\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.ServiceOptions} ServiceOptions\n             */\n            ServiceOptions.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.ServiceOptions)\n                    return object;\n                var message = new $root.google.protobuf.ServiceOptions();\n                if (object.deprecated != null)\n                    message.deprecated = Boolean(object.deprecated);\n                if (object.uninterpretedOption) {\n                    if (!Array.isArray(object.uninterpretedOption))\n                        throw TypeError(\".google.protobuf.ServiceOptions.uninterpretedOption: array expected\");\n                    message.uninterpretedOption = [];\n                    for (var i = 0; i < object.uninterpretedOption.length; ++i) {\n                        if (typeof object.uninterpretedOption[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.ServiceOptions.uninterpretedOption: object expected\");\n                        message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]);\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from a ServiceOptions message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.ServiceOptions\n             * @static\n             * @param {google.protobuf.ServiceOptions} message ServiceOptions\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            ServiceOptions.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.uninterpretedOption = [];\n                if (options.defaults)\n                    object.deprecated = false;\n                if (message.deprecated != null && message.hasOwnProperty(\"deprecated\"))\n                    object.deprecated = message.deprecated;\n                if (message.uninterpretedOption && message.uninterpretedOption.length) {\n                    object.uninterpretedOption = [];\n                    for (var j = 0; j < message.uninterpretedOption.length; ++j)\n                        object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options);\n                }\n                return object;\n            };\n\n            /**\n             * Converts this ServiceOptions to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.ServiceOptions\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            ServiceOptions.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for ServiceOptions\n             * @function getTypeUrl\n             * @memberof google.protobuf.ServiceOptions\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            ServiceOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.ServiceOptions\";\n            };\n\n            return ServiceOptions;\n        })();\n\n        protobuf.MethodOptions = (function() {\n\n            /**\n             * Properties of a MethodOptions.\n             * @memberof google.protobuf\n             * @interface IMethodOptions\n             * @property {boolean|null} [deprecated] MethodOptions deprecated\n             * @property {Array.<google.protobuf.IUninterpretedOption>|null} [uninterpretedOption] MethodOptions uninterpretedOption\n             */\n\n            /**\n             * Constructs a new MethodOptions.\n             * @memberof google.protobuf\n             * @classdesc Represents a MethodOptions.\n             * @implements IMethodOptions\n             * @constructor\n             * @param {google.protobuf.IMethodOptions=} [properties] Properties to set\n             */\n            function MethodOptions(properties) {\n                this.uninterpretedOption = [];\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             * MethodOptions deprecated.\n             * @member {boolean} deprecated\n             * @memberof google.protobuf.MethodOptions\n             * @instance\n             */\n            MethodOptions.prototype.deprecated = false;\n\n            /**\n             * MethodOptions uninterpretedOption.\n             * @member {Array.<google.protobuf.IUninterpretedOption>} uninterpretedOption\n             * @memberof google.protobuf.MethodOptions\n             * @instance\n             */\n            MethodOptions.prototype.uninterpretedOption = $util.emptyArray;\n\n            /**\n             * Creates a new MethodOptions instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.MethodOptions\n             * @static\n             * @param {google.protobuf.IMethodOptions=} [properties] Properties to set\n             * @returns {google.protobuf.MethodOptions} MethodOptions instance\n             */\n            MethodOptions.create = function create(properties) {\n                return new MethodOptions(properties);\n            };\n\n            /**\n             * Encodes the specified MethodOptions message. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.MethodOptions\n             * @static\n             * @param {google.protobuf.IMethodOptions} message MethodOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            MethodOptions.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.deprecated != null && Object.hasOwnProperty.call(message, \"deprecated\"))\n                    writer.uint32(/* id 33, wireType 0 =*/264).bool(message.deprecated);\n                if (message.uninterpretedOption != null && message.uninterpretedOption.length)\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i)\n                        $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim();\n                return writer;\n            };\n\n            /**\n             * Encodes the specified MethodOptions message, length delimited. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.MethodOptions\n             * @static\n             * @param {google.protobuf.IMethodOptions} message MethodOptions message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            MethodOptions.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes a MethodOptions message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.MethodOptions\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 {google.protobuf.MethodOptions} MethodOptions\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            MethodOptions.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.google.protobuf.MethodOptions();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 33: {\n                            message.deprecated = reader.bool();\n                            break;\n                        }\n                    case 999: {\n                            if (!(message.uninterpretedOption && message.uninterpretedOption.length))\n                                message.uninterpretedOption = [];\n                            message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes a MethodOptions message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.MethodOptions\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.MethodOptions} MethodOptions\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            MethodOptions.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 MethodOptions message.\n             * @function verify\n             * @memberof google.protobuf.MethodOptions\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            MethodOptions.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.deprecated != null && message.hasOwnProperty(\"deprecated\"))\n                    if (typeof message.deprecated !== \"boolean\")\n                        return \"deprecated: boolean expected\";\n                if (message.uninterpretedOption != null && message.hasOwnProperty(\"uninterpretedOption\")) {\n                    if (!Array.isArray(message.uninterpretedOption))\n                        return \"uninterpretedOption: array expected\";\n                    for (var i = 0; i < message.uninterpretedOption.length; ++i) {\n                        var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]);\n                        if (error)\n                            return \"uninterpretedOption.\" + error;\n                    }\n                }\n                return null;\n            };\n\n            /**\n             * Creates a MethodOptions message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.MethodOptions\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.MethodOptions} MethodOptions\n             */\n            MethodOptions.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.MethodOptions)\n                    return object;\n                var message = new $root.google.protobuf.MethodOptions();\n                if (object.deprecated != null)\n                    message.deprecated = Boolean(object.deprecated);\n                if (object.uninterpretedOption) {\n                    if (!Array.isArray(object.uninterpretedOption))\n                        throw TypeError(\".google.protobuf.MethodOptions.uninterpretedOption: array expected\");\n                    message.uninterpretedOption = [];\n                    for (var i = 0; i < object.uninterpretedOption.length; ++i) {\n                        if (typeof object.uninterpretedOption[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.MethodOptions.uninterpretedOption: object expected\");\n                        message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]);\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from a MethodOptions message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.MethodOptions\n             * @static\n             * @param {google.protobuf.MethodOptions} message MethodOptions\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            MethodOptions.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.uninterpretedOption = [];\n                if (options.defaults)\n                    object.deprecated = false;\n                if (message.deprecated != null && message.hasOwnProperty(\"deprecated\"))\n                    object.deprecated = message.deprecated;\n                if (message.uninterpretedOption && message.uninterpretedOption.length) {\n                    object.uninterpretedOption = [];\n                    for (var j = 0; j < message.uninterpretedOption.length; ++j)\n                        object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options);\n                }\n                return object;\n            };\n\n            /**\n             * Converts this MethodOptions to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.MethodOptions\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            MethodOptions.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for MethodOptions\n             * @function getTypeUrl\n             * @memberof google.protobuf.MethodOptions\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            MethodOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.MethodOptions\";\n            };\n\n            return MethodOptions;\n        })();\n\n        protobuf.UninterpretedOption = (function() {\n\n            /**\n             * Properties of an UninterpretedOption.\n             * @memberof google.protobuf\n             * @interface IUninterpretedOption\n             * @property {Array.<google.protobuf.UninterpretedOption.INamePart>|null} [name] UninterpretedOption name\n             * @property {string|null} [identifierValue] UninterpretedOption identifierValue\n             * @property {number|Long|null} [positiveIntValue] UninterpretedOption positiveIntValue\n             * @property {number|Long|null} [negativeIntValue] UninterpretedOption negativeIntValue\n             * @property {number|null} [doubleValue] UninterpretedOption doubleValue\n             * @property {Uint8Array|null} [stringValue] UninterpretedOption stringValue\n             * @property {string|null} [aggregateValue] UninterpretedOption aggregateValue\n             */\n\n            /**\n             * Constructs a new UninterpretedOption.\n             * @memberof google.protobuf\n             * @classdesc Represents an UninterpretedOption.\n             * @implements IUninterpretedOption\n             * @constructor\n             * @param {google.protobuf.IUninterpretedOption=} [properties] Properties to set\n             */\n            function UninterpretedOption(properties) {\n                this.name = [];\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             * UninterpretedOption name.\n             * @member {Array.<google.protobuf.UninterpretedOption.INamePart>} name\n             * @memberof google.protobuf.UninterpretedOption\n             * @instance\n             */\n            UninterpretedOption.prototype.name = $util.emptyArray;\n\n            /**\n             * UninterpretedOption identifierValue.\n             * @member {string} identifierValue\n             * @memberof google.protobuf.UninterpretedOption\n             * @instance\n             */\n            UninterpretedOption.prototype.identifierValue = \"\";\n\n            /**\n             * UninterpretedOption positiveIntValue.\n             * @member {number|Long} positiveIntValue\n             * @memberof google.protobuf.UninterpretedOption\n             * @instance\n             */\n            UninterpretedOption.prototype.positiveIntValue = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n            /**\n             * UninterpretedOption negativeIntValue.\n             * @member {number|Long} negativeIntValue\n             * @memberof google.protobuf.UninterpretedOption\n             * @instance\n             */\n            UninterpretedOption.prototype.negativeIntValue = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n            /**\n             * UninterpretedOption doubleValue.\n             * @member {number} doubleValue\n             * @memberof google.protobuf.UninterpretedOption\n             * @instance\n             */\n            UninterpretedOption.prototype.doubleValue = 0;\n\n            /**\n             * UninterpretedOption stringValue.\n             * @member {Uint8Array} stringValue\n             * @memberof google.protobuf.UninterpretedOption\n             * @instance\n             */\n            UninterpretedOption.prototype.stringValue = $util.newBuffer([]);\n\n            /**\n             * UninterpretedOption aggregateValue.\n             * @member {string} aggregateValue\n             * @memberof google.protobuf.UninterpretedOption\n             * @instance\n             */\n            UninterpretedOption.prototype.aggregateValue = \"\";\n\n            /**\n             * Creates a new UninterpretedOption instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.UninterpretedOption\n             * @static\n             * @param {google.protobuf.IUninterpretedOption=} [properties] Properties to set\n             * @returns {google.protobuf.UninterpretedOption} UninterpretedOption instance\n             */\n            UninterpretedOption.create = function create(properties) {\n                return new UninterpretedOption(properties);\n            };\n\n            /**\n             * Encodes the specified UninterpretedOption message. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.UninterpretedOption\n             * @static\n             * @param {google.protobuf.IUninterpretedOption} message UninterpretedOption message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            UninterpretedOption.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.name != null && message.name.length)\n                    for (var i = 0; i < message.name.length; ++i)\n                        $root.google.protobuf.UninterpretedOption.NamePart.encode(message.name[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n                if (message.identifierValue != null && Object.hasOwnProperty.call(message, \"identifierValue\"))\n                    writer.uint32(/* id 3, wireType 2 =*/26).string(message.identifierValue);\n                if (message.positiveIntValue != null && Object.hasOwnProperty.call(message, \"positiveIntValue\"))\n                    writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.positiveIntValue);\n                if (message.negativeIntValue != null && Object.hasOwnProperty.call(message, \"negativeIntValue\"))\n                    writer.uint32(/* id 5, wireType 0 =*/40).int64(message.negativeIntValue);\n                if (message.doubleValue != null && Object.hasOwnProperty.call(message, \"doubleValue\"))\n                    writer.uint32(/* id 6, wireType 1 =*/49).double(message.doubleValue);\n                if (message.stringValue != null && Object.hasOwnProperty.call(message, \"stringValue\"))\n                    writer.uint32(/* id 7, wireType 2 =*/58).bytes(message.stringValue);\n                if (message.aggregateValue != null && Object.hasOwnProperty.call(message, \"aggregateValue\"))\n                    writer.uint32(/* id 8, wireType 2 =*/66).string(message.aggregateValue);\n                return writer;\n            };\n\n            /**\n             * Encodes the specified UninterpretedOption message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.UninterpretedOption\n             * @static\n             * @param {google.protobuf.IUninterpretedOption} message UninterpretedOption message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            UninterpretedOption.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes an UninterpretedOption message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.UninterpretedOption\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 {google.protobuf.UninterpretedOption} UninterpretedOption\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            UninterpretedOption.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.google.protobuf.UninterpretedOption();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 2: {\n                            if (!(message.name && message.name.length))\n                                message.name = [];\n                            message.name.push($root.google.protobuf.UninterpretedOption.NamePart.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    case 3: {\n                            message.identifierValue = reader.string();\n                            break;\n                        }\n                    case 4: {\n                            message.positiveIntValue = reader.uint64();\n                            break;\n                        }\n                    case 5: {\n                            message.negativeIntValue = reader.int64();\n                            break;\n                        }\n                    case 6: {\n                            message.doubleValue = reader.double();\n                            break;\n                        }\n                    case 7: {\n                            message.stringValue = reader.bytes();\n                            break;\n                        }\n                    case 8: {\n                            message.aggregateValue = reader.string();\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes an UninterpretedOption message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.UninterpretedOption\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.UninterpretedOption} UninterpretedOption\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            UninterpretedOption.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 UninterpretedOption message.\n             * @function verify\n             * @memberof google.protobuf.UninterpretedOption\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            UninterpretedOption.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 (!Array.isArray(message.name))\n                        return \"name: array expected\";\n                    for (var i = 0; i < message.name.length; ++i) {\n                        var error = $root.google.protobuf.UninterpretedOption.NamePart.verify(message.name[i]);\n                        if (error)\n                            return \"name.\" + error;\n                    }\n                }\n                if (message.identifierValue != null && message.hasOwnProperty(\"identifierValue\"))\n                    if (!$util.isString(message.identifierValue))\n                        return \"identifierValue: string expected\";\n                if (message.positiveIntValue != null && message.hasOwnProperty(\"positiveIntValue\"))\n                    if (!$util.isInteger(message.positiveIntValue) && !(message.positiveIntValue && $util.isInteger(message.positiveIntValue.low) && $util.isInteger(message.positiveIntValue.high)))\n                        return \"positiveIntValue: integer|Long expected\";\n                if (message.negativeIntValue != null && message.hasOwnProperty(\"negativeIntValue\"))\n                    if (!$util.isInteger(message.negativeIntValue) && !(message.negativeIntValue && $util.isInteger(message.negativeIntValue.low) && $util.isInteger(message.negativeIntValue.high)))\n                        return \"negativeIntValue: integer|Long expected\";\n                if (message.doubleValue != null && message.hasOwnProperty(\"doubleValue\"))\n                    if (typeof message.doubleValue !== \"number\")\n                        return \"doubleValue: number expected\";\n                if (message.stringValue != null && message.hasOwnProperty(\"stringValue\"))\n                    if (!(message.stringValue && typeof message.stringValue.length === \"number\" || $util.isString(message.stringValue)))\n                        return \"stringValue: buffer expected\";\n                if (message.aggregateValue != null && message.hasOwnProperty(\"aggregateValue\"))\n                    if (!$util.isString(message.aggregateValue))\n                        return \"aggregateValue: string expected\";\n                return null;\n            };\n\n            /**\n             * Creates an UninterpretedOption message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.UninterpretedOption\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.UninterpretedOption} UninterpretedOption\n             */\n            UninterpretedOption.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.UninterpretedOption)\n                    return object;\n                var message = new $root.google.protobuf.UninterpretedOption();\n                if (object.name) {\n                    if (!Array.isArray(object.name))\n                        throw TypeError(\".google.protobuf.UninterpretedOption.name: array expected\");\n                    message.name = [];\n                    for (var i = 0; i < object.name.length; ++i) {\n                        if (typeof object.name[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.UninterpretedOption.name: object expected\");\n                        message.name[i] = $root.google.protobuf.UninterpretedOption.NamePart.fromObject(object.name[i]);\n                    }\n                }\n                if (object.identifierValue != null)\n                    message.identifierValue = String(object.identifierValue);\n                if (object.positiveIntValue != null)\n                    if ($util.Long)\n                        (message.positiveIntValue = $util.Long.fromValue(object.positiveIntValue)).unsigned = true;\n                    else if (typeof object.positiveIntValue === \"string\")\n                        message.positiveIntValue = parseInt(object.positiveIntValue, 10);\n                    else if (typeof object.positiveIntValue === \"number\")\n                        message.positiveIntValue = object.positiveIntValue;\n                    else if (typeof object.positiveIntValue === \"object\")\n                        message.positiveIntValue = new $util.LongBits(object.positiveIntValue.low >>> 0, object.positiveIntValue.high >>> 0).toNumber(true);\n                if (object.negativeIntValue != null)\n                    if ($util.Long)\n                        (message.negativeIntValue = $util.Long.fromValue(object.negativeIntValue)).unsigned = false;\n                    else if (typeof object.negativeIntValue === \"string\")\n                        message.negativeIntValue = parseInt(object.negativeIntValue, 10);\n                    else if (typeof object.negativeIntValue === \"number\")\n                        message.negativeIntValue = object.negativeIntValue;\n                    else if (typeof object.negativeIntValue === \"object\")\n                        message.negativeIntValue = new $util.LongBits(object.negativeIntValue.low >>> 0, object.negativeIntValue.high >>> 0).toNumber();\n                if (object.doubleValue != null)\n                    message.doubleValue = Number(object.doubleValue);\n                if (object.stringValue != null)\n                    if (typeof object.stringValue === \"string\")\n                        $util.base64.decode(object.stringValue, message.stringValue = $util.newBuffer($util.base64.length(object.stringValue)), 0);\n                    else if (object.stringValue.length >= 0)\n                        message.stringValue = object.stringValue;\n                if (object.aggregateValue != null)\n                    message.aggregateValue = String(object.aggregateValue);\n                return message;\n            };\n\n            /**\n             * Creates a plain object from an UninterpretedOption message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.UninterpretedOption\n             * @static\n             * @param {google.protobuf.UninterpretedOption} message UninterpretedOption\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            UninterpretedOption.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.name = [];\n                if (options.defaults) {\n                    object.identifierValue = \"\";\n                    if ($util.Long) {\n                        var long = new $util.Long(0, 0, true);\n                        object.positiveIntValue = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n                    } else\n                        object.positiveIntValue = options.longs === String ? \"0\" : 0;\n                    if ($util.Long) {\n                        var long = new $util.Long(0, 0, false);\n                        object.negativeIntValue = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n                    } else\n                        object.negativeIntValue = options.longs === String ? \"0\" : 0;\n                    object.doubleValue = 0;\n                    if (options.bytes === String)\n                        object.stringValue = \"\";\n                    else {\n                        object.stringValue = [];\n                        if (options.bytes !== Array)\n                            object.stringValue = $util.newBuffer(object.stringValue);\n                    }\n                    object.aggregateValue = \"\";\n                }\n                if (message.name && message.name.length) {\n                    object.name = [];\n                    for (var j = 0; j < message.name.length; ++j)\n                        object.name[j] = $root.google.protobuf.UninterpretedOption.NamePart.toObject(message.name[j], options);\n                }\n                if (message.identifierValue != null && message.hasOwnProperty(\"identifierValue\"))\n                    object.identifierValue = message.identifierValue;\n                if (message.positiveIntValue != null && message.hasOwnProperty(\"positiveIntValue\"))\n                    if (typeof message.positiveIntValue === \"number\")\n                        object.positiveIntValue = options.longs === String ? String(message.positiveIntValue) : message.positiveIntValue;\n                    else\n                        object.positiveIntValue = options.longs === String ? $util.Long.prototype.toString.call(message.positiveIntValue) : options.longs === Number ? new $util.LongBits(message.positiveIntValue.low >>> 0, message.positiveIntValue.high >>> 0).toNumber(true) : message.positiveIntValue;\n                if (message.negativeIntValue != null && message.hasOwnProperty(\"negativeIntValue\"))\n                    if (typeof message.negativeIntValue === \"number\")\n                        object.negativeIntValue = options.longs === String ? String(message.negativeIntValue) : message.negativeIntValue;\n                    else\n                        object.negativeIntValue = options.longs === String ? $util.Long.prototype.toString.call(message.negativeIntValue) : options.longs === Number ? new $util.LongBits(message.negativeIntValue.low >>> 0, message.negativeIntValue.high >>> 0).toNumber() : message.negativeIntValue;\n                if (message.doubleValue != null && message.hasOwnProperty(\"doubleValue\"))\n                    object.doubleValue = options.json && !isFinite(message.doubleValue) ? String(message.doubleValue) : message.doubleValue;\n                if (message.stringValue != null && message.hasOwnProperty(\"stringValue\"))\n                    object.stringValue = options.bytes === String ? $util.base64.encode(message.stringValue, 0, message.stringValue.length) : options.bytes === Array ? Array.prototype.slice.call(message.stringValue) : message.stringValue;\n                if (message.aggregateValue != null && message.hasOwnProperty(\"aggregateValue\"))\n                    object.aggregateValue = message.aggregateValue;\n                return object;\n            };\n\n            /**\n             * Converts this UninterpretedOption to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.UninterpretedOption\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            UninterpretedOption.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for UninterpretedOption\n             * @function getTypeUrl\n             * @memberof google.protobuf.UninterpretedOption\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            UninterpretedOption.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.UninterpretedOption\";\n            };\n\n            UninterpretedOption.NamePart = (function() {\n\n                /**\n                 * Properties of a NamePart.\n                 * @memberof google.protobuf.UninterpretedOption\n                 * @interface INamePart\n                 * @property {string} namePart NamePart namePart\n                 * @property {boolean} isExtension NamePart isExtension\n                 */\n\n                /**\n                 * Constructs a new NamePart.\n                 * @memberof google.protobuf.UninterpretedOption\n                 * @classdesc Represents a NamePart.\n                 * @implements INamePart\n                 * @constructor\n                 * @param {google.protobuf.UninterpretedOption.INamePart=} [properties] Properties to set\n                 */\n                function NamePart(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                 * NamePart namePart.\n                 * @member {string} namePart\n                 * @memberof google.protobuf.UninterpretedOption.NamePart\n                 * @instance\n                 */\n                NamePart.prototype.namePart = \"\";\n\n                /**\n                 * NamePart isExtension.\n                 * @member {boolean} isExtension\n                 * @memberof google.protobuf.UninterpretedOption.NamePart\n                 * @instance\n                 */\n                NamePart.prototype.isExtension = false;\n\n                /**\n                 * Creates a new NamePart instance using the specified properties.\n                 * @function create\n                 * @memberof google.protobuf.UninterpretedOption.NamePart\n                 * @static\n                 * @param {google.protobuf.UninterpretedOption.INamePart=} [properties] Properties to set\n                 * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart instance\n                 */\n                NamePart.create = function create(properties) {\n                    return new NamePart(properties);\n                };\n\n                /**\n                 * Encodes the specified NamePart message. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages.\n                 * @function encode\n                 * @memberof google.protobuf.UninterpretedOption.NamePart\n                 * @static\n                 * @param {google.protobuf.UninterpretedOption.INamePart} message NamePart message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                NamePart.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.namePart);\n                    writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isExtension);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified NamePart message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof google.protobuf.UninterpretedOption.NamePart\n                 * @static\n                 * @param {google.protobuf.UninterpretedOption.INamePart} message NamePart message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                NamePart.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a NamePart message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof google.protobuf.UninterpretedOption.NamePart\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 {google.protobuf.UninterpretedOption.NamePart} NamePart\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                NamePart.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.google.protobuf.UninterpretedOption.NamePart();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                message.namePart = reader.string();\n                                break;\n                            }\n                        case 2: {\n                                message.isExtension = reader.bool();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    if (!message.hasOwnProperty(\"namePart\"))\n                        throw $util.ProtocolError(\"missing required 'namePart'\", { instance: message });\n                    if (!message.hasOwnProperty(\"isExtension\"))\n                        throw $util.ProtocolError(\"missing required 'isExtension'\", { instance: message });\n                    return message;\n                };\n\n                /**\n                 * Decodes a NamePart message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof google.protobuf.UninterpretedOption.NamePart\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart\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                NamePart.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 NamePart message.\n                 * @function verify\n                 * @memberof google.protobuf.UninterpretedOption.NamePart\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                NamePart.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (!$util.isString(message.namePart))\n                        return \"namePart: string expected\";\n                    if (typeof message.isExtension !== \"boolean\")\n                        return \"isExtension: boolean expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates a NamePart message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof google.protobuf.UninterpretedOption.NamePart\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart\n                 */\n                NamePart.fromObject = function fromObject(object) {\n                    if (object instanceof $root.google.protobuf.UninterpretedOption.NamePart)\n                        return object;\n                    var message = new $root.google.protobuf.UninterpretedOption.NamePart();\n                    if (object.namePart != null)\n                        message.namePart = String(object.namePart);\n                    if (object.isExtension != null)\n                        message.isExtension = Boolean(object.isExtension);\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a NamePart message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof google.protobuf.UninterpretedOption.NamePart\n                 * @static\n                 * @param {google.protobuf.UninterpretedOption.NamePart} message NamePart\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                NamePart.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.defaults) {\n                        object.namePart = \"\";\n                        object.isExtension = false;\n                    }\n                    if (message.namePart != null && message.hasOwnProperty(\"namePart\"))\n                        object.namePart = message.namePart;\n                    if (message.isExtension != null && message.hasOwnProperty(\"isExtension\"))\n                        object.isExtension = message.isExtension;\n                    return object;\n                };\n\n                /**\n                 * Converts this NamePart to JSON.\n                 * @function toJSON\n                 * @memberof google.protobuf.UninterpretedOption.NamePart\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                NamePart.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for NamePart\n                 * @function getTypeUrl\n                 * @memberof google.protobuf.UninterpretedOption.NamePart\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                NamePart.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/google.protobuf.UninterpretedOption.NamePart\";\n                };\n\n                return NamePart;\n            })();\n\n            return UninterpretedOption;\n        })();\n\n        protobuf.SourceCodeInfo = (function() {\n\n            /**\n             * Properties of a SourceCodeInfo.\n             * @memberof google.protobuf\n             * @interface ISourceCodeInfo\n             * @property {Array.<google.protobuf.SourceCodeInfo.ILocation>|null} [location] SourceCodeInfo location\n             */\n\n            /**\n             * Constructs a new SourceCodeInfo.\n             * @memberof google.protobuf\n             * @classdesc Represents a SourceCodeInfo.\n             * @implements ISourceCodeInfo\n             * @constructor\n             * @param {google.protobuf.ISourceCodeInfo=} [properties] Properties to set\n             */\n            function SourceCodeInfo(properties) {\n                this.location = [];\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             * SourceCodeInfo location.\n             * @member {Array.<google.protobuf.SourceCodeInfo.ILocation>} location\n             * @memberof google.protobuf.SourceCodeInfo\n             * @instance\n             */\n            SourceCodeInfo.prototype.location = $util.emptyArray;\n\n            /**\n             * Creates a new SourceCodeInfo instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.SourceCodeInfo\n             * @static\n             * @param {google.protobuf.ISourceCodeInfo=} [properties] Properties to set\n             * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo instance\n             */\n            SourceCodeInfo.create = function create(properties) {\n                return new SourceCodeInfo(properties);\n            };\n\n            /**\n             * Encodes the specified SourceCodeInfo message. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.SourceCodeInfo\n             * @static\n             * @param {google.protobuf.ISourceCodeInfo} message SourceCodeInfo message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            SourceCodeInfo.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.location != null && message.location.length)\n                    for (var i = 0; i < message.location.length; ++i)\n                        $root.google.protobuf.SourceCodeInfo.Location.encode(message.location[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n                return writer;\n            };\n\n            /**\n             * Encodes the specified SourceCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.SourceCodeInfo\n             * @static\n             * @param {google.protobuf.ISourceCodeInfo} message SourceCodeInfo message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            SourceCodeInfo.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes a SourceCodeInfo message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.SourceCodeInfo\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 {google.protobuf.SourceCodeInfo} SourceCodeInfo\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            SourceCodeInfo.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.google.protobuf.SourceCodeInfo();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1: {\n                            if (!(message.location && message.location.length))\n                                message.location = [];\n                            message.location.push($root.google.protobuf.SourceCodeInfo.Location.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes a SourceCodeInfo message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.SourceCodeInfo\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo\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            SourceCodeInfo.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 SourceCodeInfo message.\n             * @function verify\n             * @memberof google.protobuf.SourceCodeInfo\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            SourceCodeInfo.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.location != null && message.hasOwnProperty(\"location\")) {\n                    if (!Array.isArray(message.location))\n                        return \"location: array expected\";\n                    for (var i = 0; i < message.location.length; ++i) {\n                        var error = $root.google.protobuf.SourceCodeInfo.Location.verify(message.location[i]);\n                        if (error)\n                            return \"location.\" + error;\n                    }\n                }\n                return null;\n            };\n\n            /**\n             * Creates a SourceCodeInfo message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.SourceCodeInfo\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo\n             */\n            SourceCodeInfo.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.SourceCodeInfo)\n                    return object;\n                var message = new $root.google.protobuf.SourceCodeInfo();\n                if (object.location) {\n                    if (!Array.isArray(object.location))\n                        throw TypeError(\".google.protobuf.SourceCodeInfo.location: array expected\");\n                    message.location = [];\n                    for (var i = 0; i < object.location.length; ++i) {\n                        if (typeof object.location[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.SourceCodeInfo.location: object expected\");\n                        message.location[i] = $root.google.protobuf.SourceCodeInfo.Location.fromObject(object.location[i]);\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from a SourceCodeInfo message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.SourceCodeInfo\n             * @static\n             * @param {google.protobuf.SourceCodeInfo} message SourceCodeInfo\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            SourceCodeInfo.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.location = [];\n                if (message.location && message.location.length) {\n                    object.location = [];\n                    for (var j = 0; j < message.location.length; ++j)\n                        object.location[j] = $root.google.protobuf.SourceCodeInfo.Location.toObject(message.location[j], options);\n                }\n                return object;\n            };\n\n            /**\n             * Converts this SourceCodeInfo to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.SourceCodeInfo\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            SourceCodeInfo.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for SourceCodeInfo\n             * @function getTypeUrl\n             * @memberof google.protobuf.SourceCodeInfo\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            SourceCodeInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.SourceCodeInfo\";\n            };\n\n            SourceCodeInfo.Location = (function() {\n\n                /**\n                 * Properties of a Location.\n                 * @memberof google.protobuf.SourceCodeInfo\n                 * @interface ILocation\n                 * @property {Array.<number>|null} [path] Location path\n                 * @property {Array.<number>|null} [span] Location span\n                 * @property {string|null} [leadingComments] Location leadingComments\n                 * @property {string|null} [trailingComments] Location trailingComments\n                 * @property {Array.<string>|null} [leadingDetachedComments] Location leadingDetachedComments\n                 */\n\n                /**\n                 * Constructs a new Location.\n                 * @memberof google.protobuf.SourceCodeInfo\n                 * @classdesc Represents a Location.\n                 * @implements ILocation\n                 * @constructor\n                 * @param {google.protobuf.SourceCodeInfo.ILocation=} [properties] Properties to set\n                 */\n                function Location(properties) {\n                    this.path = [];\n                    this.span = [];\n                    this.leadingDetachedComments = [];\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                 * Location path.\n                 * @member {Array.<number>} path\n                 * @memberof google.protobuf.SourceCodeInfo.Location\n                 * @instance\n                 */\n                Location.prototype.path = $util.emptyArray;\n\n                /**\n                 * Location span.\n                 * @member {Array.<number>} span\n                 * @memberof google.protobuf.SourceCodeInfo.Location\n                 * @instance\n                 */\n                Location.prototype.span = $util.emptyArray;\n\n                /**\n                 * Location leadingComments.\n                 * @member {string} leadingComments\n                 * @memberof google.protobuf.SourceCodeInfo.Location\n                 * @instance\n                 */\n                Location.prototype.leadingComments = \"\";\n\n                /**\n                 * Location trailingComments.\n                 * @member {string} trailingComments\n                 * @memberof google.protobuf.SourceCodeInfo.Location\n                 * @instance\n                 */\n                Location.prototype.trailingComments = \"\";\n\n                /**\n                 * Location leadingDetachedComments.\n                 * @member {Array.<string>} leadingDetachedComments\n                 * @memberof google.protobuf.SourceCodeInfo.Location\n                 * @instance\n                 */\n                Location.prototype.leadingDetachedComments = $util.emptyArray;\n\n                /**\n                 * Creates a new Location instance using the specified properties.\n                 * @function create\n                 * @memberof google.protobuf.SourceCodeInfo.Location\n                 * @static\n                 * @param {google.protobuf.SourceCodeInfo.ILocation=} [properties] Properties to set\n                 * @returns {google.protobuf.SourceCodeInfo.Location} Location instance\n                 */\n                Location.create = function create(properties) {\n                    return new Location(properties);\n                };\n\n                /**\n                 * Encodes the specified Location message. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages.\n                 * @function encode\n                 * @memberof google.protobuf.SourceCodeInfo.Location\n                 * @static\n                 * @param {google.protobuf.SourceCodeInfo.ILocation} message Location message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Location.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.path != null && message.path.length) {\n                        writer.uint32(/* id 1, wireType 2 =*/10).fork();\n                        for (var i = 0; i < message.path.length; ++i)\n                            writer.int32(message.path[i]);\n                        writer.ldelim();\n                    }\n                    if (message.span != null && message.span.length) {\n                        writer.uint32(/* id 2, wireType 2 =*/18).fork();\n                        for (var i = 0; i < message.span.length; ++i)\n                            writer.int32(message.span[i]);\n                        writer.ldelim();\n                    }\n                    if (message.leadingComments != null && Object.hasOwnProperty.call(message, \"leadingComments\"))\n                        writer.uint32(/* id 3, wireType 2 =*/26).string(message.leadingComments);\n                    if (message.trailingComments != null && Object.hasOwnProperty.call(message, \"trailingComments\"))\n                        writer.uint32(/* id 4, wireType 2 =*/34).string(message.trailingComments);\n                    if (message.leadingDetachedComments != null && message.leadingDetachedComments.length)\n                        for (var i = 0; i < message.leadingDetachedComments.length; ++i)\n                            writer.uint32(/* id 6, wireType 2 =*/50).string(message.leadingDetachedComments[i]);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified Location message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof google.protobuf.SourceCodeInfo.Location\n                 * @static\n                 * @param {google.protobuf.SourceCodeInfo.ILocation} message Location message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Location.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes a Location message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof google.protobuf.SourceCodeInfo.Location\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 {google.protobuf.SourceCodeInfo.Location} Location\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                Location.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.google.protobuf.SourceCodeInfo.Location();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                if (!(message.path && message.path.length))\n                                    message.path = [];\n                                if ((tag & 7) === 2) {\n                                    var end2 = reader.uint32() + reader.pos;\n                                    while (reader.pos < end2)\n                                        message.path.push(reader.int32());\n                                } else\n                                    message.path.push(reader.int32());\n                                break;\n                            }\n                        case 2: {\n                                if (!(message.span && message.span.length))\n                                    message.span = [];\n                                if ((tag & 7) === 2) {\n                                    var end2 = reader.uint32() + reader.pos;\n                                    while (reader.pos < end2)\n                                        message.span.push(reader.int32());\n                                } else\n                                    message.span.push(reader.int32());\n                                break;\n                            }\n                        case 3: {\n                                message.leadingComments = reader.string();\n                                break;\n                            }\n                        case 4: {\n                                message.trailingComments = reader.string();\n                                break;\n                            }\n                        case 6: {\n                                if (!(message.leadingDetachedComments && message.leadingDetachedComments.length))\n                                    message.leadingDetachedComments = [];\n                                message.leadingDetachedComments.push(reader.string());\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes a Location message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof google.protobuf.SourceCodeInfo.Location\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {google.protobuf.SourceCodeInfo.Location} Location\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                Location.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 Location message.\n                 * @function verify\n                 * @memberof google.protobuf.SourceCodeInfo.Location\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                Location.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.path != null && message.hasOwnProperty(\"path\")) {\n                        if (!Array.isArray(message.path))\n                            return \"path: array expected\";\n                        for (var i = 0; i < message.path.length; ++i)\n                            if (!$util.isInteger(message.path[i]))\n                                return \"path: integer[] expected\";\n                    }\n                    if (message.span != null && message.hasOwnProperty(\"span\")) {\n                        if (!Array.isArray(message.span))\n                            return \"span: array expected\";\n                        for (var i = 0; i < message.span.length; ++i)\n                            if (!$util.isInteger(message.span[i]))\n                                return \"span: integer[] expected\";\n                    }\n                    if (message.leadingComments != null && message.hasOwnProperty(\"leadingComments\"))\n                        if (!$util.isString(message.leadingComments))\n                            return \"leadingComments: string expected\";\n                    if (message.trailingComments != null && message.hasOwnProperty(\"trailingComments\"))\n                        if (!$util.isString(message.trailingComments))\n                            return \"trailingComments: string expected\";\n                    if (message.leadingDetachedComments != null && message.hasOwnProperty(\"leadingDetachedComments\")) {\n                        if (!Array.isArray(message.leadingDetachedComments))\n                            return \"leadingDetachedComments: array expected\";\n                        for (var i = 0; i < message.leadingDetachedComments.length; ++i)\n                            if (!$util.isString(message.leadingDetachedComments[i]))\n                                return \"leadingDetachedComments: string[] expected\";\n                    }\n                    return null;\n                };\n\n                /**\n                 * Creates a Location message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof google.protobuf.SourceCodeInfo.Location\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {google.protobuf.SourceCodeInfo.Location} Location\n                 */\n                Location.fromObject = function fromObject(object) {\n                    if (object instanceof $root.google.protobuf.SourceCodeInfo.Location)\n                        return object;\n                    var message = new $root.google.protobuf.SourceCodeInfo.Location();\n                    if (object.path) {\n                        if (!Array.isArray(object.path))\n                            throw TypeError(\".google.protobuf.SourceCodeInfo.Location.path: array expected\");\n                        message.path = [];\n                        for (var i = 0; i < object.path.length; ++i)\n                            message.path[i] = object.path[i] | 0;\n                    }\n                    if (object.span) {\n                        if (!Array.isArray(object.span))\n                            throw TypeError(\".google.protobuf.SourceCodeInfo.Location.span: array expected\");\n                        message.span = [];\n                        for (var i = 0; i < object.span.length; ++i)\n                            message.span[i] = object.span[i] | 0;\n                    }\n                    if (object.leadingComments != null)\n                        message.leadingComments = String(object.leadingComments);\n                    if (object.trailingComments != null)\n                        message.trailingComments = String(object.trailingComments);\n                    if (object.leadingDetachedComments) {\n                        if (!Array.isArray(object.leadingDetachedComments))\n                            throw TypeError(\".google.protobuf.SourceCodeInfo.Location.leadingDetachedComments: array expected\");\n                        message.leadingDetachedComments = [];\n                        for (var i = 0; i < object.leadingDetachedComments.length; ++i)\n                            message.leadingDetachedComments[i] = String(object.leadingDetachedComments[i]);\n                    }\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from a Location message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof google.protobuf.SourceCodeInfo.Location\n                 * @static\n                 * @param {google.protobuf.SourceCodeInfo.Location} message Location\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                Location.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.arrays || options.defaults) {\n                        object.path = [];\n                        object.span = [];\n                        object.leadingDetachedComments = [];\n                    }\n                    if (options.defaults) {\n                        object.leadingComments = \"\";\n                        object.trailingComments = \"\";\n                    }\n                    if (message.path && message.path.length) {\n                        object.path = [];\n                        for (var j = 0; j < message.path.length; ++j)\n                            object.path[j] = message.path[j];\n                    }\n                    if (message.span && message.span.length) {\n                        object.span = [];\n                        for (var j = 0; j < message.span.length; ++j)\n                            object.span[j] = message.span[j];\n                    }\n                    if (message.leadingComments != null && message.hasOwnProperty(\"leadingComments\"))\n                        object.leadingComments = message.leadingComments;\n                    if (message.trailingComments != null && message.hasOwnProperty(\"trailingComments\"))\n                        object.trailingComments = message.trailingComments;\n                    if (message.leadingDetachedComments && message.leadingDetachedComments.length) {\n                        object.leadingDetachedComments = [];\n                        for (var j = 0; j < message.leadingDetachedComments.length; ++j)\n                            object.leadingDetachedComments[j] = message.leadingDetachedComments[j];\n                    }\n                    return object;\n                };\n\n                /**\n                 * Converts this Location to JSON.\n                 * @function toJSON\n                 * @memberof google.protobuf.SourceCodeInfo.Location\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                Location.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for Location\n                 * @function getTypeUrl\n                 * @memberof google.protobuf.SourceCodeInfo.Location\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                Location.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/google.protobuf.SourceCodeInfo.Location\";\n                };\n\n                return Location;\n            })();\n\n            return SourceCodeInfo;\n        })();\n\n        protobuf.GeneratedCodeInfo = (function() {\n\n            /**\n             * Properties of a GeneratedCodeInfo.\n             * @memberof google.protobuf\n             * @interface IGeneratedCodeInfo\n             * @property {Array.<google.protobuf.GeneratedCodeInfo.IAnnotation>|null} [annotation] GeneratedCodeInfo annotation\n             */\n\n            /**\n             * Constructs a new GeneratedCodeInfo.\n             * @memberof google.protobuf\n             * @classdesc Represents a GeneratedCodeInfo.\n             * @implements IGeneratedCodeInfo\n             * @constructor\n             * @param {google.protobuf.IGeneratedCodeInfo=} [properties] Properties to set\n             */\n            function GeneratedCodeInfo(properties) {\n                this.annotation = [];\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             * GeneratedCodeInfo annotation.\n             * @member {Array.<google.protobuf.GeneratedCodeInfo.IAnnotation>} annotation\n             * @memberof google.protobuf.GeneratedCodeInfo\n             * @instance\n             */\n            GeneratedCodeInfo.prototype.annotation = $util.emptyArray;\n\n            /**\n             * Creates a new GeneratedCodeInfo instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.GeneratedCodeInfo\n             * @static\n             * @param {google.protobuf.IGeneratedCodeInfo=} [properties] Properties to set\n             * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo instance\n             */\n            GeneratedCodeInfo.create = function create(properties) {\n                return new GeneratedCodeInfo(properties);\n            };\n\n            /**\n             * Encodes the specified GeneratedCodeInfo message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.GeneratedCodeInfo\n             * @static\n             * @param {google.protobuf.IGeneratedCodeInfo} message GeneratedCodeInfo message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            GeneratedCodeInfo.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.annotation != null && message.annotation.length)\n                    for (var i = 0; i < message.annotation.length; ++i)\n                        $root.google.protobuf.GeneratedCodeInfo.Annotation.encode(message.annotation[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n                return writer;\n            };\n\n            /**\n             * Encodes the specified GeneratedCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.GeneratedCodeInfo\n             * @static\n             * @param {google.protobuf.IGeneratedCodeInfo} message GeneratedCodeInfo message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            GeneratedCodeInfo.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes a GeneratedCodeInfo message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.GeneratedCodeInfo\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 {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo\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            GeneratedCodeInfo.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.google.protobuf.GeneratedCodeInfo();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1: {\n                            if (!(message.annotation && message.annotation.length))\n                                message.annotation = [];\n                            message.annotation.push($root.google.protobuf.GeneratedCodeInfo.Annotation.decode(reader, reader.uint32()));\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes a GeneratedCodeInfo message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.GeneratedCodeInfo\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo\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            GeneratedCodeInfo.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 GeneratedCodeInfo message.\n             * @function verify\n             * @memberof google.protobuf.GeneratedCodeInfo\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            GeneratedCodeInfo.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.annotation != null && message.hasOwnProperty(\"annotation\")) {\n                    if (!Array.isArray(message.annotation))\n                        return \"annotation: array expected\";\n                    for (var i = 0; i < message.annotation.length; ++i) {\n                        var error = $root.google.protobuf.GeneratedCodeInfo.Annotation.verify(message.annotation[i]);\n                        if (error)\n                            return \"annotation.\" + error;\n                    }\n                }\n                return null;\n            };\n\n            /**\n             * Creates a GeneratedCodeInfo message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.GeneratedCodeInfo\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo\n             */\n            GeneratedCodeInfo.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.GeneratedCodeInfo)\n                    return object;\n                var message = new $root.google.protobuf.GeneratedCodeInfo();\n                if (object.annotation) {\n                    if (!Array.isArray(object.annotation))\n                        throw TypeError(\".google.protobuf.GeneratedCodeInfo.annotation: array expected\");\n                    message.annotation = [];\n                    for (var i = 0; i < object.annotation.length; ++i) {\n                        if (typeof object.annotation[i] !== \"object\")\n                            throw TypeError(\".google.protobuf.GeneratedCodeInfo.annotation: object expected\");\n                        message.annotation[i] = $root.google.protobuf.GeneratedCodeInfo.Annotation.fromObject(object.annotation[i]);\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Creates a plain object from a GeneratedCodeInfo message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.GeneratedCodeInfo\n             * @static\n             * @param {google.protobuf.GeneratedCodeInfo} message GeneratedCodeInfo\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            GeneratedCodeInfo.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.arrays || options.defaults)\n                    object.annotation = [];\n                if (message.annotation && message.annotation.length) {\n                    object.annotation = [];\n                    for (var j = 0; j < message.annotation.length; ++j)\n                        object.annotation[j] = $root.google.protobuf.GeneratedCodeInfo.Annotation.toObject(message.annotation[j], options);\n                }\n                return object;\n            };\n\n            /**\n             * Converts this GeneratedCodeInfo to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.GeneratedCodeInfo\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            GeneratedCodeInfo.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for GeneratedCodeInfo\n             * @function getTypeUrl\n             * @memberof google.protobuf.GeneratedCodeInfo\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            GeneratedCodeInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.GeneratedCodeInfo\";\n            };\n\n            GeneratedCodeInfo.Annotation = (function() {\n\n                /**\n                 * Properties of an Annotation.\n                 * @memberof google.protobuf.GeneratedCodeInfo\n                 * @interface IAnnotation\n                 * @property {Array.<number>|null} [path] Annotation path\n                 * @property {string|null} [sourceFile] Annotation sourceFile\n                 * @property {number|null} [begin] Annotation begin\n                 * @property {number|null} [end] Annotation end\n                 */\n\n                /**\n                 * Constructs a new Annotation.\n                 * @memberof google.protobuf.GeneratedCodeInfo\n                 * @classdesc Represents an Annotation.\n                 * @implements IAnnotation\n                 * @constructor\n                 * @param {google.protobuf.GeneratedCodeInfo.IAnnotation=} [properties] Properties to set\n                 */\n                function Annotation(properties) {\n                    this.path = [];\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                 * Annotation path.\n                 * @member {Array.<number>} path\n                 * @memberof google.protobuf.GeneratedCodeInfo.Annotation\n                 * @instance\n                 */\n                Annotation.prototype.path = $util.emptyArray;\n\n                /**\n                 * Annotation sourceFile.\n                 * @member {string} sourceFile\n                 * @memberof google.protobuf.GeneratedCodeInfo.Annotation\n                 * @instance\n                 */\n                Annotation.prototype.sourceFile = \"\";\n\n                /**\n                 * Annotation begin.\n                 * @member {number} begin\n                 * @memberof google.protobuf.GeneratedCodeInfo.Annotation\n                 * @instance\n                 */\n                Annotation.prototype.begin = 0;\n\n                /**\n                 * Annotation end.\n                 * @member {number} end\n                 * @memberof google.protobuf.GeneratedCodeInfo.Annotation\n                 * @instance\n                 */\n                Annotation.prototype.end = 0;\n\n                /**\n                 * Creates a new Annotation instance using the specified properties.\n                 * @function create\n                 * @memberof google.protobuf.GeneratedCodeInfo.Annotation\n                 * @static\n                 * @param {google.protobuf.GeneratedCodeInfo.IAnnotation=} [properties] Properties to set\n                 * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation instance\n                 */\n                Annotation.create = function create(properties) {\n                    return new Annotation(properties);\n                };\n\n                /**\n                 * Encodes the specified Annotation message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages.\n                 * @function encode\n                 * @memberof google.protobuf.GeneratedCodeInfo.Annotation\n                 * @static\n                 * @param {google.protobuf.GeneratedCodeInfo.IAnnotation} message Annotation message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Annotation.encode = function encode(message, writer) {\n                    if (!writer)\n                        writer = $Writer.create();\n                    if (message.path != null && message.path.length) {\n                        writer.uint32(/* id 1, wireType 2 =*/10).fork();\n                        for (var i = 0; i < message.path.length; ++i)\n                            writer.int32(message.path[i]);\n                        writer.ldelim();\n                    }\n                    if (message.sourceFile != null && Object.hasOwnProperty.call(message, \"sourceFile\"))\n                        writer.uint32(/* id 2, wireType 2 =*/18).string(message.sourceFile);\n                    if (message.begin != null && Object.hasOwnProperty.call(message, \"begin\"))\n                        writer.uint32(/* id 3, wireType 0 =*/24).int32(message.begin);\n                    if (message.end != null && Object.hasOwnProperty.call(message, \"end\"))\n                        writer.uint32(/* id 4, wireType 0 =*/32).int32(message.end);\n                    return writer;\n                };\n\n                /**\n                 * Encodes the specified Annotation message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages.\n                 * @function encodeDelimited\n                 * @memberof google.protobuf.GeneratedCodeInfo.Annotation\n                 * @static\n                 * @param {google.protobuf.GeneratedCodeInfo.IAnnotation} message Annotation message or plain object to encode\n                 * @param {$protobuf.Writer} [writer] Writer to encode to\n                 * @returns {$protobuf.Writer} Writer\n                 */\n                Annotation.encodeDelimited = function encodeDelimited(message, writer) {\n                    return this.encode(message, writer).ldelim();\n                };\n\n                /**\n                 * Decodes an Annotation message from the specified reader or buffer.\n                 * @function decode\n                 * @memberof google.protobuf.GeneratedCodeInfo.Annotation\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 {google.protobuf.GeneratedCodeInfo.Annotation} Annotation\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                Annotation.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.google.protobuf.GeneratedCodeInfo.Annotation();\n                    while (reader.pos < end) {\n                        var tag = reader.uint32();\n                        switch (tag >>> 3) {\n                        case 1: {\n                                if (!(message.path && message.path.length))\n                                    message.path = [];\n                                if ((tag & 7) === 2) {\n                                    var end2 = reader.uint32() + reader.pos;\n                                    while (reader.pos < end2)\n                                        message.path.push(reader.int32());\n                                } else\n                                    message.path.push(reader.int32());\n                                break;\n                            }\n                        case 2: {\n                                message.sourceFile = reader.string();\n                                break;\n                            }\n                        case 3: {\n                                message.begin = reader.int32();\n                                break;\n                            }\n                        case 4: {\n                                message.end = reader.int32();\n                                break;\n                            }\n                        default:\n                            reader.skipType(tag & 7);\n                            break;\n                        }\n                    }\n                    return message;\n                };\n\n                /**\n                 * Decodes an Annotation message from the specified reader or buffer, length delimited.\n                 * @function decodeDelimited\n                 * @memberof google.protobuf.GeneratedCodeInfo.Annotation\n                 * @static\n                 * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n                 * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation\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                Annotation.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 Annotation message.\n                 * @function verify\n                 * @memberof google.protobuf.GeneratedCodeInfo.Annotation\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                Annotation.verify = function verify(message) {\n                    if (typeof message !== \"object\" || message === null)\n                        return \"object expected\";\n                    if (message.path != null && message.hasOwnProperty(\"path\")) {\n                        if (!Array.isArray(message.path))\n                            return \"path: array expected\";\n                        for (var i = 0; i < message.path.length; ++i)\n                            if (!$util.isInteger(message.path[i]))\n                                return \"path: integer[] expected\";\n                    }\n                    if (message.sourceFile != null && message.hasOwnProperty(\"sourceFile\"))\n                        if (!$util.isString(message.sourceFile))\n                            return \"sourceFile: string expected\";\n                    if (message.begin != null && message.hasOwnProperty(\"begin\"))\n                        if (!$util.isInteger(message.begin))\n                            return \"begin: integer expected\";\n                    if (message.end != null && message.hasOwnProperty(\"end\"))\n                        if (!$util.isInteger(message.end))\n                            return \"end: integer expected\";\n                    return null;\n                };\n\n                /**\n                 * Creates an Annotation message from a plain object. Also converts values to their respective internal types.\n                 * @function fromObject\n                 * @memberof google.protobuf.GeneratedCodeInfo.Annotation\n                 * @static\n                 * @param {Object.<string,*>} object Plain object\n                 * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation\n                 */\n                Annotation.fromObject = function fromObject(object) {\n                    if (object instanceof $root.google.protobuf.GeneratedCodeInfo.Annotation)\n                        return object;\n                    var message = new $root.google.protobuf.GeneratedCodeInfo.Annotation();\n                    if (object.path) {\n                        if (!Array.isArray(object.path))\n                            throw TypeError(\".google.protobuf.GeneratedCodeInfo.Annotation.path: array expected\");\n                        message.path = [];\n                        for (var i = 0; i < object.path.length; ++i)\n                            message.path[i] = object.path[i] | 0;\n                    }\n                    if (object.sourceFile != null)\n                        message.sourceFile = String(object.sourceFile);\n                    if (object.begin != null)\n                        message.begin = object.begin | 0;\n                    if (object.end != null)\n                        message.end = object.end | 0;\n                    return message;\n                };\n\n                /**\n                 * Creates a plain object from an Annotation message. Also converts values to other types if specified.\n                 * @function toObject\n                 * @memberof google.protobuf.GeneratedCodeInfo.Annotation\n                 * @static\n                 * @param {google.protobuf.GeneratedCodeInfo.Annotation} message Annotation\n                 * @param {$protobuf.IConversionOptions} [options] Conversion options\n                 * @returns {Object.<string,*>} Plain object\n                 */\n                Annotation.toObject = function toObject(message, options) {\n                    if (!options)\n                        options = {};\n                    var object = {};\n                    if (options.arrays || options.defaults)\n                        object.path = [];\n                    if (options.defaults) {\n                        object.sourceFile = \"\";\n                        object.begin = 0;\n                        object.end = 0;\n                    }\n                    if (message.path && message.path.length) {\n                        object.path = [];\n                        for (var j = 0; j < message.path.length; ++j)\n                            object.path[j] = message.path[j];\n                    }\n                    if (message.sourceFile != null && message.hasOwnProperty(\"sourceFile\"))\n                        object.sourceFile = message.sourceFile;\n                    if (message.begin != null && message.hasOwnProperty(\"begin\"))\n                        object.begin = message.begin;\n                    if (message.end != null && message.hasOwnProperty(\"end\"))\n                        object.end = message.end;\n                    return object;\n                };\n\n                /**\n                 * Converts this Annotation to JSON.\n                 * @function toJSON\n                 * @memberof google.protobuf.GeneratedCodeInfo.Annotation\n                 * @instance\n                 * @returns {Object.<string,*>} JSON object\n                 */\n                Annotation.prototype.toJSON = function toJSON() {\n                    return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n                };\n\n                /**\n                 * Gets the default type url for Annotation\n                 * @function getTypeUrl\n                 * @memberof google.protobuf.GeneratedCodeInfo.Annotation\n                 * @static\n                 * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n                 * @returns {string} The default type url\n                 */\n                Annotation.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                    if (typeUrlPrefix === undefined) {\n                        typeUrlPrefix = \"type.googleapis.com\";\n                    }\n                    return typeUrlPrefix + \"/google.protobuf.GeneratedCodeInfo.Annotation\";\n                };\n\n                return Annotation;\n            })();\n\n            return GeneratedCodeInfo;\n        })();\n\n        return protobuf;\n    })();\n\n    return google;\n})();\n\nmodule.exports = $root;\n","/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/\n\"use strict\";\n\nvar $protobuf = require(\"protobufjs/minimal\");\n\n// Common aliases\nvar $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n\n// Exported root namespace\nvar $root = $protobuf.roots[\"default\"] || ($protobuf.roots[\"default\"] = {});\n\n$root.google = (function() {\n\n    /**\n     * Namespace google.\n     * @exports google\n     * @namespace\n     */\n    var google = {};\n\n    google.protobuf = (function() {\n\n        /**\n         * Namespace protobuf.\n         * @memberof google\n         * @namespace\n         */\n        var protobuf = {};\n\n        protobuf.Any = (function() {\n\n            /**\n             * Properties of an Any.\n             * @memberof google.protobuf\n             * @interface IAny\n             * @property {string|null} [typeUrl] Any typeUrl\n             * @property {Uint8Array|null} [value] Any value\n             */\n\n            /**\n             * Constructs a new Any.\n             * @memberof google.protobuf\n             * @classdesc Represents an Any.\n             * @implements IAny\n             * @constructor\n             * @param {google.protobuf.IAny=} [properties] Properties to set\n             */\n            function Any(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             * Any typeUrl.\n             * @member {string} typeUrl\n             * @memberof google.protobuf.Any\n             * @instance\n             */\n            Any.prototype.typeUrl = \"\";\n\n            /**\n             * Any value.\n             * @member {Uint8Array} value\n             * @memberof google.protobuf.Any\n             * @instance\n             */\n            Any.prototype.value = $util.newBuffer([]);\n\n            /**\n             * Creates a new Any instance using the specified properties.\n             * @function create\n             * @memberof google.protobuf.Any\n             * @static\n             * @param {google.protobuf.IAny=} [properties] Properties to set\n             * @returns {google.protobuf.Any} Any instance\n             */\n            Any.create = function create(properties) {\n                return new Any(properties);\n            };\n\n            /**\n             * Encodes the specified Any message. Does not implicitly {@link google.protobuf.Any.verify|verify} messages.\n             * @function encode\n             * @memberof google.protobuf.Any\n             * @static\n             * @param {google.protobuf.IAny} message Any message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Any.encode = function encode(message, writer) {\n                if (!writer)\n                    writer = $Writer.create();\n                if (message.typeUrl != null && Object.hasOwnProperty.call(message, \"typeUrl\"))\n                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.typeUrl);\n                if (message.value != null && Object.hasOwnProperty.call(message, \"value\"))\n                    writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.value);\n                return writer;\n            };\n\n            /**\n             * Encodes the specified Any message, length delimited. Does not implicitly {@link google.protobuf.Any.verify|verify} messages.\n             * @function encodeDelimited\n             * @memberof google.protobuf.Any\n             * @static\n             * @param {google.protobuf.IAny} message Any message or plain object to encode\n             * @param {$protobuf.Writer} [writer] Writer to encode to\n             * @returns {$protobuf.Writer} Writer\n             */\n            Any.encodeDelimited = function encodeDelimited(message, writer) {\n                return this.encode(message, writer).ldelim();\n            };\n\n            /**\n             * Decodes an Any message from the specified reader or buffer.\n             * @function decode\n             * @memberof google.protobuf.Any\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 {google.protobuf.Any} Any\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            Any.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.google.protobuf.Any();\n                while (reader.pos < end) {\n                    var tag = reader.uint32();\n                    switch (tag >>> 3) {\n                    case 1: {\n                            message.typeUrl = reader.string();\n                            break;\n                        }\n                    case 2: {\n                            message.value = reader.bytes();\n                            break;\n                        }\n                    default:\n                        reader.skipType(tag & 7);\n                        break;\n                    }\n                }\n                return message;\n            };\n\n            /**\n             * Decodes an Any message from the specified reader or buffer, length delimited.\n             * @function decodeDelimited\n             * @memberof google.protobuf.Any\n             * @static\n             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n             * @returns {google.protobuf.Any} Any\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            Any.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 Any message.\n             * @function verify\n             * @memberof google.protobuf.Any\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            Any.verify = function verify(message) {\n                if (typeof message !== \"object\" || message === null)\n                    return \"object expected\";\n                if (message.typeUrl != null && message.hasOwnProperty(\"typeUrl\"))\n                    if (!$util.isString(message.typeUrl))\n                        return \"typeUrl: string expected\";\n                if (message.value != null && message.hasOwnProperty(\"value\"))\n                    if (!(message.value && typeof message.value.length === \"number\" || $util.isString(message.value)))\n                        return \"value: buffer expected\";\n                return null;\n            };\n\n            /**\n             * Creates an Any message from a plain object. Also converts values to their respective internal types.\n             * @function fromObject\n             * @memberof google.protobuf.Any\n             * @static\n             * @param {Object.<string,*>} object Plain object\n             * @returns {google.protobuf.Any} Any\n             */\n            Any.fromObject = function fromObject(object) {\n                if (object instanceof $root.google.protobuf.Any)\n                    return object;\n                var message = new $root.google.protobuf.Any();\n                if (object.typeUrl != null)\n                    message.typeUrl = String(object.typeUrl);\n                if (object.value != null)\n                    if (typeof object.value === \"string\")\n                        $util.base64.decode(object.value, message.value = $util.newBuffer($util.base64.length(object.value)), 0);\n                    else if (object.value.length >= 0)\n                        message.value = object.value;\n                return message;\n            };\n\n            /**\n             * Creates a plain object from an Any message. Also converts values to other types if specified.\n             * @function toObject\n             * @memberof google.protobuf.Any\n             * @static\n             * @param {google.protobuf.Any} message Any\n             * @param {$protobuf.IConversionOptions} [options] Conversion options\n             * @returns {Object.<string,*>} Plain object\n             */\n            Any.toObject = function toObject(message, options) {\n                if (!options)\n                    options = {};\n                var object = {};\n                if (options.defaults) {\n                    object.typeUrl = \"\";\n                    if (options.bytes === String)\n                        object.value = \"\";\n                    else {\n                        object.value = [];\n                        if (options.bytes !== Array)\n                            object.value = $util.newBuffer(object.value);\n                    }\n                }\n                if (message.typeUrl != null && message.hasOwnProperty(\"typeUrl\"))\n                    object.typeUrl = message.typeUrl;\n                if (message.value != null && message.hasOwnProperty(\"value\"))\n                    object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value;\n                return object;\n            };\n\n            /**\n             * Converts this Any to JSON.\n             * @function toJSON\n             * @memberof google.protobuf.Any\n             * @instance\n             * @returns {Object.<string,*>} JSON object\n             */\n            Any.prototype.toJSON = function toJSON() {\n                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n            };\n\n            /**\n             * Gets the default type url for Any\n             * @function getTypeUrl\n             * @memberof google.protobuf.Any\n             * @static\n             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default \"type.googleapis.com\")\n             * @returns {string} The default type url\n             */\n            Any.getTypeUrl = function getTypeUrl(typeUrlPrefix) {\n                if (typeUrlPrefix === undefined) {\n                    typeUrlPrefix = \"type.googleapis.com\";\n                }\n                return typeUrlPrefix + \"/google.protobuf.Any\";\n            };\n\n            return Any;\n        })();\n\n        return protobuf;\n    })();\n\n    return google;\n})();\n\nmodule.exports = $root;\n","import {\n  loadPackageDefinition,\n  GrpcObject,\n  ServiceClientConstructor,\n  credentials,\n  Metadata as GrpcMetadata,\n} from \"@grpc/grpc-js\";\nimport { loadSync, Long } from \"@grpc/proto-loader\";\nimport { arrow } from \"./generated/flight\";\nimport { RecordBatchStreamReader, Schema } from \"apache-arrow\";\nimport { Bidirectional, Stream } from \"./grpc_util\";\nimport { RecordBatchStream } from \"./arrow_util\";\n\n// When developing we load files from ../protos\n// In production we load files from the same directory as JS files\nconst PROTO_PATHS = [__dirname + \"/../protos\", __dirname];\n\n/**\n * A FlightInfo describes the schema and location of a flight.\n */\nexport class FlightInfo implements arrow.flight.protocol.IFlightInfo {\n  private inner: arrow.flight.protocol.IFlightInfo;\n  private decodedSchema_?: Schema;\n\n  constructor(inner: arrow.flight.protocol.IFlightInfo) {\n    this.inner = inner;\n  }\n\n  /**\n   * The schema of the flight, decoded from the schema buffer into an Arrow Schema object.\n   */\n  public get decodedSchema(): Schema | null {\n    if (!this.decodedSchema_) {\n      if (!this.schema) {\n        return null;\n      }\n      const reader = RecordBatchStreamReader.from(this.schema);\n      const batches = reader.readAll();\n      this.decodedSchema_ = batches[0].schema;\n    }\n    return this.decodedSchema_;\n  }\n\n  /**\n   * The raw schema data for the flight.\n   *\n   * @see {@link decodedSchema} for the schema as an Arrow Schema object.\n   */\n  public get schema(): Uint8Array | null | undefined {\n    return this.inner.schema;\n  }\n\n  /**\n   * The descriptor for the flight.\n   *\n   * This is generally the same as the descriptor used to get the flight info in the first place.\n   */\n  public get flightDescriptor(): arrow.flight.protocol.IFlightDescriptor | null | undefined {\n    return this.inner.flightDescriptor;\n  }\n\n  /**\n   * The endpoints for the flight.\n   *\n   * These describe where the data can be retrieved and may include a \"ticket\" which will be\n   * required to actually retrieve the data.\n   */\n  public get endpoint(): arrow.flight.protocol.IFlightEndpoint[] | null | undefined {\n    return this.inner.endpoint;\n  }\n\n  /**\n   * The total number of records in the flight, if known in advance\n   */\n  public get totalRecords(): number | Long | null | undefined {\n    return this.inner.totalRecords;\n  }\n\n  /**\n   * The total number of bytes in the flight, if known in advance\n   */\n  public get totalBytes(): number | Long | null | undefined {\n    return this.inner.totalBytes;\n  }\n\n  /**\n   * Whether the data in the flight is ordered or not, if known\n   */\n  public get ordered(): boolean | null | undefined {\n    return this.inner.ordered;\n  }\n\n  /**\n   * The application-specific metadata for the flight, if any\n   */\n  public get appMetadata(): Uint8Array | null | undefined {\n    return this.inner.appMetadata;\n  }\n}\n\n/**\n * A client for the Arrow Flight protocol.\n */\nexport class FlightClient {\n  private protoDescriptor: GrpcObject;\n  // TODO: Figure out why protobuf gen is not generating correct method signatures for FlightService\n  // It doesn't seem to support streaming methods and types them all as RPCUnary.  For now we just use\n  // any to avoid the type errors.\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  private client: any;\n  private default_metadata: Record<string, string>;\n\n  /**\n   * Create a new FlightClient.\n   *\n   * No actual messages are sent yet.\n   *\n   * @param host The hostname / port of the server, separated by a colon\n   */\n  public constructor(host: string) {\n    const packageDefinition = loadSync(\"Flight.proto\", {\n      longs: String,\n      enums: String,\n      defaults: true,\n      oneofs: true,\n      includeDirs: PROTO_PATHS,\n    });\n    this.protoDescriptor = loadPackageDefinition(packageDefinition);\n    this.default_metadata = {};\n    const arrow = this.protoDescriptor.arrow as GrpcObject;\n    const flight = arrow.flight as GrpcObject;\n    const flight_protocol = flight.protocol as GrpcObject;\n    const flight_service = flight_protocol.FlightService as ServiceClientConstructor;\n    this.client = new flight_service(\n      host,\n      credentials.createInsecure(),\n      {},\n    ) as unknown as arrow.flight.protocol.FlightService;\n  }\n\n  // Merges any call-specific metadata with the client's default metadata\n  private get_metadata(custom_metadata?: Record<string, string>): GrpcMetadata {\n    const metadata = new GrpcMetadata();\n    for (const key in this.default_metadata) {\n      metadata.set(key, this.default_metadata[key]);\n    }\n    if (custom_metadata) {\n      for (const key in custom_metadata) {\n        metadata.set(key, custom_metadata[key]);\n      }\n    }\n    return metadata;\n  }\n\n  /**\n   * Sets the default metadata to be sent on all calls.\n   *\n   * Typically this is the authorization token.\n   * @param metadata The metadata to send\n   */\n  public set_default_metadata(metadata: Record<string, string>): void {\n    this.default_metadata = metadata;\n  }\n\n  /**\n   * Execute a handshake with the server.\n   * @param metadata Call specific metadata to send\n   * @returns A bidirectional stream of handshake messages\n   */\n  public handshake(\n    metadata: Record<string, string>,\n  ): Bidirectional<\n    arrow.flight.protocol.IHandshakeRequest,\n    arrow.flight.protocol.IHandshakeResponse,\n    arrow.flight.protocol.IHandshakeResponse\n  > {\n    const call = this.client.handshake(this.get_metadata(metadata));\n    return new Bidirectional(call, arrow.flight.protocol.HandshakeRequest.encode);\n  }\n\n  /**\n   * Get info about a flight.\n   * @param descriptor Describes the flight to get info about (i.e. path or command)\n   * @returns The flight info\n   */\n  public async getFlightInfo(descriptor: arrow.flight.protocol.IFlightDescriptor): Promise<FlightInfo> {\n    return new Promise((resolve, reject) => {\n      this.client.getFlightInfo(\n        descriptor,\n        this.get_metadata(),\n        (err: unknown, info: arrow.flight.protocol.IFlightInfo) => {\n          if (err) {\n            reject(err);\n          }\n          resolve(new FlightInfo(info));\n        },\n      );\n    });\n  }\n\n  /**\n   * Retrieve the data for a flight.\n   * @param ticket A ticket, obtained by an earlier call to getFlightInfo\n   * @param schema The expected schema of the data\n   * @returns A stream of record batches\n   */\n  public async doGet(ticket: arrow.flight.protocol.ITicket, schema: Schema): Promise<RecordBatchStream> {\n    const call = this.client.doGet(ticket, this.get_metadata());\n    const rawStream = new Stream<arrow.flight.protocol.IFlightData, arrow.flight.protocol.IFlightData>(call);\n    return await RecordBatchStream.create(rawStream, schema);\n  }\n}\n","class Deferred<T> {\n  public resolve!: (value: T | PromiseLike<T>) => void;\n  public reject!: (reason?: unknown) => void;\n  public promise = new Promise<T>((resolve, reject) => {\n    this.resolve = resolve;\n    this.reject = reject;\n  });\n}\n\ninterface Result<T> {\n  error?: unknown;\n  value?: T;\n}\n\n// An unbounded channel for bridging pull-based and push-based async code\nexport class SimpleChannel<T> {\n  private waitingToDeliver: Result<T>[] = [];\n  private waitingToFulfill: Deferred<IteratorResult<T>>[] = [];\n  private closed = false;\n  private onCancel: (() => void) | null = null;\n\n  constructor(onCancel: (() => void) | null) {\n    this.onCancel = onCancel;\n  }\n\n  next(): Promise<IteratorResult<T>> {\n    // We have queued results, deliver those\n    if (this.waitingToDeliver.length !== 0) {\n      const next = this.waitingToDeliver.shift()!;\n      if (next.error) {\n        return Promise.reject(next.error);\n      } else {\n        return Promise.resolve({\n          value: next.value!,\n          done: false,\n        });\n      }\n    }\n\n    // No queued results and no more are coming, we must be done\n    if (this.closed) {\n      return Promise.resolve({\n        done: true,\n        value: undefined,\n      });\n    }\n\n    // No queued results, but more may be coming, queue up a promise\n    const deferred = new Deferred<IteratorResult<T>>();\n    this.waitingToFulfill.push(deferred);\n    return deferred.promise;\n  }\n\n  push(value: T): void {\n    if (this.closed) {\n      // Don't waste buffer space if no one is listening\n      return;\n    }\n    // Someone is already waiting for this value, deliver it to them\n    if (this.waitingToFulfill.length !== 0) {\n      this.waitingToFulfill.shift()!.resolve({\n        value,\n        done: false,\n      });\n    } else {\n      // No one is waiting for the value yet, queue it up\n      this.waitingToDeliver.push({ value });\n    }\n  }\n\n  push_err(err: unknown): void {\n    if (this.closed) {\n      // Don't waste buffer space if no one is listening\n      return;\n    }\n    // Someone is already waiting for this value, deliver it to them\n    if (this.waitingToFulfill.length !== 0) {\n      this.waitingToFulfill.shift()!.reject(err);\n    } else {\n      // No one is waiting for the value yet, queue it up\n      this.waitingToDeliver.push({ error: err });\n    }\n  }\n\n  [Symbol.asyncIterator]() {\n    return this;\n  }\n\n  close(): void {\n    if (this.closed) {\n      return;\n    }\n    this.closed = true;\n    for (const deferred of this.waitingToFulfill) {\n      deferred.resolve({\n        done: true,\n        value: undefined,\n      });\n    }\n    this.waitingToFulfill = [];\n  }\n\n  doCancel(): void {\n    this.closed = true;\n    if (this.onCancel) {\n      this.onCancel();\n    }\n  }\n\n  async return(value?: T): Promise<IteratorResult<T>> {\n    this.doCancel();\n    return {\n      done: true,\n      value: value!,\n    };\n  }\n\n  async throw(): Promise<IteratorResult<T>> {\n    this.doCancel();\n    return {\n      done: true,\n      value: undefined,\n    };\n  }\n}\n\nexport async function lastValueFrom<T>(iterable: AsyncIterable<T>): Promise<T | undefined> {\n  let last: T | undefined;\n  for await (const value of iterable) {\n    last = value;\n  }\n  return last;\n}\n\nexport async function firstValueFrom<T>(iterable: AsyncIterable<T>): Promise<T | undefined> {\n  for await (const value of iterable) {\n    // Returning from the for/await loop early should trigger JS to call `return` on the iterator\n    // and this will cancel any underlying GRPC call so we don't waste time listening for more results\n    // in the background.\n    return value;\n  }\n  return undefined;\n}\n","import { Metadata as GrpcMetadata } from \"@grpc/grpc-js\";\nimport { SimpleChannel } from \"./async_util\";\nimport { Writer } from \"protobufjs\";\n\n// Utilities for working with GRPC\n\n/**\n * Wrapper around GRPC Metadata to make it easier to work with and reduce the\n * amount of GRPC-specific code in the rest of the application.\n */\nexport class Metadata {\n  inner: GrpcMetadata;\n\n  /**\n   * Create a new Metadata object.\n   * @param inner the GRPC Metadata object to wrap.\n   */\n  constructor(inner: GrpcMetadata) {\n    this.inner = inner;\n  }\n\n  /**\n   * Get all values for a given key.\n   * @param key the key to get values for.\n   * @returns an array of values for the key.\n   */\n  public get(key: string): (string | Buffer)[] {\n    return this.inner.get(key);\n  }\n\n  /**\n   * Get the first value for a given key.\n   * @param key the key to get the value for.\n   * @returns the first value for the key, or null if the key does not exist.\n   */\n  public get_first_instance(key: string): string | Buffer | null {\n    const values = this.inner.get(key);\n    if (values.length > 0) {\n      return values[0];\n    } else {\n      return null;\n    }\n  }\n\n  /**\n   * Get the first value for a given key as a string.\n   * @param key the key to get the value for.\n   * @param encoding the encoding to use when converting the value to a string (defaults to UTF-8)\n   * @returns the first value for the key as a string, or null if the key does not exist.\n   */\n  get_first_string(key: string, encoding?: BufferEncoding): string | null {\n    const value = this.get_first_instance(key);\n    if (value) {\n      if (Buffer.isBuffer(value)) {\n        return value.toString(encoding);\n      } else {\n        return value;\n      }\n    } else {\n      return null;\n    }\n  }\n}\n\n/**\n * Messages from GRPC can be data or metadata. This type represents a message\n * that can be either.\n *\n * Only one of the data or metadata fields will be set.\n */\nexport interface Envelope<O> {\n  data?: O;\n  metadata?: Metadata;\n}\n\n/**\n * A stream of messages from a GRPC call.\n *\n * This converts GRPC's push-style API to a pull-style API creating a channel\n * that can be read as an async iterator.\n *\n * An optional messageDecoder can be provided to convert the GRPC messages to\n * the desired output type.  If not used then GrpcOutput and StreamOutput should\n * be the same type.\n *\n * @param GrpcOutput the type of messages received from the GRPC call.\n * @param StreamOutput the type of messages that will be returned by the stream.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport class Stream<GrpcOutput, StreamOutput> {\n  responses_: SimpleChannel<Envelope<StreamOutput>>;\n\n  /**\n   * Cancel the GRPC call.\n   *\n   * If this is not called, but the stream is not fully consumed, the GRPC call\n   * will continue to run in the background.\n   */\n  public cancel(): void {\n    this.call.cancel();\n  }\n\n  /**\n   * An async iterator that yields messages from the GRPC call.\n   */\n  get responses(): AsyncIterable<Envelope<StreamOutput>> {\n    return this.responses_;\n  }\n\n  protected call: any;\n  private messageDecoder?: (msg: GrpcOutput) => StreamOutput;\n\n  constructor(call: any, messageDecoder?: (msg: GrpcOutput) => StreamOutput) {\n    this.call = call;\n    this.messageDecoder = messageDecoder;\n    this.responses_ = new SimpleChannel<Envelope<StreamOutput>>(() => call.cancel());\n    call.on(\"data\", (data: any) => {\n      if (this.messageDecoder) {\n        data = this.messageDecoder(data);\n      }\n      this.responses_.push({ data });\n    });\n    call.on(\"status\", (status: { code: number; metadata: GrpcMetadata }) => {\n      if (status.code === 0) {\n        this.responses_.push({ metadata: new Metadata(status.metadata) });\n      }\n    });\n    call.on(\"metadata\", (metadata: GrpcMetadata) => {\n      this.responses_.push({ metadata: new Metadata(metadata) });\n    });\n    call.on(\"error\", (error: any) => {\n      this.responses_.push_err(error);\n    });\n    call.on(\"end\", () => {\n      this.responses_.close();\n    });\n  }\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/**\n * A bidirectional stream of messages to and from a GRPC call.\n *\n * This is the same as Stream, but with an additional send method to send\n * messages to the GRPC call.\n *\n * A messageEncoder is required to convert the messages to the format expected\n * by the GRPC call. (typically this is the encode method from the protobufjs\n * generated message type).\n *\n * @param StreamInput the type of messages that will be sent to the GRPC call.\n * @param GrpcOutput the type of messages received from the GRPC call.\n * @param StreamOutput the type of messages that will be returned by the stream.\n */\nexport class Bidirectional<StreamInput, GrpcOutput, StreamOutput> extends Stream<GrpcOutput, StreamOutput> {\n  /**\n   * Send a message to the GRPC call.\n   * @param item the message to send.\n   */\n  public send(item: StreamInput): void {\n    this.call.write(this.messageEncoder(item));\n  }\n\n  private messageEncoder: (msg: StreamInput) => Writer;\n\n  constructor(\n    call: unknown,\n    messageEncoder: (msg: StreamInput) => Writer,\n    messageDecoder?: (msg: GrpcOutput) => StreamOutput,\n  ) {\n    super(call, messageDecoder);\n    this.messageEncoder = messageEncoder;\n  }\n}\n","import { AsyncRecordBatchStreamReader, Schema } from \"apache-arrow\";\n\nimport { arrow } from \"./generated/flight\";\nimport { Stream } from \"./grpc_util\";\nimport { RecordBatchStreamReader } from \"apache-arrow\";\nimport { pipe, filter, map } from \"iter-ops\";\n\n/**\n * An async iterator of Arrow record batches that also has a schema.\n */\nexport class RecordBatchStream {\n  private batches: AsyncRecordBatchStreamReader;\n  /**\n   * The schema of the record batches.\n   */\n  schema: Schema;\n\n  constructor(batches: AsyncRecordBatchStreamReader, schema: Schema) {\n    this.batches = batches;\n    this.schema = schema;\n  }\n\n  // Creates an IPC stream message from a FlightData message.\n  //\n  // Note: this introduces a data copy.  It would be better to avoid this.\n  // However, this will require changes to the Arrow package (I think) to allow for\n  // the header and body to be in separate buffers.\n  private static createIpcMessage(data: arrow.flight.protocol.IFlightData): Uint8Array {\n    if (!data.dataHeader || !data.dataBody) {\n      throw new Error(\"Data header or body missing\");\n    }\n\n    const headerLength = data.dataHeader.length;\n    const padBytes = (8 - (headerLength & 7)) & 7;\n\n    // TODO: Avoid copy\n    const ipcMessage = new Uint8Array(8 + data.dataHeader?.length + padBytes + data.dataBody?.length);\n    // Continuation header\n    ipcMessage[0] = 0xff;\n    ipcMessage[1] = 0xff;\n    ipcMessage[2] = 0xff;\n    ipcMessage[3] = 0xff;\n    // Header length\n    new DataView(ipcMessage.buffer, 4, 4).setInt32(0, headerLength, true);\n    // Header\n    ipcMessage.set(data.dataHeader!, 8);\n    // Pad bytes\n    ipcMessage.fill(0, 8 + data.dataHeader?.length, 8 + data.dataHeader?.length + padBytes);\n    // Body\n    ipcMessage.set(data.dataBody!, data.dataHeader?.length + 8 + padBytes);\n\n    return ipcMessage;\n  }\n\n  /**\n   * Creates a new RecordBatchStream from a Flight data stream.\n   * @param dataStream A stream of FlightData messages\n   * @param schema The schema of the stream\n   * @returns A RecordBatchStream\n   */\n  public static async create(\n    dataStream: Stream<arrow.flight.protocol.IFlightData, arrow.flight.protocol.IFlightData>,\n    schema: Schema,\n  ): Promise<RecordBatchStream> {\n    // RecordBatchStreamReader doesn't know how to read flight data but it does know how to read an IPC\n    // stream and flight data is close enough.\n    // We create an async iterator of byte buffers and then create a RecordBatchStreamReader from that.\n    const messages = pipe(\n      dataStream.responses,\n      filter((envelope) => !!envelope.data),\n      map((envelope) => this.createIpcMessage(envelope.data!)),\n    );\n\n    const batches = await RecordBatchStreamReader.from(messages);\n\n    return new RecordBatchStream(batches, schema);\n  }\n\n  // This marks the class as an async iterable.\n  public [Symbol.asyncIterator]() {\n    return this.batches[Symbol.asyncIterator]();\n  }\n}\n","import { RecordBatchStream } from \"./arrow_util\";\nimport { FlightClient } from \"./flight\";\n\nimport { arrow } from \"./generated/flight\";\nimport { arrow as fsql } from \"./generated/flightsql\";\nimport { google } from \"./generated/any\";\nimport { firstValueFrom } from \"./async_util\";\n\n// Some quick duck-typing to state what we expect from protobuf messages\ninterface WriterLike {\n  finish(): Uint8Array;\n}\n\n// Some quick duck-typing to state what we expect from protobuf messages\n// (used in FlightSqlClient.packAny)\ninterface MessageLike {\n  getTypeUrl(prefix?: string): string;\n  encode(message: unknown): WriterLike;\n}\n\n/**\n * A client for the Flight SQL API.\n */\nexport class FlightSqlClient {\n  private flight: FlightClient;\n\n  // Use the static connect method to create a new instance.\n  private constructor(flight: FlightClient) {\n    this.flight = flight;\n  }\n\n  private async login(username: string, password: string, defaultDatabase?: string): Promise<void> {\n    // Most servers seem to use Basic auth for the handshake to get a token.\n    // The GRPC headers (and not the handshake request / response) are used to\n    // transmit the username, password, and token.\n    const auth = \"Basic \" + btoa(username + \":\" + password);\n    const call = this.flight.handshake({\n      authorization: auth,\n    });\n    // This seems pretty much unused by the server but we send it anyways\n    const hello: arrow.flight.protocol.IHandshakeRequest = {\n      payload: new Uint8Array(),\n      protocolVersion: 0,\n    };\n    call.send(hello);\n    try {\n      // The method is defined as a streaming method but all instances I've encountered so far send\n      // a single response.\n      //\n      // The logic here is maybe not ideal.  If a server someone sends an empty metadata message and then\n      // a populated data payload message, then we will see the empty payload message first and fail to\n      // wait for the next message.  We can optimize this later if we see it in the wild.\n      const helloRsp = await firstValueFrom(call.responses);\n\n      const defaultMetadata = {};\n      if (defaultDatabase) {\n        defaultMetadata[\"database\"] = defaultDatabase;\n      }\n\n      if (helloRsp?.data?.payload) {\n        // If we get a payload prefer that as a token\n        const payload = new TextDecoder().decode(helloRsp.data.payload);\n        defaultMetadata[\"authorization\"] = \"Bearer \" + payload;\n        this.flight.set_default_metadata(defaultMetadata);\n      } else if (helloRsp?.metadata) {\n        // Otherwise if we get metadata then use that as the token\n        const authorization = helloRsp.metadata.get_first_string(\"authorization\");\n        if (!authorization) {\n          throw new Error(\"Handshake failed, metadata received but no authorization header present\");\n        }\n        defaultMetadata[\"authorization\"] = authorization;\n        this.flight.set_default_metadata(defaultMetadata);\n      } else {\n        throw new Error(\"Handshake failed, no metadata or data received from server before call completed\");\n      }\n    } finally {\n      // Since we are only taking the first value we should cancel just in case the sender is trying\n      // to send more values.\n      //\n      // TODO: Investigate if this is redundant.  firstValueFrom should call the return method on the\n      // iterator which should cancel the call.\n      call.cancel();\n    }\n  }\n\n  /**\n   * Connect to a Flight SQL server.\n   *\n   * This method will perform a handshake with the server and return a client that can be used to\n   * execute queries.\n   *\n   * @param host The hostname / port of the server, separated by a colon\n   * @param username The username to use for the handshake\n   * @param password The password to use for the handshake\n   * @returns A client that can be used to execute queries\n   */\n  public static async connect(\n    host: string,\n    username: string,\n    password: string,\n    defaultDatabase?: string,\n  ): Promise<FlightSqlClient> {\n    const sql = new FlightClient(host);\n    const client = new FlightSqlClient(sql);\n    await client.login(username, password, defaultDatabase);\n    return client;\n  }\n\n  // Helper method to create a protobuf Any message\n  private static packAny(message: MessageLike, thing: unknown): Uint8Array {\n    const packed: google.protobuf.IAny = {\n      typeUrl: message.getTypeUrl(),\n      value: message.encode(thing).finish(),\n    };\n    return google.protobuf.Any.encode(packed).finish();\n  }\n\n  // A \"command\" is a type of Flight descriptor that has no path.  FlightSQL makes frequent use of these.\n  private static makeCmd(message: MessageLike, thing: unknown): arrow.flight.protocol.IFlightDescriptor {\n    const cmd = FlightSqlClient.packAny(message, thing);\n    return {\n      type: arrow.flight.protocol.FlightDescriptor.DescriptorType.CMD,\n      cmd,\n    };\n  }\n\n  /**\n   * Query the server with an SQL statement.\n   * @param query the query to send\n   * @returns a stream of record batches that contain the results of the query\n   */\n  public async statementQuery(query: fsql.flight.protocol.sql.ICommandStatementQuery): Promise<RecordBatchStream> {\n    const cmd = FlightSqlClient.makeCmd(fsql.flight.protocol.sql.CommandStatementQuery, query);\n\n    // We first call getFlightInfo to \"start the query\" and then call doGet to get the actual data.\n    const ticket_call = await this.flight.getFlightInfo(cmd);\n    const schema = ticket_call.decodedSchema;\n\n    if (!schema) {\n      throw new Error(\"No schema provided by server\");\n    }\n\n    if (!ticket_call.endpoint) {\n      throw new Error(\"No endpoint provided by server\");\n    }\n    if (ticket_call.endpoint.length !== 1) {\n      throw new Error(\"Expected exactly one endpoint\");\n    }\n    const endpoint = ticket_call.endpoint[0];\n    if (endpoint.location && endpoint.location.length > 0) {\n      throw new Error(\"Cannot handle remote location: \" + endpoint.location);\n    }\n\n    if (!endpoint.ticket) {\n      throw new Error(\"No ticket provided by server\");\n    }\n    const ticket = endpoint.ticket;\n\n    return this.flight.doGet(ticket, schema);\n  }\n}\n","import { RecordBatchStream } from \"./arrow_util\";\nimport { FlightSqlClient } from \"./flightsql\";\nimport { arrow as fsql } from \"./generated/flightsql\";\nimport { RecordBatch } from \"apache-arrow\";\nimport { pipe, toArray } from \"iter-ops\";\n\n/**\n * Options for creating a new client.\n */\nexport interface ClientOptions {\n  /**\n   * The host and port to connect to, separated by a colon\n   */\n  host: string;\n  /**\n   * The username to login as\n   */\n  username: string;\n  /**\n   * The password to login with\n   */\n  password: string;\n  /**\n   * The default database to use (non-standard, only supported on some servers)\n   */\n  defaultDatabase?: string;\n  /**\n   * Is the server using TLS?  If not, this must be set to true.\n   */\n  insecure?: boolean;\n}\n\n/**\n * A query to execute.\n */\nexport interface Query {\n  /**\n   * The SQL text to execute\n   */\n  text: string;\n  /**\n   * The values to bind to the query\n   */\n  values: unknown[];\n}\n\n/**\n * The result of a query.\n *\n * The result data can be fetched in a variety of formats.  In most cases, if the returned data is reasonably\n * small, it is best to use `collectToObjects` to get the data as an array of plain JS objects.\n */\nexport class QueryResult {\n  private raw: RecordBatchStream;\n\n  constructor(raw: RecordBatchStream) {\n    this.raw = raw;\n  }\n\n  /**\n   * Convert the result to a stream of Arrow record batches.\n   *\n   * Warning: The Arrow package uses a number of `instanceof` checks to determine the type of objects.  For\n   * these to work correctly, the Arrow package your application is using  must be the exact same version\n   * used by this package.  In addition, the Arrow package must be loaded in the same context as this package.\n   * This process can often fail in the presence of bundlers like Webpack or Rollup.\n   *\n   * If you are using a bundler, it is recommended to use `collectToObjects` instead.\n   *\n   * @returns a stream of Arrow record batches\n   */\n  public toArrowStream(): AsyncIterable<RecordBatch> {\n    return this.raw;\n  }\n\n  /**\n   * Consume all results into an array of Arrow record batches.\n   *\n   * Warning: @see toArrowStream for details on the Arrow package versioning requirements.\n   * Warning: This will fully consume the stream, so if the stream is large, this may consume a lot of memory.\n   * @returns an array of Arrow record batches\n   */\n  public async collectToArrow(): Promise<RecordBatch[]> {\n    const batches = await pipe(this.raw, toArray()).first;\n    return batches ?? [];\n  }\n\n  /**\n   * Consume all results into an array of plain JS objects.\n   *\n   * Warning: This will fully consume the stream, so if the stream is large, this may consume a lot of memory.\n   * @returns an array of plain JS objects\n   */\n  public async collectToObjects(): Promise<unknown[]> {\n    const collectedBatches = await this.collectToArrow();\n    const batchesOfRows = collectedBatches.map((batch) => batch.toArray());\n    if (batchesOfRows.length == 0) {\n      return [];\n    } else if (batchesOfRows.length == 1) {\n      return batchesOfRows[0];\n    } else {\n      const first = batchesOfRows[0];\n      const rest = batchesOfRows.slice(1);\n      return first.concat(...rest);\n    }\n  }\n}\n\n/**\n * A client for executing SQL queries against a Flight SQL server.\n */\nexport class Client {\n  private sql: FlightSqlClient;\n\n  private constructor(sql: FlightSqlClient) {\n    this.sql = sql;\n  }\n\n  /**\n   * Connect to a Flight SQL server.\n   * @param options client options to use for connection\n   * @returns A client that can be used to execute queries\n   */\n  public static async connect(options: ClientOptions): Promise<Client> {\n    const sql = await FlightSqlClient.connect(\n      options.host,\n      options.username,\n      options.password,\n      options.defaultDatabase,\n    );\n    return new Client(sql);\n  }\n\n  /**\n   * Query the server with an SQL statement.\n   *\n   * Note: only read-only queries are supported.\n   *\n   * @param sql the SQL statement to execute\n   * @returns the result of the query\n   */\n  public async query(sql: string): Promise<QueryResult> {\n    const query: fsql.flight.protocol.sql.ICommandStatementQuery = {\n      query: sql,\n    };\n    const batches = await this.sql.statementQuery(query);\n    return new QueryResult(batches);\n  }\n}\n"],"mappings":"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","names":["arrow","FlightInfo","Error","google","arrow","google","google","RecordBatchStreamReader","RecordBatchStreamReader","arrow","import_flight","fsql","pipe","pipe"]}