PageSourceSearch

https://letniysad.online/bitrix/js/pull/protobuf/model.js?179069872596018

js letniysad.online collected 2026-09-30 02:51:35 UTC 96,018 bytes, 2,430 lines download raw bytes

1/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/
2// Generated by: pbjs -t static-module -w default -r push-server --no-verify --no-convert --no-delimited -p pull/dev/protobuf -o model.js request.proto response.proto (protobufjs-cli 1.3.3, protobufjs 7.6.5)
3// Local modification (reapply after regenerating): the UMD wrapper pbjs emits is replaced with
4// the global runtime lookup at the end of this file, so the model finds the protobuf runtime
5// without AMD/CommonJS and also works in SharedWorker.
6(function($protobuf) {
7    "use strict";
8
9    // Common aliases
10    var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;
11
12    // Exported root namespace
13    var $root = $protobuf.roots["push-server"] || ($protobuf.roots["push-server"] = {});
14
15    $root.RequestBatch = (function() {
16
17        /**
18         * Properties of a RequestBatch.
19         * @exports IRequestBatch
20         * @interface IRequestBatch
21         * @property {Array.<IRequest>|null} [requests] RequestBatch requests
22         */
23
24        /**
25         * Constructs a new RequestBatch.
26         * @exports RequestBatch
27         * @classdesc Represents a RequestBatch.
28         * @implements IRequestBatch
29         * @constructor
30         * @param {IRequestBatch=} [properties] Properties to set
31         */
32        function RequestBatch(properties) {
33            this.requests = [];
34            if (properties)
35                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
36                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
37                        this[keys[i]] = properties[keys[i]];
38        }
39
40        /**
41         * RequestBatch requests.
42         * @member {Array.<IRequest>} requests
43         * @memberof RequestBatch
44         * @instance
45         */
46        RequestBatch.prototype.requests = $util.emptyArray;
47
48        /**
49         * Creates a new RequestBatch instance using the specified properties.
50         * @function create
51         * @memberof RequestBatch
52         * @static
53         * @param {IRequestBatch=} [properties] Properties to set
54         * @returns {RequestBatch} RequestBatch instance
55         */
56        RequestBatch.create = function create(properties) {
57            return new RequestBatch(properties);
58        };
59
60        /**
61         * Encodes the specified RequestBatch message. Does not implicitly {@link RequestBatch.verify|verify} messages.
62         * @function encode
63         * @memberof RequestBatch
64         * @static
65         * @param {IRequestBatch} message RequestBatch message or plain object to encode
66         * @param {$protobuf.Writer} [writer] Writer to encode to
67         * @returns {$protobuf.Writer} Writer
68         */
69        RequestBatch.encode = function encode(message, writer, q) {
70            if (!writer)
71                writer = $Writer.create();
72            if (q === undefined)
73                q = 0;
74            if (q > $util.recursionLimit)
75                throw Error("max depth exceeded");
76            if (message.requests != null && message.requests.length)
77                for (var i = 0; i < message.requests.length; ++i)
78                    $root.Request.encode(message.requests[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim();
79            return writer;
80        };
81
82        /**
83         * Decodes a RequestBatch message from the specified reader or buffer.
84         * @function decode
85         * @memberof RequestBatch
86         * @static
87         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
88         * @param {number} [length] Message length if known beforehand
89         * @returns {RequestBatch} RequestBatch
90         * @throws {Error} If the payload is not a reader or valid buffer
91         * @throws {$protobuf.util.ProtocolError} If required fields are missing
92         */
93        RequestBatch.decode = function decode(reader, length, error, long) {
94            if (!(reader instanceof $Reader))
95                reader = $Reader.create(reader);
96            if (long === undefined)
97                long = 0;
98            if (long > $Reader.recursionLimit)
99                throw Error("maximum nesting depth exceeded");
100            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.RequestBatch();
101            while (reader.pos < end) {
102                var tag = reader.uint32();
103                if (tag === error)
104                    break;
105                switch (tag >>> 3) {
106                case 1: {
107                        if (!(message.requests && message.requests.length))
108                            message.requests = [];
109                        message.requests.push($root.Request.decode(reader, reader.uint32(), undefined, long + 1));
110                        break;
111                    }
112                default:
113                    reader.skipType(tag & 7, long);
114                    break;
115                }
116            }
117            return message;
118        };
119
120        /**
121         * Gets the default type url for RequestBatch
122         * @function getTypeUrl
123         * @memberof RequestBatch
124         * @static
125         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
126         * @returns {string} The default type url
127         */
128        RequestBatch.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
129            if (typeUrlPrefix === undefined) {
130                typeUrlPrefix = "type.googleapis.com";
131            }
132            return typeUrlPrefix + "/RequestBatch";
133        };
134
135        return RequestBatch;
136    })();
137
138    $root.Request = (function() {
139
140        /**
141         * Properties of a Request.
142         * @exports IRequest
143         * @interface IRequest
144         * @property {IIncomingMessagesRequest|null} [incomingMessages] Request incomingMessages
145         * @property {IChannelStatsRequest|null} [channelStats] Request channelStats
146         * @property {IServerStatsRequest|null} [serverStats] Request serverStats
147         * @property {IRegisterRequest|null} [registration] Request registration
148         */
149
150        /**
151         * Constructs a new Request.
152         * @exports Request
153         * @classdesc Represents a Request.
154         * @implements IRequest
155         * @constructor
156         * @param {IRequest=} [properties] Properties to set
157         */
158        function Request(properties) {
159            if (properties)
160                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
161                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
162                        this[keys[i]] = properties[keys[i]];
163        }
164
165        /**
166         * Request incomingMessages.
167         * @member {IIncomingMessagesRequest|null|undefined} incomingMessages
168         * @memberof Request
169         * @instance
170         */
171        Request.prototype.incomingMessages = null;
172
173        /**
174         * Request channelStats.
175         * @member {IChannelStatsRequest|null|undefined} channelStats
176         * @memberof Request
177         * @instance
178         */
179        Request.prototype.channelStats = null;
180
181        /**
182         * Request serverStats.
183         * @member {IServerStatsRequest|null|undefined} serverStats
184         * @memberof Request
185         * @instance
186         */
187        Request.prototype.serverStats = null;
188
189        /**
190         * Request registration.
191         * @member {IRegisterRequest|null|undefined} registration
192         * @memberof Request
193         * @instance
194         */
195        Request.prototype.registration = null;
196
197        // OneOf field names bound to virtual getters and setters
198        var $oneOfFields;
199
200        /**
201         * Request command.
202         * @member {"incomingMessages"|"channelStats"|"serverStats"|"registration"|undefined} command
203         * @memberof Request
204         * @instance
205         */
206        Object.defineProperty(Request.prototype, "command", {
207            get: $util.oneOfGetter($oneOfFields = ["incomingMessages", "channelStats", "serverStats", "registration"]),
208            set: $util.oneOfSetter($oneOfFields)
209        });
210
211        /**
212         * Creates a new Request instance using the specified properties.
213         * @function create
214         * @memberof Request
215         * @static
216         * @param {IRequest=} [properties] Properties to set
217         * @returns {Request} Request instance
218         */
219        Request.create = function create(properties) {
220            return new Request(properties);
221        };
222
223        /**
224         * Encodes the specified Request message. Does not implicitly {@link Request.verify|verify} messages.
225         * @function encode
226         * @memberof Request
227         * @static
228         * @param {IRequest} message Request message or plain object to encode
229         * @param {$protobuf.Writer} [writer] Writer to encode to
230         * @returns {$protobuf.Writer} Writer
231         */
232        Request.encode = function encode(message, writer, q) {
233            if (!writer)
234                writer = $Writer.create();
235            if (q === undefined)
236                q = 0;
237            if (q > $util.recursionLimit)
238                throw Error("max depth exceeded");
239            if (message.incomingMessages != null && Object.hasOwnProperty.call(message, "incomingMessages"))
240                $root.IncomingMessagesRequest.encode(message.incomingMessages, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim();
241            if (message.channelStats != null && Object.hasOwnProperty.call(message, "channelStats"))
242                $root.ChannelStatsRequest.encode(message.channelStats, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim();
243            if (message.serverStats != null && Object.hasOwnProperty.call(message, "serverStats"))
244                $root.ServerStatsRequest.encode(message.serverStats, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim();
245            if (message.registration != null && Object.hasOwnProperty.call(message, "registration"))
246                $root.RegisterRequest.encode(message.registration, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim();
247            return writer;
248        };
249
250        /**
251         * Decodes a Request message from the specified reader or buffer.
252         * @function decode
253         * @memberof Request
254         * @static
255         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
256         * @param {number} [length] Message length if known beforehand
257         * @returns {Request} Request
258         * @throws {Error} If the payload is not a reader or valid buffer
259         * @throws {$protobuf.util.ProtocolError} If required fields are missing
260         */
261        Request.decode = function decode(reader, length, error, long) {
262            if (!(reader instanceof $Reader))
263                reader = $Reader.create(reader);
264            if (long === undefined)
265                long = 0;
266            if (long > $Reader.recursionLimit)
267                throw Error("maximum nesting depth exceeded");
268            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Request
268();
269            while (reader.pos < end) {
270                var tag = reader.uint32();
271                if (tag === error)
272                    break;
273                switch (tag >>> 3) {
274                case 1: {
275                        message.incomingMessages = $root.IncomingMessagesRequest.decode(reader, reader.uint32(), undefined, long + 1);
276                        break;
277                    }
278                case 2: {
279                        message.channelStats = $root.ChannelStatsRequest.decode(reader, reader.uint32(), undefined, long + 1);
280                        break;
281                    }
282                case 3: {
283                        message.serverStats = $root.ServerStatsRequest.decode(reader, reader.uint32(), undefined, long + 1);
284                        break;
285                    }
286                case 4: {
287                        message.registration = $root.RegisterRequest.decode(reader, reader.uint32(), undefined, long + 1);
288                        break;
289                    }
290                default:
291                    reader.skipType(tag & 7, long);
292                    break;
293                }
294            }
295            return message;
296        };
297
298        /**
299         * Gets the default type url for Request
300         * @function getTypeUrl
301         * @memberof Request
302         * @static
303         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
304         * @returns {string} The default type url
305         */
306        Request.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
307            if (typeUrlPrefix === undefined) {
308                typeUrlPrefix = "type.googleapis.com";
309            }
310            return typeUrlPrefix + "/Request";
311        };
312
313        return Request;
314    })();
315
316    $root.IncomingMessagesRequest = (function() {
317
318        /**
319         * Properties of an IncomingMessagesRequest.
320         * @exports IIncomingMessagesRequest
321         * @interface IIncomingMessagesRequest
322         * @property {Array.<IIncomingMessage>|null} [messages] IncomingMessagesRequest messages
323         */
324
325        /**
326         * Constructs a new IncomingMessagesRequest.
327         * @exports IncomingMessagesRequest
328         * @classdesc Represents an IncomingMessagesRequest.
329         * @implements IIncomingMessagesRequest
330         * @constructor
331         * @param {IIncomingMessagesRequest=} [properties] Properties to set
332         */
333        function IncomingMessagesRequest(properties) {
334            this.messages = [];
335            if (properties)
336                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
337                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
338                        this[keys[i]] = properties[keys[i]];
339        }
340
341        /**
342         * IncomingMessagesRequest messages.
343         * @member {Array.<IIncomingMessage>} messages
344         * @memberof IncomingMessagesRequest
345         * @instance
346         */
347        IncomingMessagesRequest.prototype.messages = $util.emptyArray;
348
349        /**
350         * Creates a new IncomingMessagesRequest instance using the specified properties.
351         * @function create
352         * @memberof IncomingMessagesRequest
353         * @static
354         * @param {IIncomingMessagesRequest=} [properties] Properties to set
355         * @returns {IncomingMessagesRequest} IncomingMessagesRequest instance
356         */
357        IncomingMessagesRequest.create = function create(properties) {
358            return new IncomingMessagesRequest(properties);
359        };
360
361        /**
362         * Encodes the specified IncomingMessagesRequest message. Does not implicitly {@link IncomingMessagesRequest.verify|verify} messages.
363         * @function encode
364         * @memberof IncomingMessagesRequest
365         * @static
366         * @param {IIncomingMessagesRequest} message IncomingMessagesRequest message or plain object to encode
367         * @param {$protobuf.Writer} [writer] Writer to encode to
368         * @returns {$protobuf.Writer} Writer
369         */
370        IncomingMessagesRequest.encode = function encode(message, writer, q) {
371            if (!writer)
372                writer = $Writer.create();
373            if (q === undefined)
374                q = 0;
375            if (q > $util.recursionLimit)
376                throw Error("max depth exceeded");
377            if (message.messages != null && message.messages.length)
378                for (var i = 0; i < message.messages.length; ++i)
379                    $root.IncomingMessage.encode(message.messages[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim();
380            return writer;
381        };
382
383        /**
384         * Decodes an IncomingMessagesRequest message from the specified reader or buffer.
385         * @function decode
386         * @memberof IncomingMessagesRequest
387         * @static
388         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
389         * @param {number} [length] Message length if known beforehand
390         * @returns {IncomingMessagesRequest} IncomingMessagesRequest
391         * @throws {Error} If the payload is not a reader or valid buffer
392         * @throws {$protobuf.util.ProtocolError} If required fields are missing
393         */
394        IncomingMessagesRequest.decode = function decode(reader, length, error, long) {
395            if (!(reader instanceof $Reader))
396                reader = $Reader.create(reader);
397            if (long === undefined)
398                long = 0;
399            if (long > $Reader.recursionLimit)
400                throw Error("maximum nesting depth exceeded");
401            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.IncomingMessagesRequest();
402            while (reader.pos < end) {
403                var tag = reader.uint32();
404                if (tag === error)
405                    break;
406                switch (tag >>> 3) {
407                case 1: {
408                        if (!(message.messages && message.messages.length))
409                            message.messages = [];
410                        message.messages.push($root.IncomingMessage.decode(reader, reader.uint32(), undefined, long + 1));
411                        break;
412                    }
413                default:
414                    reader.skipType(tag & 7, long);
415                    break;
416                }
417            }
418            return message;
419        };
420
421        /**
422         * Gets the default type url for IncomingMessagesRequest
423         * @function getTypeUrl
424         * @memberof IncomingMessagesRequest
425         * @static
426         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
427         * @returns {string} The default type url
428         */
429        IncomingMessagesRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
430            if (typeUrlPrefix === undefined) {
431                typeUrlPrefix = "type.googleapis.com";
432            }
433            return typeUrlPrefix + "/IncomingMessagesRequest";
434        };
435
436        return IncomingMessagesRequest;
437    })();
438
439    $root.IncomingMessage = (function() {
440
441        /**
442         * Properties of an IncomingMessage.
443         * @exports IIncomingMessage
444         * @interface IIncomingMessage
445         * @property {Array.<IReceiver>|null} [receivers] IncomingMessage receivers
446         * @property {ISender|null} [sender] IncomingMessage sender
447         * @property {string|null} [body] IncomingMessage body
448         * @property {number|null} [expiry] IncomingMessage expiry
449         * @property {string|null} [type] IncomingMessage type
450         */
451
452        /**
453         * Constructs a new IncomingMessage.
454         * @exports IncomingMessage
455         * @classdesc Represents an IncomingMessage.
456         * @implements IIncomingMessage
457         * @constructor
458         * @param {IIncomingMessage=} [properties] Properties to set
459         */
460        function IncomingMessage(properties) {
461            this.receivers = [];
462            if (properties)
463                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
464                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
465                        this[keys[i]] = properties[keys[i]];
466        }
467
468        /**
469         * IncomingMessage receivers.
470         * @member {Array.<IReceiver>} receivers
471         * @memberof IncomingMessage
472         * @instance
473         */
474        IncomingMessage.prototype.receivers = $util.emptyArray;
475
476        /**
477         * IncomingMessage sender.
478         * @member {ISender|null|undefined} sender
479         * @memberof IncomingMessage
480         * @instance
481         */
482        IncomingMessage.prototype.sender = null;
483
484        /**
485         * IncomingMessage body.
486         * @member {string} body
487         * @memberof IncomingMessage
488         * @instance
489         */
490        IncomingMessage.prototype.body = "";
491
492        /**
493         * IncomingMessage expiry.
494         * @member {number} expiry
495         * @memberof IncomingMessage
496         * @instance
497         */
498        IncomingMessage.prototype.expiry = 0;
499
500        /**
501         * IncomingMessage type.
502         * @member {string} type
503         * @memberof IncomingMessage
504         * @instance
505         */
506        IncomingMessage.prototype.type = "";
507
508        /**
509         * Creates a new IncomingMessage instance using the specified properties.
510         * @function create
511         * @memberof IncomingMessage
512         * @static
513         * @param {IIncomingMessage=} [properties] Properties to set
514         * @returns {IncomingMessage} IncomingMessage instance
515         */
516        IncomingMessage.create = function create(properties) {
517            return new IncomingMessage(properties);
518        };
519
520        /**
521         * Encodes the specified IncomingMessage message. Does not implicitly {@link IncomingMessage.verify|verify} messages.
522         * @function encode
523         * @memberof IncomingMessage
524         * @static
525         * @param {IIncomingMessage} message IncomingMessage message or plain object to encode
526         * @param {$protobuf.Writer} [writer] Writer to encode to
527         * @returns {$protobuf.Writer} Writer
528         */
529        IncomingMessage.encode = function encode(message, writer, q) {
530            if (!writer)
531                writer = $Writer.create();
532            if (q === undefined)
533                q = 0;
534            if (q > $util.recursionLimit)
535                throw Error("max depth exceeded");
536            if (message.receivers != null && message.receivers.length)
537                for (var i = 0; i < message.receivers.length; ++i)
538                    $root.Receiver.encode(message.receivers[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim();
539            if (message.sender != null && Object.hasOwnProperty.call(message, "sender"))
540                $root.Sender.encode(message.sender, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim();
541            if (message.body != null && Object.hasOwnProperty.call(message, "body"))
542                writer.uint32(/* id 3, wireType 2 =*/26).string(message.body);
543            if (message.expiry != null && Object.hasOwnProperty.call(message, "expiry"))
544                writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.expiry);
545            if (message.type != null && Object.hasOwnProperty.call(message, "type"))
546                writer.uint32(/* id 5, wireType 2 =*/42).string(message.type);
547            return writer;
548        };
549
550        /**
551         * Decodes an IncomingMessage message from the specified reader or buffer.
552         * @function decode
553         * @memberof IncomingMessage
554         * @static
555         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
556         * @param {number} [length] Message length if known beforehand
557         * @returns {IncomingMessage} IncomingMessage
558         * @throws {Error} If the payload is not a reader or valid buffer
559         * @throws {$protobuf.util.ProtocolError} If required fields are missing
560         */
561        IncomingMessage.decode = function decode(reader, length, error, long) {
562            if (!(reader instanceof $Reader))
563                reader = $Reader.create(reader);
564            if (long === undefined)
565                long = 0;
566            if (long > $Reader.recursionLimit)
567                throw Error("maximum nesting depth exceeded");
568            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.IncomingMessage();
569            while (reader.pos < end) {
570                var tag = reader.uint32();
571                if (tag === error)
572                    break;
573                switch (tag >>> 3) {
574                case 1: {
575                        if (!(message.receivers && message.receivers.length))
576                            message.receivers = [];
577                        message.receivers.push($root.Receiver.decode(reader, reader.uint32(), undefined, long + 1));
578                        break;
579                    }
580                case 2: {
581                        message.sender = $root.Sender.decode(reader, reader.uint32(), undefined, long + 1);
582                        break;
583                    }
584                case 3: {
585                        message.body = reader.string();
586                        break;
587                    }
588                case 4: {
589                        message.expiry = reader.uint32();
590                        break;
591                    }
592                case 5: {
593                        message.type = reader.string();
594                        break;
595                    }
596                default:
597                    reader.skipType(tag & 7, long);
598                    break;
599                }
600            }
601            return message;
602        };
603
604        /**
605         * Gets the default type url for IncomingMessage
606         * @function getTypeUrl
607         * @memberof IncomingMessage
608         * @static
609         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
610         * @returns {string} The default type url
611         */
612        IncomingMessage.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
613            if (typeUrlPrefix === undefined) {
614                typeUrlPrefix = "type.googleapis.com";
615            }
616            return typeUrlPrefix + "/IncomingMessage";
617        };
618
619        return IncomingMessage;
620    })();
621
622    $root.ChannelStatsRequest = (function() {
623
624        /**
625         * Properties of a ChannelStatsRequest.
626         * @exports IChannelStatsRequest
627         * @interface IChannelStatsRequest
628         * @property {Array.<IChannelId>|null} [channels] ChannelStatsRequest channels
629         */
630
631        /**
632         * Constructs a new ChannelStatsRequest.
633         * @exports ChannelStatsRequest
634         * @classdesc Represents a ChannelStatsRequest.
635         * @implements IChannelStatsRequest
636         * @constructor
637         * @param {IChannelStatsRequest=} [properties] Properties to set
638         */
639        function ChannelStatsRequest(properties) {
640            this.channels = [];
641            if (properties)
642                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
643                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
644                        this[keys[i]] = properties[keys[i]];
645        }
646
647        /**
648         * ChannelStatsRequest channels.
649         * @member {Array.<IChannelId>} channels
650         * @memberof ChannelStatsRequest
651         * @instance
652         */
653        ChannelStatsRequest.prototype.channels = $util.emptyArray;
654
655        /**
656         * Creates a new ChannelStatsRequest instance using the specified properties.
657         * @function create
658         * @memberof ChannelStatsRequest
659         * @static
660         * @param {IChannelStatsRequest=} [properties] Properties to set
661         * @returns {ChannelStatsRequest} ChannelStatsRequest instance
662         */
663        ChannelStatsRequest.create = function create(properties) {
664            return new ChannelStatsRequest(properties);
665        };
666
667        /**
668         * Encodes the specified ChannelStatsRequest message. Does not implicitly {@link ChannelStatsRequest.verify|verify} messages.
669         * @function encode
670         * @memberof ChannelStatsRequest
671         * @static
672         * @param {IChannelStatsRequest} message ChannelStatsRequest message or plain object to encode
673         * @param {$protobuf.Writer} [writer] Writer to encode to
674         * @returns {$protobuf.Writer} Writer
675         */
676        ChannelStatsRequest.encode = function encode(message, writer, q) {
677            if (!writer)
678                writer = $Writer.create();
679            if (q === undefined)
680                q = 0;
681            if (q > $util.recursionLimit)
682                throw Error("max depth exceeded");
683            if (message.channels != null && message.channels.length)
684                for (var i = 0; i < message.channels.length; ++i)
685                    $root.ChannelId.encode(message.channels[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim();
686            return writer;
687        };
688
689        /**
690         * Decodes a ChannelStatsRequest message from the specified reader or buffer.
691         * @function decode
692         * @memberof ChannelStatsRequest
693         * @static
694         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
695         * @param {number} [length] Message length if known beforehand
696         * @returns {ChannelStatsRequest} ChannelStatsRequest
697         * @throws {Error} If the payload is not a reader or valid buffer
698         * @throws {$protobuf.util.ProtocolError} If required fields are missing
699         */
700        ChannelStatsRequest.decode = function decode(reader, length, error, long) {
701            if (!(reader instanceof $Reader))
702                reader = $Reader.create(reader);
703            if (long === undefined)
704                long = 0;
705            if (long > $Reader.recursionLimit)
706                throw Error("maximum nesting depth exceeded");
707            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ChannelStatsRequest();
708            while (reader.pos < end) {
709                var tag = reader.uint32();
710                if (tag === error)
711                    break;
712                switch (tag >>> 3) {
713                case 1: {
714                        if (!(message.channels && message.channels.length))
715                            message.channels = [];
716                        message.channels.push($root.ChannelId.decode(reader, reader.uint32(), undefined, long + 1));
717                        break;
718                    }
719                default:
720                    reader.skipType(tag & 7, long);
721                    break;
722                }
723            }
724            return message;
725        };
726
727        /**
728         * Gets the default type url for ChannelStatsRequest
729         * @function getTypeUrl
730         * @memberof ChannelStatsRequest
731         * @static
732         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
733         * @returns {string} The default type url
734         */
735        ChannelStatsRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
736            if (typeUrlPrefix === undefined) {
737                typeUrlPrefix = "type.googleapis.com";
738            }
739            return typeUrlPrefix + "/ChannelStatsRequest";
740        };
741
742        return ChannelStatsRequest;
743    })();
744
745    $root.ChannelId = (function() {
746
747        /**
748         * Properties of a ChannelId.
749         * @exports IChannelId
750         * @interface IChannelId
751         * @property {Uint8Array|null} [id] ChannelId id
752         * @property {boolean|null} [isPrivate] ChannelId isPrivate
753         * @property {Uint8Array|null} [signature] ChannelId signature
754         */
755
756        /**
757         * Constructs a new ChannelId.
758         * @exports ChannelId
759         * @classdesc Represents a ChannelId.
760         * @implements IChannelId
761         * @constructor
762         * @param {IChannelId=} [properties] Properties to set
763         */
764        function ChannelId(properties) {
765            if (properties)
766                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
767                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
768                        this[keys[i]] = properties[keys[i]];
769        }
770
771        /**
772         * ChannelId id.
773         * @member {Uint8Array} id
774         * @memberof ChannelId
775         * @instance
776         */
777        ChannelId.prototype.id = $util.newBuffer([]);
778
779        /**
780         * ChannelId isPrivate.
781         * @member {boolean} isPrivate
782         * @memberof ChannelId
783         * @instance
784         */
785        ChannelId.prototype.isPrivate = false;
786
787        /**
788         * ChannelId signature.
789         * @member {Uint8Array} signature
790         * @memberof ChannelId
791         * @instance
792         */
793        ChannelId.prototype.signature = $util.newBuffer([]);
794
795        /**
796         * Creates a new ChannelId instance using the specified properties.
797         * @function create
798         * @memberof ChannelId
799         * @static
800         * @param {IChannelId=} [properties] Properties to set
801         * @returns {ChannelId} ChannelId instance
802         */
803        ChannelId.create = function create(properties) {
804            return new ChannelId(properties);
805        };
806
807        /**
808         * Encodes the specified ChannelId message. Does not implicitly {@link ChannelId.verify|verify} messages.
809         * @function encode
810         * @memberof ChannelId
811         * @static
812         * @param {IChannelId} message ChannelId message or plain object to encode
813         * @param {$protobuf.Writer} [writer] Writer to encode to
814         * @returns {$protobuf.Writer} Writer
815         */
816        ChannelId.encode = function encode(message, writer, q) {
817            if (!writer)
818                writer = $Writer.create();
819            if (q === undefined)
820                q = 0;
821            if (q > $util.recursionLimit)
822                throw Error("max depth exceeded");
823            if (message.id != null && Object.hasOwnProperty.call(message, "id"))
824                writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.id);
825            if (message.isPrivate != null && Object.hasOwnProperty.call(message, "isPrivate"))
826                writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isPrivate);
827            if (message.signature != null && Object.hasOwnProperty.call(message, "signature"))
828                writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.signature);
829            return writer;
830        };
831
832        /**
833         * Decodes a ChannelId message from the specified reader or buffer.
834         * @function decode
835         * @memberof ChannelId
836         * @static
837         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
838         * @param {number} [length] Message length if known beforehand
839         * @returns {ChannelId} ChannelId
840         * @throws {Error} If the payload is not a reader or valid buffer
841         * @throws {$protobuf.util.ProtocolError} If required fields are missing
842         */
843        ChannelId.decode = function decode(reader, length, error, long) {
844            if (!(reader instanceof $Reader))
845                reader = $Reader.create(reader);
846            if (long === undefined)
847                long = 0;
848            if (long > $Reader.recursionLimit)
849                throw Error("maximum nesting depth exceeded");
850            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ChannelId();
851            while (reader.pos < end) {
852                var tag = reader.uint32();
853                if (tag === error)
854                    break;
855                switch (tag >>> 3) {
856                case 1: {
857                        message.id = reader.bytes();
858                        break;
859                    }
860                case 2: {
861                        message.isPrivate = reader.bool();
862                        break;
863                    }
864                case 3: {
865                        message.signature = reader.bytes();
866                        break;
867                    }
868                default:
869                    reader.skipType(tag & 7, long);
870                    break;
871                }
872            }
873            return message;
874        };
875
876        /**
877         * Gets the default type url for ChannelId
878         * @function getTypeUrl
879         * @memberof ChannelId
880         * @static
881         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
882         * @returns {string} The default type url
883         */
884        ChannelId.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
885            if (typeUrlPrefix === undefined) {
886                typeUrlPrefix = "type.googleapis.com";
887            }
888            return typeUrlPrefix + "/ChannelId";
889        };
890
891        return ChannelId;
892    })();
893
894    $root.ServerStatsRequest = (function() {
895
896        /**
897         * Properties of a ServerStatsRequest.
898         * @exports IServerStatsRequest
899         * @interface IServerStatsRequest
900         */
901
902        /**
903         * Constructs a new ServerStatsRequest.
904         * @exports ServerStatsRequest
905         * @classdesc Represents a ServerStatsRequest.
906         * @implements IServerStatsRequest
907         * @constructor
908         * @param {IServerStatsRequest=} [properties] Properties to set
909         */
910        function ServerStatsRequest(properties) {
911            if (properties)
912                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
913                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
914                        this[keys[i]] = properties[keys[i]];
915        }
916
917        /**
918         * Creates a new ServerStatsRequest instance using the specified properties.
919         * @function create
920         * @memberof ServerStatsRequest
921         * @static
922         * @param {IServerStatsRequest=} [properties] Properties to set
923         * @returns {ServerStatsRequest} ServerStatsRequest instance
924         */
925        ServerStatsRequest.create = function create(properties) {
926            return new ServerStatsRequest(properties);
927        };
928
929        /**
930         * Encodes the specified ServerStatsRequest message. Does not implicitly {@link ServerStatsRequest.verify|verify} messages.
931         * @function encode
932         * @memberof ServerStatsRequest
933         * @static
934         * @param {IServerStatsRequest} message ServerStatsRequest message or plain object to encode
935         * @param {$protobuf.Writer} [writer] Writer to encode to
936         * @returns {$protobuf.Writer} Writer
937         */
938        ServerStatsRequest.encode = function encode(message, writer, q) {
939            if (!writer)
940                writer = $Writer.create();
941            if (q === undefined)
942                q = 0;
943            if (q > $util.recursionLimit)
944                throw Error("max depth exceeded");
945            return writer;
946        };
947
948        /**
949         * Decodes a ServerStatsRequest message from the specified reader or buffer.
950         * @function decode
951         * @memberof ServerStatsRequest
952         * @static
953         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
954         * @param {number} [length] Message length if known beforehand
955         * @returns {ServerStatsRequest} ServerStatsRequest
956         * @throws {Error} If the payload is not a reader or valid buffer
957         * @throws {$protobuf.util.ProtocolError} If required fields are missing
958         */
959        ServerStatsRequest.decode = function decode(reader, length, error, long) {
960            if (!(reader instanceof $Reader))
961                reader = $Reader.create(reader);
962            if (long === undefined)
963                long = 0;
964            if (long > $Reader.recursionLimit)
965                throw Error("maximum nesting depth exceeded");
966            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ServerStatsRequest();
967            while (reader.pos < end) {
968                var tag = reader.uint32();
969                if (tag === error)
970                    break;
971                switch (tag >>> 3) {
972                default:
973                    reader.skipType(tag & 7, long);
974                    break;
975                }
976            }
977            return message;
978        };
979
980        /**
981         * Gets the default type url for ServerStatsRequest
982         * @function getTypeUrl
983         * @memberof ServerStatsRequest
984         * @static
985         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
986         * @returns {string} The default type url
987         */
988        ServerStatsRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
989            if (typeUrlPrefix === undefined) {
990                typeUrlPrefix = "type.googleapis.com";
991            }
992            return typeUrlPrefix + "/ServerStatsRequest";
993        };
994
995        return ServerStatsRequest;
996    })();
997
998    $root.RegisterRequest = (function() {
999
1000        /**
1001         * Properties of a RegisterRequest.
1002         * @exports IRegisterRequest
1003         * @interface IRegisterRequest
1004         * @property {string|null} [verificationQuery] RegisterRequest verificationQuery
1005         * @property {string|null} [host] RegisterRequest host
1006         */
1007
1008        /**
1009         * Constructs a new RegisterRequest.
1010         * @exports RegisterRequest
1011         * @classdesc Represents a RegisterRequest.
1012         * @implements IRegisterRequest
1013         * @constructor
1014         * @param {IRegisterRequest=} [properties] Properties to set
1015         */
1016        function RegisterRequest(properties) {
1017            if (properties)
1018                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1019                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
1020                        this[keys[i]] = properties[keys[i]];
1021        }
1022
1023        /**
1024         * RegisterRequest verificationQuery.
1025         * @member {string} verificationQuery
1026         * @memberof RegisterRequest
1027         * @instance
1028         */
1029        RegisterRequest.prototype.verificationQuery = "";
1030
1031        /**
1032         * RegisterRequest host.
1033         * @member {string} host
1034         * @memberof RegisterRequest
1035         * @instance
1036         */
1037        RegisterRequest.prototype.host = "";
1038
1039        /**
1040         * Creates a new RegisterRequest instance using the specified properties.
1041         * @function create
1042         * @memberof RegisterRequest
1043         * @static
1044         * @param {IRegisterRequest=} [properties] Properties to set
1045         * @returns {RegisterRequest} RegisterRequest instance
1046         */
1047        RegisterRequest.create = function create(properties) {
1048            return new RegisterRequest(properties);
1049        };
1050
1051        /**
1052         * Encodes the specified RegisterRequest message. Does not implicitly {@link RegisterRequest.verify|verify} messages.
1053         * @function encode
1054         * @memberof RegisterRequest
1055         * @static
1056         * @param {IRegisterRequest} message RegisterRequest message or plain object to encode
1057         * @param {$protobuf.Writer} [writer] Writer to encode to
1058         * @returns {$protobuf.Writer} Writer
1059         */
1060        RegisterRequest.encode = function encode(message, writer, q) {
1061            if (!writer)
1062                writer = $Writer.create();
1063            if (q === undefined)
1064                q = 0;
1065            if (q > $util.recursionLimit)
1066                throw Error("max depth exceeded");
1067            if (message.verificationQuery != null && Object.hasOwnProperty.call(message, "verificationQuery"))
1068                writer.uint32(/* id 1, wireType 2 =*/10).string(message.verificationQuery);
1069            if (message.host != null && Object.hasOwnProperty.call(message, "host"))
1070                writer.uint32(/* id 2, wireType 2 =*/18).string(message.host);
1071            return writer;
1072        };
1073
1074        /**
1075         * Decodes a RegisterRequest message from the specified reader or buffer.
1076         * @function decode
1077         * @memberof RegisterRequest
1078         * @static
1079         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1080         * @param {number} [length] Message length if known beforehand
1081         * @returns {RegisterRequest} RegisterRequest
1082         * @throws {Error} If the payload is not a reader or valid buffer
1083         * @throws {$protobuf.util.ProtocolError} If required fields are missing
1084         */
1085        RegisterRequest.decode = function decode(reader, length, error, long) {
1086            if (!(reader instanceof $Reader))
1087                reader = $Reader.create(reader);
1088            if (long === undefined)
1089                long = 0;
1090            if (long > $Reader.recursionLimit)
1091                throw Error("maximum nesting depth exceeded");
1092            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.RegisterRequest();
1093            while (reader.pos < end) {
1094                var tag = reader.uint32();
1095                if (tag === error)
1096                    break;
1097                switch (tag >>> 3) {
1098                case 1: {
1099                        message.verificationQuery = reader.string();
1100                        break;
1101                    }
1102                case 2: {
1103                        message.host = reader.string();
1104                        break;
1105                    }
1106                default:
1107                    reader.skipType(tag & 7, long);
1108                    break;
1109                }
1110            }
1111            return message;
1112        };
1113
1114        /**
1115         * Gets the default type url for RegisterRequest
1116         * @function getTypeUrl
1117         * @memberof RegisterRequest
1118         * @static
1119         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
1120         * @returns {string} The default type url
1121         */
1122        RegisterRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
1123            if (typeUrlPrefix === undefined) {
1124                typeUrlPrefix = "type.googleapis.com";
1125            }
1126            return typeUrlPrefix + "/RegisterRequest";
1127        };
1128
1129        return RegisterRequest;
1130    })();
1131
1132    $root.Sender = (function() {
1133
1134        /**
1135         * Properties of a Sender.
1136         * @exports ISender
1137         * @interface ISender
1138         * @property {SenderType|null} [type] Sender type
1139         * @property {Uint8Array|null} [id] Sender id
1140         */
1141
1142        /**
1143         * Constructs a new Sender.
1144         * @exports Sender
1145         * @classdesc Represents a Sender.
1146         * @implements ISender
1147         * @constructor
1148         * @param {ISender=} [properties] Properties to set
1149         */
1150        function Sender(properties) {
1151            if (properties)
1152                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1153                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
1154                        this[keys[i]] = properties[keys[i]];
1155        }
1156
1157        /**
1158         * Sender type.
1159         * @member {SenderType} type
1160         * @memberof Sender
1161         * @instance
1162         */
1163        Sender.prototype.type = 0;
1164
1165        /**
1166         * Sender id.
1167         * @member {Uint8Array} id
1168         * @memberof Sender
1169         * @instance
1170         */
1171        Sender.prototype.id = $util.newBuffer([]);
1172
1173        /**
1174         * Creates a new Sender instance using the specified properties.
1175         * @function create
1176         * @memberof Sender
1177         * @static
1178         * @param {ISender=} [properties] Properties to set
1179         * @returns {Sender} Sender instance
1180         */
1181        Sender.create = function create(properties) {
1182            return new Sender(properties);
1183        };
1184
1185        /**
1186         * Encodes the specified Sender message. Does not implicitly {@link Sender.verify|verify} messages.
1187         * @function encode
1188         * @memberof Sender
1189         * @static
1190         * @param {ISender} message Sender message or plain object to encode
1191         * @param {$protobuf.Writer} [writer] Writer to encode to
1192         * @returns {$protobuf.Writer} Writer
1193         */
1194        Sender.encode = function encode(message, writer, q) {
1195            if (!writer)
1196                writer = $Writer.create();
1197            if (q === undefined)
1198                q = 0;
1199            if (q > $util.recursionLimit)
1200                throw Error("max depth exceeded");
1201            if (message.type != null && Object.hasOwnProperty.call(message, "type"))
1202                writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type);
1203            if (message.id != null && Object.hasOwnProperty.call(message, "id"))
1204                writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.id);
1205            return writer;
1206        };
1207
1208        /**
1209         * Decodes a Sender message from the specified reader or buffer.
1210         * @function decode
1211         * @memberof Sender
1212         * @static
1213         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1214         * @param {number} [length] Message length if known beforehand
1215         * @returns {Sender} Sender
1216         * @throws {Error} If the payload is not a reader or valid buffer
1217         * @throws {$protobuf.util.ProtocolError} If required fields are missing
1218         */
1219        Sender.decode = function decode(reader, length, error, long) {
1220            if (!(reader instanceof $Reader))
1221                reader = $Reader.create(reader);
1222            if (long === undefined)
1223                long = 0;
1224            if (long > $Reader.recursionLimit)
1225                throw Error("maximum nesting depth exceeded");
1226            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Sender();
1227            while (reader.pos < end) {
1228                var tag = reader.uint32();
1229                if (tag === error)
1230                    break;
1231                switch (tag >>> 3) {
1232                case 1: {
1233                        message.type = reader.int32();
1234                        break;
1235                    }
1236                case 2: {
1237                        message.id = reader.bytes();
1238                        break;
1239                    }
1240                default:
1241                    reader.skipType(tag & 7, long);
1242                    break;
1243                }
1244            }
1245            return message;
1246        };
1247
1248        /**
1249         * Gets the default type url for Sender
1250         * @function getTypeUrl
1251         * @memberof Sender
1252         * @static
1253         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
1254         * @returns {string} The default type url
1255         */
1256        Sender.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
1257            if (typeUrlPrefix === undefined) {
1258                typeUrlPrefix = "type.googleapis.com";
1259            }
1260            return typeUrlPrefix + "/Sender";
1261        };
1262
1263        return Sender;
1264    })();
1265
1266    /**
1267     * SenderType enum.
1268     * @exports SenderType
1269     * @enum {number}
1270     * @property {number} UNKNOWN=0 UNKNOWN value
1271     * @property {number} CLIENT=1 CLIENT value
1272     * @property {number} BACKEND=2 BACKEND value
1273     */
1274    $root.SenderType = (function() {
1275        var valuesById = {}, values = Object.create(valuesById);
1276        values[valuesById[0] = "UNKNOWN"] = 0;
1277        values[valuesById[1] = "CLIENT"] = 1;
1278        values[valuesById[2] = "BACKEND"] = 2;
1279        return values;
1280    })();
1281
1282    $root.Receiver = (function() {
1283
1284        /**
1285         * Properties of a Receiver.
1286         * @exports IReceiver
1287         * @interface IReceiver
1288         * @property {Uint8Array|null} [id] Receiver id
1289         * @property {boolean|null} [isPrivate] Receiver isPrivate
1290         * @property {Uint8Array|null} [signature] Receiver signature
1291         */
1292
1293        /**
1294         * Constructs a new Receiver.
1295         * @exports Receiver
1296         * @classdesc Represents a Receiver.
1297         * @implements IReceiver
1298         * @constructor
1299         * @param {IReceiver=} [properties] Properties to set
1300         */
1301        function Receiver(properties) {
1302            if (properties)
1303                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1304                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
1305                        this[keys[i]] = properties[keys[i]];
1306        }
1307
1308        /**
1309         * Receiver id.
1310         * @member {Uint8Array} id
1311         * @memberof Receiver
1312         * @instance
1313         */
1314        Receiver.prototype.id = $util.newBuffer([]);
1315
1316        /**
1317         * Receiver isPrivate.
1318         * @member {boolean} isPrivate
1319         * @memberof Receiver
1320         * @instance
1321         */
1322        Receiver.prototype.isPrivate = false;
1323
1324        /**
1325         * Receiver signature.
1326         * @member {Uint8Array} signature
1327         * @memberof Receiver
1328         * @instance
1329         */
1330        Receiver.prototype.signature = $util.newBuffer([]);
1331
1332        /**
1333         * Creates a new Receiver instance using the specified properties.
1334         * @function create
1335         * @memberof Receiver
1336         * @static
1337         * @param {IReceiver=} [properties] Properties to set
1338         * @returns {Receiver} Receiver instance
1339         */
1340        Receiver.create = function create(properties) {
1341            return new Receiver(properties);
1342        };
1343
1344        /**
1345         * Encodes the specified Receiver message. Does not implicitly {@link Receiver.verify|verify} messages.
1346         * @function encode
1347         * @memberof Receiver
1348         * @static
1349         * @param {IReceiver} message Receiver message or plain object to encode
1350         * @param {$protobuf.Writer} [writer] Writer to encode to
1351         * @returns {$protobuf.Writer} Writer
1352         */
1353        Receiver.encode = function encode(message, writer, q) {
1354            if (!writer)
1355                writer = $Writer.create();
1356            if (q === undefined)
1357                q = 0;
1358            if (q > $util.recursionLimit)
1359                throw Error("max depth exceeded");
1360            if (message.id != null && Object.hasOwnProperty.call(message, "id"))
1361                writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.id);
1362            if (message.isPrivate != null && Object.hasOwnProperty.call(message, "isPrivate"))
1363                writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isPrivate);
1364            if (message.signature != null && Object.hasOwnProperty.call(message, "signature"))
1365                writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.signature);
1366            return writer;
1367        };
1368
1369        /**
1370         * Decodes a Receiver message from the specified reader or buffer.
1371         * @function decode
1372         * @memberof Receiver
1373         * @static
1374         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1375         * @param {number} [length] Message length if known beforehand
1376         * @returns {Receiver} Receiver
1377         * @throws {Error} If the payload is not a reader or valid buffer
1378         * @throws {$protobuf.util.ProtocolError} If required fields are missing
1379         */
1380        Receiver.decode = function decode(reader, length, error, long) {
1381            if (!(reader instanceof $Reader))
1382                reader = $Reader.create(reader);
1383            if (long === undefined)
1384                long = 0;
1385            if (long > $Reader.recursionLimit)
1386                throw Error("maximum nesting depth exceeded");
1387            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Receiver();
1388            while (reader.pos < end) {
1389                var tag = reader.uint32();
1390                if (tag === error)
1391                    break;
1392                switch (tag >>> 3) {
1393                case 1: {
1394                        message.id = reader.bytes();
1395                        break;
1396                    }
1397                case 2: {
1398                        message.isPrivate = reader.bool();
1399                        break;
1400                    }
1401                case 3: {
1402                        message.signature = reader.bytes();
1403                        break;
1404                    }
1405                default:
1406                    reader.skipType(tag & 7, long);
1407                    break;
1408                }
1409            }
1410            return message;
1411        };
1412
1413        /**
1414         * Gets the default type url for Receiver
1415         * @function getTypeUrl
1416         * @memberof Receiver
1417         * @static
1418         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
1419         * @returns {string} The default type url
1420         */
1421        Receiver.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
1422            if (typeUrlPrefix === undefined) {
1423                typeUrlPrefix = "type.googleapis.com";
1424            }
1425            return typeUrlPrefix + "/Receiver";
1426        };
1427
1428        return Receiver;
1429    })();
1430
1431    $root.ResponseBatch = (function() {
1432
1433        /**
1434         * Properties of a ResponseBatch.
1435         * @exports IResponseBatch
1436         * @interface IResponseBatch
1437         * @property {Array.<IResponse>|null} [responses] ResponseBatch responses
1438         */
1439
1440        /**
1441         * Constructs a new ResponseBatch.
1442         * @exports ResponseBatch
1443         * @classdesc Represents a ResponseBatch.
1444         * @implements IResponseBatch
1445         * @constructor
1446         * @param {IResponseBatch=} [properties] Properties to set
1447         */
1448        function ResponseBatch(properties) {
1449            this.responses = [];
1450            if (properties)
1451                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1452                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
1453                        this[keys[i]] = properties[keys[i]];
1454        }
1455
1456        /**
1457         * ResponseBatch responses.
1458         * @member {Array.<IResponse>} responses
1459         * @memberof ResponseBatch
1460         * @instance
1461         */
1462        ResponseBatch.prototype.responses = $util.emptyArray;
1463
1464        /**
1465         * Creates a new ResponseBatch instance using the specified properties.
1466         * @function create
1467         * @memberof ResponseBatch
1468         * @static
1469         * @param {IResponseBatch=} [properties] Properties to set
1470         * @returns {ResponseBatch} ResponseBatch instance
1471         */
1472        ResponseBatch.create = function create(properties) {
1473            return new ResponseBatch(properties);
1474        };
1475
1476        /**
1477         * Encodes the specified ResponseBatch message. Does not implicitly {@link ResponseBatch.verify|verify} messages.
1478         * @function encode
1479         * @memberof ResponseBatch
1480         * @static
1481         * @param {IResponseBatch} message ResponseBatch message or plain object to encode
1482         * @param {$protobuf.Writer} [writer] Writer to encode to
1483         * @returns {$protobuf.Writer} Writer
1484         */
1485        ResponseBatch.encode = function encode(message, writer, q) {
1486            if (!writer)
1487                writer = $Writer.create();
1488            if (q === undefined)
1489                q = 0;
1490            if (q > $util.recursionLimit)
1491                throw Error("max depth exceeded");
1492            if (message.responses != null && message.responses.length)
1493                for (var i = 0; i < message.responses.length; ++i)
1494                    $root.Response.encode(message.responses[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim();
1495            return writer;
1496        };
1497
1498        /**
1499         * Decodes a ResponseBatch message from the specified reader or buffer.
1500         * @function decode
1501         * @memberof ResponseBatch
1502         * @static
1503         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1504         * @param {number} [length] Message length if known beforehand
1505         * @returns {ResponseBatch} ResponseBatch
1506         * @throws {Error} If the payload is not a reader or valid buffer
1507         * @throws {$protobuf.util.ProtocolError} If required fields are missing
1508         */
1509        ResponseBatch.decode = function decode(reader, length, error, long) {
1510            if (!(reader instanceof $Reader))
1511                reader = $Reader.create(reader);
1512            if (long === undefined)
1513                long = 0;
1514            if (long > $Reader.recursionLimit)
1515                throw Error("maximum nesting depth exceeded");
1516            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ResponseBatch();
1517            while (reader.pos < end) {
1518                var tag = reader.uint32();
1519                if (tag === error)
1520                    break;
1521                switch (tag >>> 3) {
1522                case 1: {
1523                        if (!(message.responses && message.responses.length))
1524                            message.responses = [];
1525                        message.responses.push($root.Response.decode(reader, reader.uint32(), undefined, long + 1));
1526                        break;
1527                    }
1528                default:
1529                    reader.skipType(tag & 7, long);
1530                    break;
1531                }
1532            }
1533            return message;
1534        };
1535
1536        /**
1537         * Gets the default type url for ResponseBatch
1538         * @function getTypeUrl
1539         * @memberof ResponseBatch
1540         * @static
1541         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
1542         * @returns {string} The default type url
1543         */
1544        ResponseBatch.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
1545            if (typeUrlPrefix === undefined) {
1546                typeUrlPrefix = "type.googleapis.com";
1547            }
1548            return typeUrlPrefix + "/ResponseBatch";
1549        };
1550
1551        return ResponseBatch;
1552    })();
1553
1554    $root.Response = (function() {
1555
1556        /**
1557         * Properties of a Response.
1558         * @exports IResponse
1559         * @interface IResponse
1560         * @property {IOutgoingMessagesResponse|null} [outgoingMessages] Response outgoingMessages
1561         * @property {IChannelStatsResponse|null} [channelStats] Response channelStats
1562         * @property {IJsonResponse|null} [serverStats] Response serverStats
1563         * @property {string|null} [json] Response json
1564         */
1565
1566        /**
1567         * Constructs a new Response.
1568         * @exports Response
1569         * @classdesc Represents a Response.
1570         * @implements IResponse
1571         * @constructor
1572         * @param {IResponse=} [properties] Properties to set
1573         */
1574        function Response(properties) {
1575            if (properties)
1576                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1577                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
1578                        this[keys[i]] = properties[keys[i]];
1579        }
1580
1581        /**
1582         * Response outgoingMessages.
1583         * @member {IOutgoingMessagesResponse|null|undefined} outgoingMessages
1584         * @memberof Response
1585         * @instance
1586         */
1587        Response.prototype.outgoingMessages = null;
1588
1589        /**
1590         * Response channelStats.
1591         * @member {IChannelStatsResponse|null|undefined} channelStats
1592         * @memberof Response
1593         * @instance
1594         */
1595        Response.prototype.channelStats = null;
1596
1597        /**
1598         * Response serverStats.
1599         * @member {IJsonResponse|null|undefined} serverStats
1600         * @memberof Response
1601         * @instance
1602         */
1603        Response.prototype.serverStats = null;
1604
1605        /**
1606         * Response json.
1607         * @member {string|null|undefined} json
1608         * @memberof Response
1609         * @instance
1610         */
1611        Response.prototype.json = null;
1612
1613        // OneOf field names bound to virtual getters and setters
1614        var $oneOfFields;
1615
1616        /**
1617         * Response command.
1618         * @member {"outgoingMessages"|"channelStats"|"serverStats"|"json"|undefined} command
1619         * @memberof Response
1620         * @instance
1621         */
1622        Object.defineProperty(Response.prototype, "command", {
1623            get: $util.oneOfGetter($oneOfFields = ["outgoingMessages", "channelStats", "serverStats", "json"]),
1624            set: $util.oneOfSetter($oneOfFields)
1625        });
1626
1627        /**
1628         * Creates a new Response instance using the specified properties.
1629         * @function create
1630         * @memberof Response
1631         * @static
1632         * @param {IResponse=} [properties] Properties to set
1633         * @returns {Response} Response instance
1634         */
1635        Response.create = function create(properties) {
1636            return new Response(properties);
1637        };
1638
1639        /**
1640         * Encodes the specified Response message. Does not implicitly {@link Response.verify|verify} messages.
1641         * @function encode
1642         * @memberof Response
1643         * @static
1644         * @param {IResponse} message Response message or plain object to encode
1645         * @param {$protobuf.Writer} [writer] Writer to encode to
1646         * @returns {$protobuf.Writer} Writer
1647         */
1648        Response.encode = function encode(message, writer, q) {
1649            if (!writer)
1650                writer = $Writer.create();
1651            if (q === undefined)
1652                q = 0;
1653            if (q > $util.recursionLimit)
1654                throw Error("max depth exceeded");
1655            if (message.outgoingMessages != null && Object.hasOwnProperty.call(message, "outgoingMessages"))
1656                $root.OutgoingMessagesResponse.encode(message.outgoingMessages, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim();
1657            if (message.channelStats != null && Object.hasOwnProperty.call(message, "channelStats"))
1658                $root.ChannelStatsResponse.encode(message.channelStats, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim();
1659            if (message.serverStats != null && Object.hasOwnProperty.call(message, "serverStats"))
1660                $root.JsonResponse.encode(message.serverStats, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim();
1661            if (message.json != null && Object.hasOwnProperty.call(message, "json"))
1662                writer.uint32(/* id 4, wireType 2 =*/34).string(message.json);
1663            return writer;
1664        };
1665
1666        /**
1667         * Decodes a Response message from the specified reader or buffer.
1668         * @function decode
1669         * @memberof Response
1670         * @static
1671         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1672         * @param {number} [length] Message length if known beforehand
1673         * @returns {Response} Response
1674         * @throws {Error} If the payload is not a reader or valid buffer
1675         * @throws {$protobuf.util.ProtocolError} If required fields are missing
1676         */
1677        Response.decode = function decode(reader, length, error, long) {
1678            if (!(reader instanceof $Reader))
1679                reader = $Reader.create(reader);
1680            if (long === undefined)
1681                long = 0;
1682            if (long > $Reader.recursionLimit)
1683                throw Error("maximum nesting depth exceeded");
1684            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Response();
1685            while (reader.pos < end) {
1686                var tag = reader.uint32();
1687                if (tag === error)
1688                    break;
1689                switch (tag >>> 3) {
1690                case 1: {
1691                        message.outgoingMessages = $root.OutgoingMessagesResponse.decode(reader, reader.uint32(), undefined, long + 1);
1692              
1692          break;
1693                    }
1694                case 2: {
1695                        message.channelStats = $root.ChannelStatsResponse.decode(reader, reader.uint32(), undefined, long + 1);
1696                        break;
1697                    }
1698                case 3: {
1699                        message.serverStats = $root.JsonResponse.decode(reader, reader.uint32(), undefined, long + 1);
1700                        break;
1701                    }
1702                case 4: {
1703                        message.json = reader.string();
1704                        break;
1705                    }
1706                default:
1707                    reader.skipType(tag & 7, long);
1708                    break;
1709                }
1710            }
1711            return message;
1712        };
1713
1714        /**
1715         * Gets the default type url for Response
1716         * @function getTypeUrl
1717         * @memberof Response
1718         * @static
1719         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
1720         * @returns {string} The default type url
1721         */
1722        Response.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
1723            if (typeUrlPrefix === undefined) {
1724                typeUrlPrefix = "type.googleapis.com";
1725            }
1726            return typeUrlPrefix + "/Response";
1727        };
1728
1729        return Response;
1730    })();
1731
1732    $root.OutgoingMessagesResponse = (function() {
1733
1734        /**
1735         * Properties of an OutgoingMessagesResponse.
1736         * @exports IOutgoingMessagesResponse
1737         * @interface IOutgoingMessagesResponse
1738         * @property {Array.<IOutgoingMessage>|null} [messages] OutgoingMessagesResponse messages
1739         */
1740
1741        /**
1742         * Constructs a new OutgoingMessagesResponse.
1743         * @exports OutgoingMessagesResponse
1744         * @classdesc Represents an OutgoingMessagesResponse.
1745         * @implements IOutgoingMessagesResponse
1746         * @constructor
1747         * @param {IOutgoingMessagesResponse=} [properties] Properties to set
1748         */
1749        function OutgoingMessagesResponse(properties) {
1750            this.messages = [];
1751            if (properties)
1752                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1753                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
1754                        this[keys[i]] = properties[keys[i]];
1755        }
1756
1757        /**
1758         * OutgoingMessagesResponse messages.
1759         * @member {Array.<IOutgoingMessage>} messages
1760         * @memberof OutgoingMessagesResponse
1761         * @instance
1762         */
1763        OutgoingMessagesResponse.prototype.messages = $util.emptyArray;
1764
1765        /**
1766         * Creates a new OutgoingMessagesResponse instance using the specified properties.
1767         * @function create
1768         * @memberof OutgoingMessagesResponse
1769         * @static
1770         * @param {IOutgoingMessagesResponse=} [properties] Properties to set
1771         * @returns {OutgoingMessagesResponse} OutgoingMessagesResponse instance
1772         */
1773        OutgoingMessagesResponse.create = function create(properties) {
1774            return new OutgoingMessagesResponse(properties);
1775        };
1776
1777        /**
1778         * Encodes the specified OutgoingMessagesResponse message. Does not implicitly {@link OutgoingMessagesResponse.verify|verify} messages.
1779         * @function encode
1780         * @memberof OutgoingMessagesResponse
1781         * @static
1782         * @param {IOutgoingMessagesResponse} message OutgoingMessagesResponse message or plain object to encode
1783         * @param {$protobuf.Writer} [writer] Writer to encode to
1784         * @returns {$protobuf.Writer} Writer
1785         */
1786        OutgoingMessagesResponse.encode = function encode(message, writer, q) {
1787            if (!writer)
1788                writer = $Writer.create();
1789            if (q === undefined)
1790                q = 0;
1791            if (q > $util.recursionLimit)
1792                throw Error("max depth exceeded");
1793            if (message.messages != null && message.messages.length)
1794                for (var i = 0; i < message.messages.length; ++i)
1795                    $root.OutgoingMessage.encode(message.messages[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim();
1796            return writer;
1797        };
1798
1799        /**
1800         * Decodes an OutgoingMessagesResponse message from the specified reader or buffer.
1801         * @function decode
1802         * @memberof OutgoingMessagesResponse
1803         * @static
1804         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1805         * @param {number} [length] Message length if known beforehand
1806         * @returns {OutgoingMessagesResponse} OutgoingMessagesResponse
1807         * @throws {Error} If the payload is not a reader or valid buffer
1808         * @throws {$protobuf.util.ProtocolError} If required fields are missing
1809         */
1810        OutgoingMessagesResponse.decode = function decode(reader, length, error, long) {
1811            if (!(reader instanceof $Reader))
1812                reader = $Reader.create(reader);
1813            if (long === undefined)
1814                long = 0;
1815            if (long > $Reader.recursionLimit)
1816                throw Error("maximum nesting depth exceeded");
1817            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.OutgoingMessagesResponse();
1818            while (reader.pos < end) {
1819                var tag = reader.uint32();
1820                if (tag === error)
1821                    break;
1822                switch (tag >>> 3) {
1823                case 1: {
1824                        if (!(message.messages && message.messages.length))
1825                            message.messages = [];
1826                        message.messages.push($root.OutgoingMessage.decode(reader, reader.uint32(), undefined, long + 1));
1827                        break;
1828                    }
1829                default:
1830                    reader.skipType(tag & 7, long);
1831                    break;
1832                }
1833            }
1834            return message;
1835        };
1836
1837        /**
1838         * Gets the default type url for OutgoingMessagesResponse
1839         * @function getTypeUrl
1840         * @memberof OutgoingMessagesResponse
1841         * @static
1842         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
1843         * @returns {string} The default type url
1844         */
1845        OutgoingMessagesResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
1846            if (typeUrlPrefix === undefined) {
1847                typeUrlPrefix = "type.googleapis.com";
1848            }
1849            return typeUrlPrefix + "/OutgoingMessagesResponse";
1850        };
1851
1852        return OutgoingMessagesResponse;
1853    })();
1854
1855    $root.OutgoingMessage = (function() {
1856
1857        /**
1858         * Properties of an OutgoingMessage.
1859         * @exports IOutgoingMessage
1860         * @interface IOutgoingMessage
1861         * @property {Uint8Array|null} [id] OutgoingMessage id
1862         * @property {string|null} [body] OutgoingMessage body
1863         * @property {number|null} [expiry] OutgoingMessage expiry
1864         * @property {number|null} [created] OutgoingMessage created
1865         * @property {ISender|null} [sender] OutgoingMessage sender
1866         */
1867
1868        /**
1869         * Constructs a new OutgoingMessage.
1870         * @exports OutgoingMessage
1871         * @classdesc Represents an OutgoingMessage.
1872         * @implements IOutgoingMessage
1873         * @constructor
1874         * @param {IOutgoingMessage=} [properties] Properties to set
1875         */
1876        function OutgoingMessage(properties) {
1877            if (properties)
1878                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1879                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
1880                        this[keys[i]] = properties[keys[i]];
1881        }
1882
1883        /**
1884         * OutgoingMessage id.
1885         * @member {Uint8Array} id
1886         * @memberof OutgoingMessage
1887         * @instance
1888         */
1889        OutgoingMessage.prototype.id = $util.newBuffer([]);
1890
1891        /**
1892         * OutgoingMessage body.
1893         * @member {string} body
1894         * @memberof OutgoingMessage
1895         * @instance
1896         */
1897        OutgoingMessage.prototype.body = "";
1898
1899        /**
1900         * OutgoingMessage expiry.
1901         * @member {number} expiry
1902         * @memberof OutgoingMessage
1903         * @instance
1904         */
1905        OutgoingMessage.prototype.expiry = 0;
1906
1907        /**
1908         * OutgoingMessage created.
1909         * @member {number} created
1910         * @memberof OutgoingMessage
1911         * @instance
1912         */
1913        OutgoingMessage.prototype.created = 0;
1914
1915        /**
1916         * OutgoingMessage sender.
1917         * @member {ISender|null|undefined} sender
1918         * @memberof OutgoingMessage
1919         * @instance
1920         */
1921        OutgoingMessage.prototype.sender = null;
1922
1923        /**
1924         * Creates a new OutgoingMessage instance using the specified properties.
1925         * @function create
1926         * @memberof OutgoingMessage
1927         * @static
1928         * @param {IOutgoingMessage=} [properties] Properties to set
1929         * @returns {OutgoingMessage} OutgoingMessage instance
1930         */
1931        OutgoingMessage.create = function create(properties) {
1932            return new OutgoingMessage(properties);
1933        };
1934
1935        /**
1936         * Encodes the specified OutgoingMessage message. Does not implicitly {@link OutgoingMessage.verify|verify} messages.
1937         * @function encode
1938         * @memberof OutgoingMessage
1939         * @static
1940         * @param {IOutgoingMessage} message OutgoingMessage message or plain object to encode
1941         * @param {$protobuf.Writer} [writer] Writer to encode to
1942         * @returns {$protobuf.Writer} Writer
1943         */
1944        OutgoingMessage.encode = function encode(message, writer, q) {
1945            if (!writer)
1946                writer = $Writer.create();
1947            if (q === undefined)
1948                q = 0;
1949            if (q > $util.recursionLimit)
1950                throw Error("max depth exceeded");
1951            if (message.id != null && Object.hasOwnProperty.call(message, "id"))
1952                writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.id);
1953            if (message.body != null && Object.hasOwnProperty.call(message, "body"))
1954                writer.uint32(/* id 2, wireType 2 =*/18).string(message.body);
1955            if (message.expiry != null && Object.hasOwnProperty.call(message, "expiry"))
1956                writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.expiry);
1957            if (message.created != null && Object.hasOwnProperty.call(message, "created"))
1958                writer.uint32(/* id 4, wireType 5 =*/37).fixed32(message.created);
1959            if (message.sender != null && Object.hasOwnProperty.call(message, "sender"))
1960                $root.Sender.encode(message.sender, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim();
1961            return writer;
1962        };
1963
1964        /**
1965         * Decodes an OutgoingMessage message from the specified reader or buffer.
1966         * @function decode
1967         * @memberof OutgoingMessage
1968         * @static
1969         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1970         * @param {number} [length] Message length if known beforehand
1971         * @returns {OutgoingMessage} OutgoingMessage
1972         * @throws {Error} If the payload is not a reader or valid buffer
1973         * @throws {$protobuf.util.ProtocolError} If required fields are missing
1974         */
1975        OutgoingMessage.decode = function decode(reader, length, error, long) {
1976            if (!(reader instanceof $Reader))
1977                reader = $Reader.create(reader);
1978            if (long === undefined)
1979                long = 0;
1980            if (long > $Reader.recursionLimit)
1981                throw Error("maximum nesting depth exceeded");
1982            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.OutgoingMessage();
1983            while (reader.pos < end) {
1984                var tag = reader.uint32();
1985                if (tag === error)
1986                    break;
1987                switch (tag >>> 3) {
1988                case 1: {
1989                        message.id = reader.bytes();
1990                        break;
1991                    }
1992                case 2: {
1993                        message.body = reader.string();
1994                        break;
1995                    }
1996                case 3: {
1997                        message.expiry = reader.uint32();
1998                        break;
1999                    }
2000                case 4: {
2001                        message.created = reader.fixed32();
2002                        break;
2003                    }
2004                case 5: {
2005                        message.sender = $root.Sender.decode(reader, reader.uint32(), undefined, long + 1);
2006                        break;
2007                    }
2008                default:
2009                    reader.skipType(tag & 7, long);
2010                    break;
2011                }
2012            }
2013            return message;
2014        };
2015
2016        /**
2017         * Gets the default type url for OutgoingMessage
2018         * @function getTypeUrl
2019         * @memberof OutgoingMessage
2020         * @static
2021         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
2022         * @returns {string} The default type url
2023         */
2024        OutgoingMessage.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
2025            if (typeUrlPrefix === undefined) {
2026                typeUrlPrefix = "type.googleapis.com";
2027            }
2028            return typeUrlPrefix + "/OutgoingMessage";
2029        };
2030
2031        return OutgoingMessage;
2032    })();
2033
2034    $root.ChannelStatsResponse = (function() {
2035
2036        /**
2037         * Properties of a ChannelStatsResponse.
2038         * @exports IChannelStatsResponse
2039         * @interface IChannelStatsResponse
2040         * @property {Array.<IChannelStats>|null} [channels] ChannelStatsResponse channels
2041         */
2042
2043        /**
2044         * Constructs a new ChannelStatsResponse.
2045         * @exports ChannelStatsResponse
2046         * @classdesc Represents a ChannelStatsResponse.
2047         * @implements IChannelStatsResponse
2048         * @constructor
2049         * @param {IChannelStatsResponse=} [properties] Properties to set
2050         */
2051        function ChannelStatsResponse(properties) {
2052            this.channels = [];
2053            if (properties)
2054                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
2055                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
2056                        this[keys[i]] = properties[keys[i]];
2057        }
2058
2059        /**
2060         * ChannelStatsResponse channels.
2061         * @member {Array.<IChannelStats>} channels
2062         * @memberof ChannelStatsResponse
2063         * @instance
2064         */
2065        ChannelStatsResponse.prototype.channels = $util.emptyArray;
2066
2067        /**
2068         * Creates a new ChannelStatsResponse instance using the specified properties.
2069         * @function create
2070         * @memberof ChannelStatsResponse
2071         * @static
2072         * @param {IChannelStatsResponse=} [properties] Properties to set
2073         * @returns {ChannelStatsResponse} ChannelStatsResponse instance
2074         */
2075        ChannelStatsResponse.create = function create(properties) {
2076            return new ChannelStatsResponse(properties);
2077        };
2078
2079        /**
2080         * Encodes the specified ChannelStatsResponse message. Does not implicitly {@link ChannelStatsResponse.verify|verify} messages.
2081         * @function encode
2082         * @memberof ChannelStatsResponse
2083         * @static
2084         * @param {IChannelStatsResponse} message ChannelStatsResponse message or plain object to encode
2085         * @param {$protobuf.Writer} [writer] Writer to encode to
2086         * @returns {$protobuf.Writer} Writer
2087         */
2088        ChannelStatsResponse.encode = function encode(message, writer, q) {
2089            if (!writer)
2090                writer = $Writer.create();
2091            if (q === undefined)
2092                q = 0;
2093            if (q > $util.recursionLimit)
2094                throw Error("max depth exceeded");
2095            if (message.channels != null && message.channels.length)
2096                for (var i = 0; i < message.channels.length; ++i)
2097                    $root.ChannelStats.encode(message.channels[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim();
2098            return writer;
2099        };
2100
2101        /**
2102         * Decodes a ChannelStatsResponse message from the specified reader or buffer.
2103         * @function decode
2104         * @memberof ChannelStatsResponse
2105         * @static
2106         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
2107         * @param {number} [length] Message length if known beforehand
2108         * @returns {ChannelStatsResponse} ChannelStatsResponse
2109         * @throws {Error} If the payload is not a reader or valid buffer
2110         * @throws {$protobuf.util.ProtocolError} If required fields are missing
2111         */
2112        ChannelStatsResponse.decode = function decode(reader, length, error, long) {
2113            if (!(reader instanceof $Reader))
2114                reader = $Reader.create(reader);
2115            if (long === undefined)
2116                long = 0;
2117            if (long > $Reader.recursionLimit)
2118                throw Error("maximum nesting depth exceeded");
2119            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ChannelStatsResponse();
2120            while (reader.pos < end) {
2121                var tag = reader.uint32();
2122                if (tag === error)
2123                    break;
2124                switch (tag >>> 3) {
2125                case 1: {
2126                        if (!(message.channels && message.channels.length))
2127                            message.channels = [];
2128                        message.channels.push($root.ChannelStats.decode(reader, reader.uint32(), undefined, long + 1));
2129                        break;
2130                    }
2131                default:
2132                    reader.skipType(tag & 7, long);
2133                    break;
2134                }
2135            }
2136            return message;
2137        };
2138
2139        /**
2140         * Gets the default type url for ChannelStatsResponse
2141         * @function getTypeUrl
2142         * @memberof ChannelStatsResponse
2143         * @static
2144         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
2145         * @returns {string} The default type url
2146         */
2147        ChannelStatsResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
2148            if (typeUrlPrefix === undefined) {
2149                typeUrlPrefix = "type.googleapis.com";
2150            }
2151            return typeUrlPrefix + "/ChannelStatsResponse";
2152        };
2153
2154        return ChannelStatsResponse;
2155    })();
2156
2157    $root.ChannelStats = (function() {
2158
2159        /**
2160         * Properties of a ChannelStats.
2161         * @exports IChannelStats
2162         * @interface IChannelStats
2163         * @property {Uint8Array|null} [id] ChannelStats id
2164         * @property {boolean|null} [isPrivate] ChannelStats isPrivate
2165         * @property {boolean|null} [isOnline] ChannelStats isOnline
2166         */
2167
2168        /**
2169         * Constructs a new ChannelStats.
2170         * @exports ChannelStats
2171         * @classdesc Represents a ChannelStats.
2172         * @implements IChannelStats
2173         * @constructor
2174         * @param {IChannelStats=} [properties] Properties to set
2175         */
2176        function ChannelStats(properties) {
2177            if (properties)
2178                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
2179                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
2180                        this[keys[i]] = properties[keys[i]];
2181        }
2182
2183        /**
2184         * ChannelStats id.
2185         * @member {Uint8Array} id
2186         * @memberof ChannelStats
2187         * @instance
2188         */
2189        ChannelStats.prototype.id = $util.newBuffer([]);
2190
2191        /**
2192         * ChannelStats isPrivate.
2193         * @member {boolean} isPrivate
2194         * @memberof ChannelStats
2195         * @instance
2196         */
2197        ChannelStats.prototype.isPrivate = false;
2198
2199        /**
2200         * ChannelStats isOnline.
2201         * @member {boolean} isOnline
2202         * @memberof ChannelStats
2203         * @instance
2204         */
2205        ChannelStats.prototype.isOnline = false;
2206
2207        /**
2208         * Creates a new ChannelStats instance using the specified properties.
2209         * @function create
2210         * @memberof ChannelStats
2211         * @static
2212         * @param {IChannelStats=} [properties] Properties to set
2213         * @returns {ChannelStats} ChannelStats instance
2214         */
2215        ChannelStats.create = function create(properties) {
2216            return new ChannelStats(properties);
2217        };
2218
2219        /**
2220         * Encodes the specified ChannelStats message. Does not implicitly {@link ChannelStats.verify|verify} messages.
2221         * @function encode
2222         * @memberof ChannelStats
2223         * @static
2224         * @param {IChannelStats} message ChannelStats message or plain object to encode
2225         * @param {$protobuf.Writer} [writer] Writer to encode to
2226         * @returns {$protobuf.Writer} Writer
2227         */
2228        ChannelStats.encode = function encode(message, writer, q) {
2229            if (!writer)
2230                writer = $Writer.create();
2231            if (q === undefined)
2232                q = 0;
2233            if (q > $util.recursionLimit)
2234                throw Error("max depth exceeded");
2235            if (message.id != null && Object.hasOwnProperty.call(message, "id"))
2236                writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.id);
2237            if (message.isPrivate != null && Object.hasOwnProperty.call(message, "isPrivate"))
2238                writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isPrivate);
2239            if (message.isOnline != null && Object.hasOwnProperty.call(message, "isOnline"))
2240                writer.uint32(/* id 3, wireType 0 =*/24).bool(message.isOnline);
2241            return writer;
2242        };
2243
2244        /**
2245         * Decodes a ChannelStats message from the specified reader or buffer.
2246         * @function decode
2247         * @memberof ChannelStats
2248         * @static
2249         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
2250         * @param {number} [length] Message length if known beforehand
2251         * @returns {ChannelStats} ChannelStats
2252         * @throws {Error} If the payload is not a reader or valid buffer
2253         * @throws {$protobuf.util.ProtocolError} If required fields are missing
2254         */
2255        ChannelStats.decode = function decode(reader, length, error, long) {
2256            if (!(reader instanceof $Reader))
2257                reader = $Reader.create(reader);
2258            if (long === undefined)
2259                long = 0;
2260            if (long > $Reader.recursionLimit)
2261                throw Error("maximum nesting depth exceeded");
2262            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ChannelStats();
2263            while (reader.pos < end) {
2264                var tag = reader.uint32();
2265                if (tag === error)
2266                    break;
2267                switch (tag >>> 3) {
2268                case 1: {
2269                        message.id = reader.bytes();
2270                        break;
2271                    }
2272                case 2: {
2273                        message.isPrivate = reader.bool();
2274                        break;
2275                    }
2276                case 3: {
2277                        message.isOnline = reader.bool();
2278                        break;
2279                    }
2280                default:
2281                    reader.skipType(tag & 7, long);
2282                    break;
2283                }
2284            }
2285            return message;
2286        };
2287
2288        /**
2289         * Gets the default type url for ChannelStats
2290         * @function getTypeUrl
2291         * @memberof ChannelStats
2292         * @static
2293         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
2294         * @returns {string} The default type url
2295         */
2296        ChannelStats.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
2297            if (typeUrlPrefix === undefined) {
2298                typeUrlPrefix = "type.googleapis.com";
2299            }
2300            return typeUrlPrefix + "/ChannelStats";
2301        };
2302
2303        return ChannelStats;
2304    })();
2305
2306    $root.JsonResponse = (function() {
2307
2308        /**
2309         * Properties of a JsonResponse.
2310         * @exports IJsonResponse
2311         * @interface IJsonResponse
2312         * @property {string|null} [json] JsonResponse json
2313         */
2314
2315        /**
2316         * Constructs a new JsonResponse.
2317         * @exports JsonResponse
2318         * @classdesc Represents a JsonResponse.
2319         * @implements IJsonResponse
2320         * @constructor
2321         * @param {IJsonResponse=} [properties] Properties to set
2322         */
2323        function JsonResponse(properties) {
2324            if (properties)
2325                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
2326                    if (properties[keys[i]] != null && keys[i] !== "__proto__")
2327                        this[keys[i]] = properties[keys[i]];
2328        }
2329
2330        /**
2331         * JsonResponse json.
2332         * @member {string} json
2333         * @memberof JsonResponse
2334         * @instance
2335         */
2336        JsonResponse.prototype.json = "";
2337
2338        /**
2339         * Creates a new JsonResponse instance using the specified properties.
2340         * @function create
2341         * @memberof JsonResponse
2342         * @static
2343         * @param {IJsonResponse=} [properties] Properties to set
2344         * @returns {JsonResponse} JsonResponse instance
2345         */
2346        JsonResponse.create = function create(properties) {
2347            return new JsonResponse(properties);
2348        };
2349
2350        /**
2351         * Encodes the specified JsonResponse message. Does not implicitly {@link JsonResponse.verify|verify} messages.
2352         * @function encode
2353         * @memberof JsonResponse
2354         * @static
2355         * @param {IJsonResponse} message JsonResponse message or plain object to encode
2356         * @param {$protobuf.Writer} [writer] Writer to encode to
2357         * @returns {$protobuf.Writer} Writer
2358         */
2359        JsonResponse.encode = function encode(message, writer, q) {
2360            if (!writer)
2361                writer = $Writer.create();
2362            if (q === undefined)
2363                q = 0;
2364            if (q > $util.recursionLimit)
2365                throw Error("max depth exceeded");
2366            if (message.json != null && Object.hasOwnProperty.call(message, "json"))
2367                writer.uint32(/* id 1, wireType 2 =*/10).string(message.json);
2368            return writer;
2369        };
2370
2371        /**
2372         * Decodes a JsonResponse message from the specified reader or buffer.
2373         * @function decode
2374         * @memberof JsonResponse
2375         * @static
2376         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
2377         * @param {number} [length] Message length if known beforehand
2378         * @returns {JsonResponse} JsonResponse
2379         * @throws {Error} If the payload is not a reader or valid buffer
2380         * @throws {$protobuf.util.ProtocolError} If required fields are missing
2381         */
2382        JsonResponse.decode = function decode(reader, length, error, long) {
2383            if (!(reader instanceof $Reader))
2384                reader = $Reader.create(reader);
2385            if (long === undefined)
2386                long = 0;
2387            if (long > $Reader.recursionLimit)
2388                throw Error("maximum nesting depth exceeded");
2389            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.JsonResponse();
2390            while (reader.pos < end) {
2391                var tag = reader.uint32();
2392                if (tag === error)
2393                    break;
2394                switch (tag >>> 3) {
2395                case 1: {
2396                        message.json = reader.string();
2397                        break;
2398                    }
2399                default:
2400                    reader.skipType(tag & 7, long);
2401                    break;
2402                }
2403            }
2404            return message;
2405        };
2406
2407        /**
2408         * Gets the default type url for JsonResponse
2409         * @function getTypeUrl
2410         * @memberof JsonResponse
2411         * @static
2412         * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
2413         * @returns {string} The default type url
2414         */
2415        JsonResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
2416            if (typeUrlPrefix === undefined) {
2417                typeUrlPrefix = "type.googleapis.com";
2418            }
2419            return typeUrlPrefix + "/JsonResponse";
2420        };
2421
2422        return JsonResponse;
2423    })();
2424
2425    return $root;
2426})(
2427	typeof window==="object" && typeof window.protobuf==='object' && window.protobuf
2428	|| typeof self==="object" && typeof self.protobuf==='object' && self.protobuf
2429	|| typeof protobuf==='object' && protobuf
2430);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.